Sha256: 5a313553759b4d377f131dfb679fa66b40e5e2ff39b7c8335a9c79c91b31b875

Contents?: true

Size: 1.32 KB

Versions: 24

Compression:

Stored size: 1.32 KB

Contents

require 'test_helper'

module Workarea
  module Admin
    class CodeListViewModelTest < TestCase
      setup :code_list

      def code_list
        @code_list ||= create_code_list(
          count: 4,
          prefix: 'test',
          expires_at: 1.day.from_now
        ).tap(&:generate_promo_codes!)
      end

      def test_used_count
        view_model = CodeListViewModel.wrap(code_list)
        assert_equal(0, view_model.used_count)

        code_list.promo_codes.sample.update(used_at: Time.now)

        view_model = CodeListViewModel.wrap(code_list)
        assert_equal(1, view_model.used_count)

        code_list.promo_codes.create!(code: "#{code_list.prefix}123")

        view_model = CodeListViewModel.wrap(code_list)
        assert_equal(1, view_model.used_count)
      end

      def test_last_used_at
        view_model = CodeListViewModel.wrap(code_list)
        assert_nil(view_model.last_used_at)

        yesterday = 1.day.ago
        code_list.promo_codes.unused.sample.update(used_at: yesterday)

        view_model = CodeListViewModel.wrap(code_list)
        assert_equal(yesterday.to_i, view_model.last_used_at.to_i)

        code_list.promo_codes.unused.sample.used!

        view_model = CodeListViewModel.wrap(code_list)
        refute_equal(yesterday.to_i, view_model.last_used_at.to_i)
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

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