mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-30 21:27:17 +00:00
44 lines
1.4 KiB
Ruby
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
|