Sha256: d2cc1a1366adb2c6848d3870be4839000c518bc4dbd5d04376cf2a6f33b23a9b
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
describe SlackRubyBot::Hooks::Set do let(:client) { Slack::RealTime::Client.new } context 'adding hooks' do subject { described_class.new(client) } it 'lets you add hook handlers' do handler = ->(_, _) {} expect do subject.add(:message, handler) end.to change(subject, :handlers) expect(subject.handlers).to have_key(:message) expect(subject.handlers[:message]).to eq [handler] end it 'lets you add multiple handlers for the same hook' do handler_1 = ->(_, _) {} handler_2 = ->(_, _) {} expect do subject.add(:message, handler_1) subject.add(:message, handler_2) end.to change(subject, :handlers) expect(subject.handlers).to have_key(:message) expect(subject.handlers[:message]).to eq [handler_1, handler_2] end end context 'Slack Client injection' do subject { described_class.new } it "doesn't barf when add callbacks prior to injecting client" do expect do subject.add(:hook, ->(_, _) {}) end.to_not raise_error end it 'triggers hooks when client is configured later' do handler = ->(_, _) {} subject.add(:hook, handler) expect(subject).to receive(:flush_handlers).once.and_call_original expect(handler).to receive(:call).once subject.client = client client.send(:callback, { data: 1 }, :hook) # Abusing the callback method 100% :D end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
slack-ruby-bot-0.10.3 | spec/slack-ruby-bot/hooks/set_spec.rb |
slack-ruby-bot-0.10.2 | spec/slack-ruby-bot/hooks/set_spec.rb |