Sha256: 0cf87a07371427bf0962a8cae7d486560ea8b790cee3b3347dc2a992630f0e39
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
FactoryBot.define do factory :base_product, class: Spree::Product do sequence(:name) { |n| "Product ##{n} - #{Kernel.rand(9999)}" } description { generate(:random_description) } price { 19.99 } cost_price { 17.00 } sku { generate(:sku) } available_on { 1.year.ago } deleted_at { nil } shipping_category { |r| Spree::ShippingCategory.first || r.association(:shipping_category) } # ensure stock item will be created for this products master # also attach this product to the default store if no stores are passed in before(:create) do |product| create(:stock_location) unless Spree::StockLocation.any? if product.stores.empty? default_store = Spree::Store.default.persisted? ? Spree::Store.default : nil store = default_store || create(:store) product.stores << [store] end end factory :custom_product do name { 'Custom Product' } price { 17.99 } tax_category { |r| Spree::TaxCategory.first || r.association(:tax_category) } end factory :product do tax_category { |r| Spree::TaxCategory.first || r.association(:tax_category) } factory :product_in_stock do after :create do |product| product.master.stock_items.first.adjust_count_on_hand(10) end end factory :product_with_option_types do after(:create) { |product| create(:product_option_type, product: product) } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
spree_core-4.3.0.rc1 | lib/spree/testing_support/factories/product_factory.rb |