Sha256: f6d1a173113257c79ff4045900b06162884276cb7bae4b190b4a1112e9c00a83

Contents?: true

Size: 1.97 KB

Versions: 62

Compression:

Stored size: 1.97 KB

Contents

require 'test_helper'

module Workarea
  module Insights
    class RepeatPurchaseRateTest < TestCase
      def test_results
        Metrics::User.save_order(email: 'bcrouse0@workarea.com', revenue: 1.to_m, at: 80.days.ago)
        Metrics::User.save_order(email: 'bcrouse0@workarea.com', revenue: 1.to_m, at: 40.days.ago)
        Metrics::User.save_order(email: 'bcrouse0@workarea.com', revenue: 1.to_m, at: 20.days.ago)
        Metrics::User.save_order(email: 'bcrouse0@workarea.com', revenue: 1.to_m, at: 10.days.ago)
        Metrics::User.save_order(email: 'bcrouse1@workarea.com', revenue: 1.to_m, at: 40.days.ago)
        Metrics::User.save_order(email: 'bcrouse1@workarea.com', revenue: 1.to_m, at: 20.days.ago)
        Metrics::User.save_order(email: 'bcrouse2@workarea.com', revenue: 1.to_m, at: 10.days.ago)

        RepeatPurchaseRate.generate_monthly!
        assert_equal(1, RepeatPurchaseRate.count)

        repeat_purchase_rate = RepeatPurchaseRate.first
        assert_equal(3, repeat_purchase_rate.results.length)

        assert_equal(30, repeat_purchase_rate.results.first['days_ago'])
        assert_equal(1, repeat_purchase_rate.results.first['purchased'])
        assert_equal(0, repeat_purchase_rate.results.first['purchased_again'])
        assert_in_delta(0, repeat_purchase_rate.results.first['percent_purchased_again'])

        assert_equal(60, repeat_purchase_rate.results.second['days_ago'])
        assert_equal(2, repeat_purchase_rate.results.second['purchased'])
        assert_equal(1, repeat_purchase_rate.results.second['purchased_again'])
        assert_in_delta(50, repeat_purchase_rate.results.second['percent_purchased_again'])

        assert_equal(90, repeat_purchase_rate.results.third['days_ago'])
        assert_equal(3, repeat_purchase_rate.results.third['purchased'])
        assert_equal(2, repeat_purchase_rate.results.third['purchased_again'])
        assert_in_delta(66.667, repeat_purchase_rate.results.third['percent_purchased_again'])
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

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