Sha256: e98c29b51f02ba07f409cd00fd1b48b4315b4ea4321c12585a9cc3d83c7403e3

Contents?: true

Size: 1.87 KB

Versions: 62

Compression:

Stored size: 1.87 KB

Contents

require 'test_helper'

module Workarea
  module Storefront
    class RecommendationsViewModelTest < TestCase
      class FooRecommendations < RecommendationsViewModel
        def product_ids
          model
        end

        def result_count
          options[:result_count] || 2
        end
      end

      def test_respecting_active_products
        one = create_product(id: '1')
        create_product(id: '2', active: false)
        three = create_product(id: '3')

        view_model = FooRecommendations.new(%w(1 2 3))
        assert(view_model.products.all? { |vm| vm.is_a?(ProductViewModel) })
        assert_equal([one, three], view_model.products.map(&:model))
      end

      def test_respecting_purchasable_products
        one = create_product(id: '1')
        create_product(id: '2', purchasable: false)
        three = create_product(id: '3')

        view_model = FooRecommendations.new(%w(1 2 3))
        assert(view_model.products.all? { |vm| vm.is_a?(ProductViewModel) })
        assert_equal([one, three], view_model.products.map(&:model))
      end

      def test_falling_back_to_popular_products
        one = create_product(id: '1')
        create_product(id: '2')
        create_product(id: '3')
        create_top_products(results: [{ 'product_id' => '1' }])

        view_model = FooRecommendations.new([])
        assert(view_model.products.all? { |vm| vm.is_a?(ProductViewModel) })
        assert_equal([one], view_model.products.map(&:model))
      end

      def test_uniquing_products
        create_product(id: '1', name: 'Product One')
        create_product(id: '2', name: 'Product Two')
        create_top_products(
          results: [
            { 'product_id' => '1' },
            { 'product_id' => '2' }
          ]
        )

        view_model = FooRecommendations.new(%w(1 2), result_count: 4)
        assert_equal(2, view_model.size)
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-storefront-3.5.27 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.26 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.45 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.25 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.23 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.44 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.22 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.43 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.21 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.42 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.20 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.41 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.19 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.40 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.18 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.39 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.17 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.38 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.5.16 test/view_models/workarea/storefront/recommendations_view_model_test.rb
workarea-storefront-3.4.37 test/view_models/workarea/storefront/recommendations_view_model_test.rb