Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions spec/models/item_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -493,4 +493,20 @@
end
end
end

describe "#sync_request_units!" do
it "returns the created request units names for the given unit_ids" do
item = create(:item, organization:)
unit_1 = create(:unit, organization:, name: 'Unit 1')
unit_2 = create(:unit, organization:, name: 'Unit 2')
_unit_3 = create(:unit, organization:, name: 'Not included')
create(:item_unit, item:, name: unit_1.name)
create(:item_unit, item:, name: unit_2.name)
unit_ids = [unit_1.id, unit_2.id]

result = item.sync_request_units!(unit_ids)

expect(result).to contain_exactly('Unit 1', 'Unit 2')
end
end
end
116 changes: 116 additions & 0 deletions spec/models/partners/item_request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,122 @@
describe "versioning" do
it { is_expected.to be_versioned }
end

describe '#quantity_with_units' do
context 'when enable_packs is enabled' do
context 'when there is a request unit' do
it 'returns the quantity with the request unit' do
Flipper.enable(:enable_packs)

item = create(:item, organization: organization)
create(:item_unit, item:, name: 'flat')
request = create(:request, organization: organization)
item_request = create(:item_request, request:, item: item, request_unit: 'flat', name: "Item 1", quantity: 10)

expect(item_request.quantity_with_units).to eq('10 flats')
end
end

context 'when there is no request unit' do
it 'returns only the quantity' do
Flipper.enable(:enable_packs)

item = create(:item, organization: organization)
create(:item_unit, item:, name: 'flat')
request = create(:request, organization: organization)
item_request = create(:item_request, request:, item: item, name: 'Item 1', quantity: 10)

expect(item_request.quantity_with_units).to eq('10')
end
end
end

context 'when enable_packs is disabled' do
context 'when there is a request unit' do
it 'returns only the quantity' do
Flipper.disable(:enable_packs)

item = create(:item, organization: organization)
create(:item_unit, item:, name: 'flat')
request = create(:request, organization: organization)
item_request = create(:item_request, request:, item: item, request_unit: 'flat', name: "Item 1", quantity: 10)

expect(item_request.quantity_with_units).to eq('10')
end
end

context 'when there is no request unit' do
it 'returns only the quantity' do
Flipper.disable(:enable_packs)

item = create(:item, organization: organization)
create(:item_unit, item:, name: 'flat')
request = create(:request, organization: organization)
item_request = create(:item_request, request:, item: item, name: "Item 1", quantity: 10)

expect(item_request.quantity_with_units).to eq("10")
end
end
end
end

describe '#name_with_unit' do
context 'when enable_packs is enabled' do
context 'when there is a request unit' do
it 'returns the item name with the request unit' do
Flipper.enable(:enable_packs)

item = create(:item, organization: organization, name: 'Item name')
create(:item_unit, item:, name: 'flat')
request = create(:request, organization: organization)
item_request = create(:item_request, request:, item: item, request_unit: 'flat', name: "Item 1", quantity: 10)

expect(item_request.name_with_unit).to eq('Item name - flats')
end
end

context 'when there is no request unit' do
it 'returns only the item name' do
Flipper.enable(:enable_packs)

item = create(:item, organization: organization, name: 'Item name')
create(:item_unit, item:, name: 'flat')
request = create(:request, organization: organization)
item_request = create(:item_request, request:, item: item, name: 'Item 1', quantity: 10)

expect(item_request.name_with_unit).to eq('Item name')
end
end
end

context 'when enable_packs is disabled' do
context 'when there is a request unit' do
it 'returns only the item_name' do
Flipper.disable(:enable_packs)

item = create(:item, organization: organization, name: 'Item name')
create(:item_unit, item:, name: 'flat')
request = create(:request, organization: organization)
item_request = create(:item_request, request:, item: item, request_unit: 'flat', name: "Item 1", quantity: 10)

expect(item_request.name_with_unit).to eq('Item name')
end
end

context 'when there is no request unit' do
it 'returns only the item_name' do
Flipper.disable(:enable_packs)

item = create(:item, organization: organization, name: 'Item name')
create(:item_unit, item:, name: 'flat')
request = create(:request, organization: organization)
item_request = create(:item_request, request:, item: item, name: 'Item 1', quantity: 10)

expect(item_request.name_with_unit).to eq('Item name')
end
end
end
end
end


201 changes: 154 additions & 47 deletions spec/pdfs/distribution_pdf_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,85 @@

context "with request data" do
describe "#hide_columns" do
it "hides value and package columns when true on organization" do
context "when enable_packs is enabled" do
it "hides value and package columns when true on organization, and includes the request unit info" do
Flipper.enable(:enable_packs)

pdf = described_class.new(org_hiding_packages_and_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received"],
["Item 1", "", 50],
["Item 2", "30", 100],
["Item 3", "50", ""],
["Item 4", "120 packs", ""],
["", "", ""],
["Total Items Received", 200, 150]
])
end

it "hides value columns when true on organization" do
Flipper.enable(:enable_packs)

pdf = described_class.new(org_hiding_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received", "Packages"],
["Item 1", "", 50, "1"],
["Item 2", "30", 100, nil],
["Item 3", "50", "", nil],
["Item 4", "120 packs", "", nil],
["", "", ""],
["Total Items Received", 200, 150, ""]
])
end
end

context "when enable_packs is disabled" do
it "hides value and package columns when true on organization, and does not include request unit info" do
Flipper.disable(:enable_packs)

pdf = described_class.new(org_hiding_packages_and_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received"],
["Item 1", "", 50],
["Item 2", "30", 100],
["Item 3", "50", ""],
["Item 4", "120", ""],
["", "", ""],
["Total Items Received", 200, 150]
])
end

it "hides value columns when true on organization, and does not include request unit info" do
Flipper.disable(:enable_packs)

pdf = described_class.new(org_hiding_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received", "Packages"],
["Item 1", "", 50, "1"],
["Item 2", "30", 100, nil],
["Item 3", "50", "", nil],
["Item 4", "120", "", nil],
["", "", ""],
["Total Items Received", 200, 150, ""]
])
end
end
end
end

context "with non request data" do
context "when enable_packs is enabled" do
it "hides value and package columns when true on organization, and includes request unit info" do
Flipper.enable(:enable_packs)

pdf = described_class.new(org_hiding_packages_and_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
Expand All @@ -57,13 +135,15 @@
["Item 1", "", 50],
["Item 2", "30", 100],
["Item 3", "50", ""],
["Item 4", "120", ""],
["Item 4", "120 packs", ""],
["", "", ""],
["Total Items Received", 200, 150]
])
end

it "hides value columns when true on organization" do
it "hides value columns when true on organization, and includes request unit info" do
Flipper.enable(:enable_packs)

pdf = described_class.new(org_hiding_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
Expand All @@ -72,64 +152,91 @@
["Item 1", "", 50, "1"],
["Item 2", "30", 100, nil],
["Item 3", "50", "", nil],
["Item 4", "120", "", nil],
["Item 4", "120 packs", "", nil],
["", "", ""],
["Total Items Received", 200, 150, ""]
])
end
end
end

context "with non request data" do
it "hides value and package columns when true on organization" do
pdf = described_class.new(org_hiding_packages_and_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received"],
["Item 1", "", 50],
["Item 2", "30", 100],
["Item 3", "50", ""],
["Item 4", "120", ""],
["", "", ""],
["Total Items Received", 200, 150]
])
end

it "hides value columns when true on organization" do
pdf = described_class.new(org_hiding_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received", "Packages"],
["Item 1", "", 50, "1"],
["Item 2", "30", 100, nil],
["Item 3", "50", "", nil],
["Item 4", "120", "", nil],
["", "", ""],
["Total Items Received", 200, 150, ""]
])
end
end
context "when enable_packs is disabled" do
it "hides value and package columns when true on organization, and does not include request unit info" do
Flipper.disable(:enable_packs)

context "regardless of request data" do
describe "#hide_columns" do
it "hides package column when true on organization" do
pdf = described_class.new(org_hiding_packages, distribution)
pdf = described_class.new(org_hiding_packages_and_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received"],
["Item 1", "", 50],
["Item 2", "30", 100],
["Item 3", "50", ""],
["Item 4", "120", ""],
["", "", ""],
["Total Items Received", 200, 150]
])
end

it "hides value columns when true on organization, and does not include request unit info" do
Flipper.disable(:enable_packs)

pdf = described_class.new(org_hiding_values, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received", "Value/item", "In-Kind Value Received"],
["Item 1", "", 50, "$1.00", "$50.00"],
["Item 2", "30", 100, "$2.00", "$200.00"],
["Item 3", "50", "", "$3.00", nil],
["Item 4", "120", "", "$4.00", nil],
["", "", "", "", ""],
["Total Items Received", 200, 150, "", "$250.00"]
["Items Received", "Requested", "Received", "Packages"],
["Item 1", "", 50, "1"],
["Item 2", "30", 100, nil],
["Item 3", "50", "", nil],
["Item 4", "120", "", nil],
["", "", ""],
["Total Items Received", 200, 150, ""]
])
end
end
end

context "regardless of request data" do
describe "#hide_columns" do
context "when enable_packs is enabled" do
it "hides package column when true on organization, and includes request unit info" do
Flipper.enable(:enable_packs)

pdf = described_class.new(org_hiding_packages, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received", "Value/item", "In-Kind Value Received"],
["Item 1", "", 50, "$1.00", "$50.00"],
["Item 2", "30", 100, "$2.00", "$200.00"],
["Item 3", "50", "", "$3.00", nil],
["Item 4", "120 packs", "", "$4.00", nil],
["", "", "", "", ""],
["Total Items Received", 200, 150, "", "$250.00"]
])
end
end

context "when enable_packs is disabled" do
it "hides package column when true on organization, and does not include request unit info" do
Flipper.disable(:enable_packs)

pdf = described_class.new(org_hiding_packages, distribution)
data = pdf.request_data
pdf.hide_columns(data)
expect(data).to eq([
["Items Received", "Requested", "Received", "Value/item", "In-Kind Value Received"],
["Item 1", "", 50, "$1.00", "$50.00"],
["Item 2", "30", 100, "$2.00", "$200.00"],
["Item 3", "50", "", "$3.00", nil],
["Item 4", "120", "", "$4.00", nil],
["", "", "", "", ""],
["Total Items Received", 200, 150, "", "$250.00"]
])
end
end
end
end
end

describe "address pdf output" do
Expand Down
Loading
Loading