Sha256: 38fcc7fb0b37320e8191cc1045cb09d32bab0777a01488c3cbf4b715d9bc96f6

Contents?: true

Size: 1.82 KB

Versions: 6

Compression:

Stored size: 1.82 KB

Contents

require 'test_helper'

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

        setup :set_product

        def set_product
          @product = create_product
        end

        def create_recommendation_settings
          Recommendation::Settings.create!(id: @product.id)
        end

        def test_shows_recommendation_settings
          recommendation_settings = create_recommendation_settings
          get admin_api.product_recommendation_settings_path(@product.id)

          result = JSON.parse(response.body)['recommendation_settings']
          assert_equal(
            recommendation_settings,
            Recommendation::Settings.new(result)
          )
        end

        def test_updates_recommendation_settings
          recommendation_settings = create_recommendation_settings

          patch admin_api.product_recommendation_settings_path(@product.id),
            params: { recommendation_settings: { product_ids: ['foo'] } }

          assert_equal(['foo'], recommendation_settings.reload.product_ids)
        end

        def test_unpersisted_recommendation_settings
          get admin_api.product_recommendation_settings_path(@product.id)
          result = JSON.parse(response.body)['recommendation_settings']
          assert_equal(@product.id, result['_id'])
          assert_equal(0, Recommendation::Settings.count)

          patch admin_api.product_recommendation_settings_path(@product.id),
            params: { recommendation_settings: { product_ids: ['foo'] } }

          assert_equal(1, Recommendation::Settings.count)
          assert_equal(@product.id, Recommendation::Settings.first.id)
          assert_equal(['foo'], Recommendation::Settings.first.product_ids)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
workarea-api-4.5.6 admin/test/integration/workarea/api/admin/recommendation_settings_integration_test.rb
workarea-api-admin-4.5.6 test/integration/workarea/api/admin/recommendation_settings_integration_test.rb
workarea-api-4.5.5 admin/test/integration/workarea/api/admin/recommendation_settings_integration_test.rb
workarea-api-admin-4.5.5 test/integration/workarea/api/admin/recommendation_settings_integration_test.rb
workarea-api-4.5.4 admin/test/integration/workarea/api/admin/recommendation_settings_integration_test.rb
workarea-api-admin-4.5.4 test/integration/workarea/api/admin/recommendation_settings_integration_test.rb