Sha256: 613af5bf417c614b8bbf3977e1157ddf4f13bb7e312485ad427b284ba0637b28

Contents?: true

Size: 1.98 KB

Versions: 74

Compression:

Stored size: 1.98 KB

Contents

FactoryBot.define do
  factory :master_price, class: "Comee::Core::MasterPrice" do
    purchase_price { 100.0 }
    selling_price { 90.0 }
    valid_from { Date.current.advance(months: -1) }
    valid_to { Date.current.advance(months: 1) }
    primary { false }
    margin { 10.0 }
    lead_time { nil }
    price_status { Comee::Core::Price.price_statuses[:draft] }
    product
    supplier
    unit
    previous_price { nil }
    next_price { nil }
    product_lookup { nil }
    propagated_to_client { false }

    trait :approved do
      price_status { Comee::Core::Price.price_statuses[:approved] }
    end

    trait :past do
      valid_from { Date.current.advance(months: -2) }
      valid_to { Date.current.advance(months: -1) }
    end

    trait :future do
      valid_from { Date.current.advance(months: 1) }
      valid_to { Date.current.advance(months: 2) }
    end

    trait :with_previous_price do
      after(:create) do |price|
        previous_price = build(
          :master_price,
          valid_from: price.valid_from.advance(months: -1),
          valid_to: price.valid_from.advance(days: -1),
          primary: price.primary,
          margin: price.margin,
          product: price.product,
          supplier: price.supplier,
          unit: price.unit,
          next_price: price
        )

        price.previous_price = previous_price
        price.save!
        price
      end
    end

    trait :with_next_price do
      after(:create) do |price|
        next_price = create(
          :master_price,
          valid_from: price.valid_to.advance(days: 1),
          valid_to: price.valid_to.advance(months: 1),
          primary: price.primary,
          margin: price.margin,
          product: price.product,
          supplier: price.supplier,
          unit: price.unit,
          previous_price: price
        )
        price.next_price = next_price
        price.price_status = Comee::Core::Price.price_statuses[:approved]
        price.save!
        price
      end
    end
  end
end

Version data entries

74 entries across 74 versions & 1 rubygems

Version Path
comee_core-0.2.76 spec/factories/comee/core/master_prices.rb
comee_core-0.2.75 spec/factories/comee/core/master_prices.rb
comee_core-0.2.70 spec/factories/comee/core/master_prices.rb
comee_core-0.2.69 spec/factories/comee/core/master_prices.rb
comee_core-0.2.68 spec/factories/comee/core/master_prices.rb
comee_core-0.2.67 spec/factories/comee/core/master_prices.rb
comee_core-0.2.66 spec/factories/comee/core/master_prices.rb
comee_core-0.2.65 spec/factories/comee/core/master_prices.rb
comee_core-0.2.64 spec/factories/comee/core/master_prices.rb
comee_core-0.2.63 spec/factories/comee/core/master_prices.rb
comee_core-0.2.62 spec/factories/comee/core/master_prices.rb
comee_core-0.2.61 spec/factories/comee/core/master_prices.rb
comee_core-0.2.60 spec/factories/comee/core/master_prices.rb
comee_core-0.2.59 spec/factories/comee/core/master_prices.rb
comee_core-0.2.58 spec/factories/comee/core/master_prices.rb
comee_core-0.2.57 spec/factories/comee/core/master_prices.rb
comee_core-0.2.56 spec/factories/comee/core/master_prices.rb
comee_core-0.2.55 spec/factories/comee/core/master_prices.rb
comee_core-0.2.54 spec/factories/comee/core/master_prices.rb
comee_core-0.2.53 spec/factories/comee/core/master_prices.rb