Sha256: add62cf111dda6876ca0a4c28e965c512ee0b9c69b5dade272fb78ab1c9e1745

Contents?: true

Size: 1.69 KB

Versions: 16

Compression:

Stored size: 1.69 KB

Contents

require 'test_helper'

module Workarea
  module Api
    module Admin
      class CategoryProductRulesIntegrationTest < IntegrationTest
        include Workarea::Admin::IntegrationTest

        setup :set_sample_attributes

        def set_sample_attributes
          @category = create_category
          @sample_attributes = { name: 'search', operator: 'equals', value: '*' }
        end

        def create_rule
          @category.product_rules.create!(@sample_attributes)
        end

        def test_lists_rules
          rules = [create_rule, create_rule]
          get admin_api.category_product_rules_path(@category.id)
          result = JSON.parse(response.body)['product_rules']

          assert_equal(2, result.length)
          assert_equal(rules.first, ProductRule.new(result.first))
          assert_equal(rules.second, ProductRule.new(result.second))
        end

        def test_creates_rules
          data = @sample_attributes

          assert_difference '@category.reload; @category.product_rules.count;', 1 do
            post admin_api.category_product_rules_path(@category.id),
              params: { product_rule: data }
          end
        end

        def test_updates_rules
          rule = create_rule
          patch admin_api.category_product_rule_path(@category.id, rule.id),
            params: { product_rule: { value: 'foo' } }

          rule.reload
          assert_equal('foo', rule.value)
        end

        def test_destroys_rules
          rule = create_rule

          assert_difference '@category.reload; @category.product_rules.count;', -1 do
            delete admin_api.category_product_rule_path(@category.id, rule.id)
          end
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
workarea-api-4.5.6 admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-admin-4.5.6 test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-4.5.5 admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-admin-4.5.5 test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-4.5.4 admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-admin-4.5.4 test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-4.5.3 admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-admin-4.5.3 test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-4.5.2 admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-admin-4.5.2 test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-4.5.0 admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-admin-4.5.0 test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-4.4.7 admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-admin-4.4.7 test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-4.4.6 admin/test/integration/workarea/api/admin/category_product_rules_integration_test.rb
workarea-api-admin-4.4.6 test/integration/workarea/api/admin/category_product_rules_integration_test.rb