fix: owner event bookings list and paid plan durations from plan_to_months.
Fixes EventHub/EventHubBack#51 Fixes EventHub/EventHubBack#52 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -11,6 +11,10 @@ logic_subscription_test_() ->
|
||||
{"Start trial duplicate", fun test_start_trial_duplicate/0},
|
||||
{"Activate subscription (no trial)", fun test_activate_subscription_no_trial/0},
|
||||
{"Activate subscription (after trial)", fun test_activate_subscription_after_trial/0},
|
||||
{"Activate quarterly duration", fun test_activate_quarterly_duration/0},
|
||||
{"Activate monthly duration", fun test_activate_monthly_duration/0},
|
||||
{"Activate biannual duration", fun test_activate_biannual_duration/0},
|
||||
{"Activate annual duration", fun test_activate_annual_duration/0},
|
||||
{"Check subscription - free", fun test_check_free/0},
|
||||
{"Check subscription - trial", fun test_check_trial/0},
|
||||
{"Check subscription - paid", fun test_check_paid/0},
|
||||
@@ -76,6 +80,38 @@ test_activate_subscription_after_trial() ->
|
||||
?assertEqual(monthly, Sub#subscription.plan),
|
||||
?assertEqual(true, Sub#subscription.trial_used).
|
||||
|
||||
%% Длительность при активации (в т.ч. первой платной с trial_used=false) из Plan.
|
||||
assert_plan_duration(Sub, Months) ->
|
||||
{{Y1, M1, D1}, _} = Sub#subscription.started_at,
|
||||
{{Y2, M2, D2}, Time2} = Sub#subscription.expires_at,
|
||||
StartDays = calendar:date_to_gregorian_days({Y1, M1, D1}),
|
||||
EndDays = calendar:date_to_gregorian_days({Y2, M2, D2}),
|
||||
?assertEqual(Months * 30, EndDays - StartDays),
|
||||
?assertEqual({0, 0, 0}, Time2).
|
||||
|
||||
test_activate_monthly_duration() ->
|
||||
UserId = create_test_user(),
|
||||
{ok, Sub} = logic_subscription:activate_subscription(UserId, monthly, #{card => "4242"}),
|
||||
?assertEqual(false, Sub#subscription.trial_used),
|
||||
assert_plan_duration(Sub, 1).
|
||||
|
||||
test_activate_quarterly_duration() ->
|
||||
UserId = create_test_user(),
|
||||
{ok, Sub} = logic_subscription:activate_subscription(UserId, quarterly, #{card => "4242"}),
|
||||
?assertEqual(quarterly, Sub#subscription.plan),
|
||||
?assertEqual(false, Sub#subscription.trial_used),
|
||||
assert_plan_duration(Sub, 3).
|
||||
|
||||
test_activate_biannual_duration() ->
|
||||
UserId = create_test_user(),
|
||||
{ok, Sub} = logic_subscription:activate_subscription(UserId, biannual, #{card => "4242"}),
|
||||
assert_plan_duration(Sub, 6).
|
||||
|
||||
test_activate_annual_duration() ->
|
||||
UserId = create_test_user(),
|
||||
{ok, Sub} = logic_subscription:activate_subscription(UserId, annual, #{card => "4242"}),
|
||||
assert_plan_duration(Sub, 12).
|
||||
|
||||
test_check_free() ->
|
||||
UserId = create_test_user(),
|
||||
{ok, free, free} = logic_subscription:check_user_subscription(UserId).
|
||||
|
||||
Reference in New Issue
Block a user