mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-28 21:07:16 +00:00
54 lines
1.6 KiB
Ruby
54 lines
1.6 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Enterprise do
|
|
|
|
describe "associations" do
|
|
it { should have_many(:supplied_products) }
|
|
it { should have_many(:distributed_orders) }
|
|
it { should belong_to(:address) }
|
|
it { should have_many(:product_distributions) }
|
|
end
|
|
|
|
describe "validations" do
|
|
it { should validate_presence_of(:name) }
|
|
end
|
|
|
|
it "should default address country to system country" do
|
|
subject.address.country.should == Spree::Country.find_by_id(Spree::Config[:default_country_id])
|
|
end
|
|
|
|
describe "scopes" do
|
|
it "returns distributors with products in stock" do
|
|
d1 = create(:distributor_enterprise)
|
|
d2 = create(:distributor_enterprise)
|
|
d3 = create(:distributor_enterprise)
|
|
d4 = create(:distributor_enterprise)
|
|
create(:product, :distributors => [d1, d2], :on_hand => 5)
|
|
create(:product, :distributors => [d1], :on_hand => 5)
|
|
create(:product, :distributors => [d3], :on_hand => 0)
|
|
|
|
Enterprise.with_distributed_active_products_on_hand.sort.should == [d1, d2]
|
|
end
|
|
end
|
|
|
|
context "has_supplied_products_on_hand?" do
|
|
before :each do
|
|
@supplier = create(:supplier_enterprise)
|
|
end
|
|
|
|
it "returns false when no products" do
|
|
@supplier.should_not have_supplied_products_on_hand
|
|
end
|
|
|
|
it "returns false when the product is out of stock" do
|
|
create(:product, :supplier => @supplier, :on_hand => 0)
|
|
@supplier.should_not have_supplied_products_on_hand
|
|
end
|
|
|
|
it "returns true when the product is in stock" do
|
|
create(:product, :supplier => @supplier, :on_hand => 1)
|
|
@supplier.should have_supplied_products_on_hand
|
|
end
|
|
end
|
|
end
|