fix: owner event bookings list and paid plan durations from plan_to_months.
CI / test (push) Successful in 6m55s
CI / deploy-ift (push) Successful in 3m33s
CI / e2e-ift (push) Failing after 1m4s
CI / deploy-stage (push) Has been skipped
CI / e2e-stage (push) Has been skipped

Fixes EventHub/EventHubBack#51
Fixes EventHub/EventHubBack#52

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-21 20:18:49 +03:00
parent 7368adfb37
commit 5ac23219ca
6 changed files with 133 additions and 26 deletions
+36
View File
@@ -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).