mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
72 lines
1.9 KiB
Ruby
72 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
module PermittedAttributes
|
|
RSpec.describe OrderCycle do
|
|
let(:oc_permitted_attributes) { PermittedAttributes::OrderCycle.new(params) }
|
|
|
|
describe "with basic attributes" do
|
|
let(:params) {
|
|
ActionController::Parameters.new(order_cycle: { id: "2", name: "First Order Cycle" } )
|
|
}
|
|
|
|
it "keeps permitted and removes not permitted" do
|
|
permitted_attributes = oc_permitted_attributes.call
|
|
|
|
expect(permitted_attributes[:id]).to be nil
|
|
expect(permitted_attributes[:name]).to eq "First Order Cycle"
|
|
end
|
|
end
|
|
|
|
describe "nested incoming_exchanges attributes" do
|
|
let(:params) {
|
|
ActionController::Parameters.new(
|
|
order_cycle: {
|
|
incoming_exchanges: [
|
|
{
|
|
sender_id: "2",
|
|
name: "Exchange Name",
|
|
variants: []
|
|
}
|
|
]
|
|
}
|
|
)
|
|
}
|
|
|
|
it "keeps permitted and removes not permitted" do
|
|
permitted_attributes = oc_permitted_attributes.call
|
|
|
|
exchange = permitted_attributes[:incoming_exchanges].first
|
|
expect(exchange[:name]).to be nil
|
|
expect(exchange[:sender_id]).to eq "2"
|
|
end
|
|
end
|
|
|
|
describe "variants inside incoming_exchanges attributes" do
|
|
let(:params) {
|
|
ActionController::Parameters.new(
|
|
order_cycle: {
|
|
incoming_exchanges: [
|
|
{
|
|
variants: {
|
|
"7" => true,
|
|
"12" => true,
|
|
}
|
|
}
|
|
]
|
|
}
|
|
)
|
|
}
|
|
|
|
it "keeps all variant_ids provided" do
|
|
permitted_attributes = oc_permitted_attributes.call
|
|
|
|
exchange_variants = permitted_attributes[:incoming_exchanges].first[:variants]
|
|
expect(exchange_variants["7"]).to be true
|
|
expect(exchange_variants["12"]).to be true
|
|
end
|
|
end
|
|
end
|
|
end
|