diff --git a/spec/lib/treasury/fields/delayed_spec.rb b/spec/lib/treasury/fields/delayed_spec.rb index 9b5fc1d..5909211 100644 --- a/spec/lib/treasury/fields/delayed_spec.rb +++ b/spec/lib/treasury/fields/delayed_spec.rb @@ -1,27 +1,24 @@ -# coding: utf-8 - class TreasuryFieldsBase < Treasury::Fields::Base include Treasury::Fields::Delayed end describe Treasury::Fields::Delayed do - Given(:field_model) { build_stubbed 'denormalization/field' } - Given(:field) { TreasuryFieldsBase.new(field_model) } + let(:field_model) { build_stubbed 'denormalization/field' } + let(:field) { TreasuryFieldsBase.new(field_model) } context '#cancel_delayed_increments' do after { field.send :cancel_delayed_increments } - Given(:args) { ['field_class' => field_class] } - Given(:field_class) { double('field_class') } + let(:args) { ['field_class' => field_class] } + let(:field_class) { double('field_class') } - Then do + it do expect(Resque).to( receive(:remove_delayed_selection). with(Treasury::DelayedIncrementJob). and_yield(args) ) + expect(field_class).to receive(:==).with(field_model.field_class) end - - And { expect(field_class).to receive(:==).with(field_model.field_class) } end end diff --git a/spec/lib/treasury/processors/base_spec.rb b/spec/lib/treasury/processors/base_spec.rb index 2818d3f..e61976b 100644 --- a/spec/lib/treasury/processors/base_spec.rb +++ b/spec/lib/treasury/processors/base_spec.rb @@ -1,5 +1,3 @@ -# coding: utf-8 - describe ::Treasury::Processors::Base do # TODO: дописать тесты # нужно дописать тесты методов: @@ -452,7 +450,7 @@ def form_value(value) context 'если есть батч' do context 'и батч не пустой' do - When do + before do allow(ActiveRecord::Base).to receive(:pgq_next_batch).and_return(BATCH_ID) allow(subject).to receive(:process_events_batch) do |events| data = subject.instance_variable_get(:@data) @@ -462,35 +460,24 @@ def form_value(value) end context 'when called' do - Given(:storages) { [double('storage1'), double('storage2')] } + let(:storages) { [double('storage1'), double('storage2')] } before { allow(consumer).to receive(:storages).and_return(storages) } after { process } # порядок выполнения методов должен быть верным и колбеки должны вызываться в верном порядке - Then { expect(subject).to receive(:before_batch_processing).ordered } - - And { storages.each { |storage| expect(storage).to receive(:source=).with(subject) } } - - And { storages.each { |storage| expect(storage).to receive(:start_transaction) } } - - # для каждого батча, должен быть вызван метод обработки - And do + it do + expect(subject).to receive(:before_batch_processing).ordered + storages.each { |storage| expect(storage).to receive(:source=).with(subject) } + storages.each { |storage| expect(storage).to receive(:start_transaction) } EVENTS_BATCHES_TEST.each { |batch| expect(subject).to receive(:process_events_batch).with(batch).ordered } + expect(subject).to receive(:write_data).ordered + expect(subject).to receive(:after_batch_processing).ordered + expect(subject).to receive(:commit_storage_transaction).ordered + expect(subject).to receive(:finish_batch).ordered + expect(subject).to receive(:data_changed).ordered end - - And { expect(subject).to receive(:write_data).ordered } - - And { expect(subject).to receive(:after_batch_processing).ordered } - - # должен быть вызван метод подтверждения данных в хранилище, если записаны события - And { expect(subject).to receive(:commit_storage_transaction).ordered } - - # всегда должен вызывать метод завершения батча - And { expect(subject).to receive(:finish_batch).ordered } - - And { expect(subject).to receive(:data_changed).ordered } end context 'after call' do diff --git a/spec/lib/treasury/processors/delayed_spec.rb b/spec/lib/treasury/processors/delayed_spec.rb index 3106714..3e6d698 100644 --- a/spec/lib/treasury/processors/delayed_spec.rb +++ b/spec/lib/treasury/processors/delayed_spec.rb @@ -1,26 +1,24 @@ -# coding: utf-8 - class TestConsumer < Treasury::Processors::Base include Treasury::Processors::Delayed end describe Treasury::Processors::Delayed do - Given(:queue) { FactoryGirl.build 'denormalization/queue' } - Given(:processor) { FactoryGirl.build 'denormalization/processor', queue: queue } - Given(:consumer) { TestConsumer.new(processor) } + let(:queue) { FactoryGirl.build 'denormalization/queue' } + let(:processor) { FactoryGirl.build 'denormalization/processor', queue: queue } + let(:consumer) { TestConsumer.new(processor) } - When do + before do consumer.event.data[:id] = double('id') consumer.object = double('object') end describe '#delayed_increment_current_value' do - Given(:delayed_increment_current_value) { consumer.delayed_increment_current_value(:field_name, 48.hours) } + let(:delayed_increment_current_value) { consumer.delayed_increment_current_value(:field_name, 48.hours) } context 'when call' do after { delayed_increment_current_value } - Then do + it do expect(Resque).to receive(:enqueue_in).with( 48.hours, Treasury::DelayedIncrementJob, @@ -33,14 +31,14 @@ class TestConsumer < Treasury::Processors::Base end end - Then { expect(delayed_increment_current_value).to eq consumer.send(:no_action) } + it { expect(delayed_increment_current_value).to eq consumer.send(:no_action) } end describe '#cancel_delayed_increment' do context 'when call' do after { consumer.cancel_delayed_increment(:field_name) } - Then do + it do expect(Resque).to receive(:remove_delayed).with( Treasury::DelayedIncrementJob, id: consumer.event.data[:id], @@ -53,25 +51,25 @@ class TestConsumer < Treasury::Processors::Base end context 'when removed job exists' do - When { allow(Resque).to receive(:remove_delayed).and_return 1 } + before { allow(Resque).to receive(:remove_delayed).and_return 1 } - Then { expect(consumer.cancel_delayed_increment(:field_name)).to be_truthy } + it { expect(consumer.cancel_delayed_increment(:field_name)).to be_truthy } end context 'when removed job not exists' do - When { allow(Resque).to receive(:remove_delayed).and_return 0 } + before { allow(Resque).to receive(:remove_delayed).and_return 0 } - Then { expect(consumer.cancel_delayed_increment(:field_name)).to be_falsey } + it { expect(consumer.cancel_delayed_increment(:field_name)).to be_falsey } end end describe '#delayed_decrement_current_value' do - Given(:delayed_decrement_current_value) { consumer.delayed_decrement_current_value(:field_name, 48.hours) } + let(:delayed_decrement_current_value) { consumer.delayed_decrement_current_value(:field_name, 48.hours) } context 'when call' do after { delayed_decrement_current_value } - Then do + it do expect(Resque).to receive(:enqueue_in).with( 48.hours, Treasury::DelayedIncrementJob, @@ -84,14 +82,14 @@ class TestConsumer < Treasury::Processors::Base end end - Then { expect(delayed_decrement_current_value).to eq consumer.send(:no_action) } + it { expect(delayed_decrement_current_value).to eq consumer.send(:no_action) } end describe '#cancel_delayed_decrement' do context 'when call' do after { consumer.cancel_delayed_decrement(:field_name) } - Then do + it do expect(Resque).to receive(:remove_delayed).with( Treasury::DelayedIncrementJob, id: consumer.event.data[:id], @@ -104,15 +102,15 @@ class TestConsumer < Treasury::Processors::Base end context 'when removed job exists' do - When { allow(Resque).to receive(:remove_delayed).and_return 1 } + before { allow(Resque).to receive(:remove_delayed).and_return 1 } - Then { expect(consumer.cancel_delayed_decrement(:field_name)).to be_truthy } + it { expect(consumer.cancel_delayed_decrement(:field_name)).to be_truthy } end context 'when removed job not exists' do - When { allow(Resque).to receive(:remove_delayed).and_return 0 } + before { allow(Resque).to receive(:remove_delayed).and_return 0 } - Then { expect(consumer.cancel_delayed_decrement(:field_name)).to be_falsey } + it { expect(consumer.cancel_delayed_decrement(:field_name)).to be_falsey } end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index defb9b2..611d8a7 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -15,7 +15,6 @@ Combustion.initialize! :action_mailer, :active_record require 'rspec/rails' -require 'rspec/given' require 'apress-rspec' redis = Treasury.configuration.redis diff --git a/treasury.gemspec b/treasury.gemspec index b2ad885..f3354ac 100644 --- a/treasury.gemspec +++ b/treasury.gemspec @@ -36,7 +36,6 @@ Gem::Specification.new do |spec| spec.add_development_dependency 'simplecov' spec.add_development_dependency 'combustion', '>= 0.5.3' spec.add_development_dependency 'appraisal' - spec.add_development_dependency 'rspec-given' spec.add_development_dependency 'shoulda-matchers' spec.add_development_dependency 'test-unit' spec.add_development_dependency 'pry-byebug'