Sha256: 126a348e3e4df0d9b1e1d99c35033afb29291fa7b964d6fb71e1408a07afcf04

Contents?: true

Size: 802 Bytes

Versions: 11

Compression:

Stored size: 802 Bytes

Contents

require 'rails_helper'

module Spree
  RSpec.describe Spree::PromotionRule, type: :model do
    class BadTestRule < Spree::PromotionRule; end

    class TestRule < Spree::PromotionRule
      def eligible?(_promotable, _options = {})
        true
      end
    end

    it "forces developer to implement eligible? method" do
      expect { BadTestRule.new.eligible?("promotable") }.to raise_error NotImplementedError
    end

    it "validates unique rules for a promotion" do
      p1 = TestRule.new
      p1.promotion_id = 1
      p1.save

      p2 = TestRule.new
      p2.promotion_id = 1
      expect(p2).not_to be_valid
    end

    it "generates its own partial path" do
      rule = TestRule.new
      expect(rule.to_partial_path).to eq 'spree/admin/promotions/rules/test_rule'
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
solidus_core-2.5.2 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.5.1 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.5.0 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.5.0.rc1 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.5.0.beta2 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.5.0.beta1 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.4.2 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.4.1 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.4.0 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.4.0.rc1 spec/models/spree/promotion_rule_spec.rb
solidus_core-2.4.0.beta1 spec/models/spree/promotion_rule_spec.rb