Files
openfoodnetwork/spec/services/exchange_variant_bulk_updater_spec.rb
2019-05-28 21:32:25 +08:00

44 lines
1.4 KiB
Ruby

require 'spec_helper'
describe ExchangeVariantBulkUpdater do
let!(:first_variant) { create(:variant) }
let!(:second_variant) { create(:variant) }
let!(:third_variant) { create(:variant) }
it 'associates new variants to the exchange' do
exchange = create(:exchange)
described_class.new(exchange).update!([first_variant.id, second_variant.id])
# Check association cache.
expect(exchange.variants).to include(first_variant)
expect(exchange.variants).to include(second_variant)
# Check if changes are actually persisted.
exchange.reload
expect(exchange.variants).to include(first_variant)
expect(exchange.variants).to include(second_variant)
end
it 'disassociates variants from the exchange' do
exchange = create(:exchange, variant_ids: [first_variant.id, second_variant.id])
described_class.new(exchange).update!([first_variant.id, third_variant.id])
# Check association cache.
expect(exchange.variants).to include(first_variant)
expect(exchange.variants).to include(third_variant)
# Check if changes are actually persisted.
exchange.reload
expect(exchange.variants).to include(first_variant)
expect(exchange.variants).to include(third_variant)
described_class.new(exchange).update!([])
# Check association cache.
expect(exchange.variants).to be_blank
# Check if changes are actually persisted.
exchange.reload
expect(exchange.variants).to be_blank
end
end