Sha256: 0317d60f8e550f7a6a7d1e6a2efc93d0591ce3017bf3e06a38267fe6e4d28d4e
Contents?: true
Size: 1.7 KB
Versions: 3
Compression:
Stored size: 1.7 KB
Contents
require 'spec_helper' class NotificationCollector def call(*args) events << ActiveSupport::Notifications::Event.new(*args) end def events @events ||= [] end end describe ::Acfs::Global do let(:adapter) { ::NullAdapter.new } let(:runner) { double 'runner' } let(:collector) { NotificationCollector.new } let(:acfs) { Object.new.tap {|o| o.extend ::Acfs::Global } } describe 'instrumentation' do before do # allow(runner).to receive(:start) allow(acfs).to receive(:runner).and_return runner end describe '#run' do before do ::ActiveSupport::Notifications.subscribe 'acfs.run', collector end it 'should trigger event' do Acfs.run expect(collector.events).to have(1).items end end describe '#reset' do before do ::ActiveSupport::Notifications.subscribe 'acfs.reset', collector end it 'should trigger event' do Acfs.reset expect(collector.events).to have(1).items end end end describe '#on' do before do stub_request(:get, %r{http://users.example.org/users/\d+}).to_return( status: 200, body: '{}', headers: {'Content-Type' => 'application/json'}) end it 'should invoke when both resources' do user1 = MyUser.find 1 user2 = MyUser.find 2 expect do |cb| Acfs.on(user1, user2, &cb) Acfs.run end.to yield_with_args(user1, user2) end it 'should invoke when both resources when loaded' do user1 = MyUser.find 1 user2 = MyUser.find 2 Acfs.on(user1, user2) do |u1, u2| expect(u1).to be_loaded expect(u2).to be_loaded end Acfs.run end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
acfs-0.43.2 | spec/acfs/global_spec.rb |
acfs-0.43.1 | spec/acfs/global_spec.rb |
acfs-0.43.0 | spec/acfs/global_spec.rb |