Adding quick login, more test refactoring

This commit is contained in:
Will Marshall
2014-05-01 17:11:56 +10:00
parent 6ad30d901d
commit 59d2bc908e
5 changed files with 139 additions and 168 deletions

View File

@@ -111,6 +111,90 @@ describe Shop::ShopController do
response.body.should be_empty
end
# TODO: this should be a controller test baby
pending "filtering products" do
let(:distributor) { create(:distributor_enterprise) }
let(:supplier) { create(:supplier_enterprise) }
let(:oc1) { create(:simple_order_cycle, distributors: [distributor], coordinator: create(:distributor_enterprise), orders_close_at: 2.days.from_now) }
let(:p1) { create(:simple_product, on_demand: false) }
let(:p2) { create(:simple_product, on_demand: true) }
let(:p3) { create(:simple_product, on_demand: false) }
let(:p4) { create(:simple_product, on_demand: false) }
let(:p5) { create(:simple_product, on_demand: false) }
let(:p6) { create(:simple_product, on_demand: false) }
let(:p7) { create(:simple_product, on_demand: false) }
let(:v1) { create(:variant, product: p4, unit_value: 2) }
let(:v2) { create(:variant, product: p4, unit_value: 3, on_demand: false) }
let(:v3) { create(:variant, product: p4, unit_value: 4, on_demand: true) }
let(:v4) { create(:variant, product: p5) }
let(:v5) { create(:variant, product: p5) }
let(:v6) { create(:variant, product: p7) }
let(:order) { create(:order, distributor: distributor, order_cycle: order_cycle) }
before do
p1.master.count_on_hand = 1
p2.master.count_on_hand = 0
p1.master.update_attribute(:count_on_hand, 1)
p2.master.update_attribute(:count_on_hand, 0)
p3.master.update_attribute(:count_on_hand, 0)
p6.master.update_attribute(:count_on_hand, 1)
p6.delete
p7.master.update_attribute(:count_on_hand, 1)
v1.update_attribute(:count_on_hand, 1)
v2.update_attribute(:count_on_hand, 0)
v3.update_attribute(:count_on_hand, 0)
v4.update_attribute(:count_on_hand, 1)
v5.update_attribute(:count_on_hand, 0)
v6.update_attribute(:count_on_hand, 1)
v6.update_attribute(:deleted_at, Time.now)
exchange = Exchange.find(oc1.exchanges.to_enterprises(distributor).outgoing.first.id)
exchange.update_attribute :pickup_time, "frogs"
exchange.variants << p1.master
exchange.variants << p2.master
exchange.variants << p3.master
exchange.variants << p6.master
exchange.variants << v1
exchange.variants << v2
exchange.variants << v3
# v4 is in stock but not in distribution
# v5 is out of stock and in the distribution
# Neither should display, nor should their product, p5
exchange.variants << v5
exchange.variants << v6
controller.stub(:current_order).and_return order
visit shop_path
end
it "filters products based on availability" do
# It shows on hand products
page.should have_content p1.name
page.should have_content p4.name
# It shows on demand products
page.should have_content p2.name
# It does not show products that are neither on hand or on demand
page.should_not have_content p3.name
# It shows on demand variants
page.should have_content v3.options_text
# It does not show variants that are neither on hand or on demand
page.should_not have_content v2.options_text
# It does not show products that have no available variants in this distribution
page.should_not have_content p5.name
# It does not show deleted products
page.should_not have_content p6.name
# It does not show deleted variants
page.should_not have_content v6.name
page.should_not have_content p7.name
end
end
context "RABL tests" do
render_views
before do