File: handle_in_generate_test.rb

package info (click to toggle)
ruby-pluggaloid 1.7.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 260 kB
  • sloc: ruby: 1,752; sh: 4; makefile: 2
file content (59 lines) | stat: -rw-r--r-- 1,344 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# frozen_string_literal: true

require 'bundler/setup'
require 'minitest/autorun'

require 'pluggaloid'
require_relative 'helper'

describe(Pluggaloid::Plugin) do
  include PluggaloidTestHelper

  before do
    Delayer.default = Delayer.generate_class(priority: %i<high normal low>, default: :normal)
    Pluggaloid::Plugin.clear!
  end

  it 'hoge' do
    refute Pluggaloid::Event[:tick].subscribe?
  end

  describe 'event' do
    before do
      log = @log = []
      listener = nil
      Pluggaloid::Plugin.create(:event) do
        defevent :list, prototype: [Integer, Pluggaloid::STREAM]

        generate(:list, 1) do |yielder|
          log << [:g1, :start]
          on_tick do |digit|
            log << [:g1, digit]
            yielder << digit
          end
        end

        listener = subscribe(:list, 1) do |stream|
          ;
        end
      end
      @listener = listener
      eval_all_events
    end

    it 'subscribed event which define in generate block' do
      assert Pluggaloid::Event[:tick].subscribe?
    end

    describe 'unsubscribe generate stream' do
      before do
        Pluggaloid::Plugin.create(:event).detach(@listener)
        eval_all_events
      end

      it 'unsubscribed event which define in generate block' do
        refute Pluggaloid::Event[:tick].subscribe?
      end
    end
  end
end