step "the supplier visits the new product page" do visit new_suppliers_product_path end step "there are :count supplier products" do |count| @products = create_list :product, count.to_i, supplier: @supplier end step "the supplier fills in the new product form selecting the first product category" do find('#product_name').set 'New product' find('#product_code').set 'NL0487' find('#product_price').set '6.42' find("#product-category-checker-#{@product_categories.first.id}").set true end step "the supplier submits the product form" do find('.form-action-submit').click end step "the new product with proper properties linked to the first product category should have been created" do sleep 1 @product = Product.find_by_name 'New product' @product.code.should == 'NL0487' @product.price.should == 6.42 @product_categories.each(&:reload) @product.product_categories.should == [@product_categories.first] end step "the supplier should be on the product overview path" do route_should_be 'suppliers/products#index' end step "the supplier clicks on the edit product button" do within ".product-row-#{@product.id}" do find('.table-edit').click end end step "the supplier unchecks the first product category and checks the last product category" do find("#product-category-checker-#{@product_categories.first.id}").set false find("#product-category-checker-#{@product_categories.last.id}").set true end step "the supplier product should only be linked to the last product category" do @product.reload @product_categories.each(&:reload) @product.product_categories.should == [@product_categories.last] end