При массовом изменении статуса отзывов причина теперь обязательное поле #22
This commit is contained in:
@@ -67,6 +67,7 @@ test() ->
|
||||
|
||||
% Сначала меняем статусы, чтобы потом проверить фильтрацию по статусам
|
||||
test_bulk_update_status(Token, Review1Id, Review2Id),
|
||||
test_bulk_update_missing_reason(Token, Review1Id),
|
||||
|
||||
test_filter_by_status(Token),
|
||||
test_filter_combined_status_target(Token, EventId),
|
||||
@@ -118,17 +119,32 @@ test_filter_by_user(Token, UserId) ->
|
||||
[?assertEqual(UserId, maps:get(<<"user_id">>, R)) || R <- Reviews],
|
||||
ct:pal(" OK: ~p reviews by user", [length(Reviews)]).
|
||||
|
||||
%% @doc PATCH /v1/admin/reviews – массовое обновление статусов.
|
||||
%% @doc PATCH /v1/admin/reviews – массовое обновление статусов с причиной.
|
||||
test_bulk_update_status(Token, Review1Id, Review2Id) ->
|
||||
ct:pal(" TEST: Bulk update review statuses"),
|
||||
Body = [
|
||||
#{<<"id">> => Review1Id, <<"status">> => <<"visible">>},
|
||||
#{<<"id">> => Review2Id, <<"status">> => <<"hidden">>}
|
||||
],
|
||||
#{<<"updated_count">> := Count} = api_test_runner:admin_patch(
|
||||
<<"/v1/admin/reviews">>, Token, Body),
|
||||
?assertEqual(2, Count),
|
||||
ct:pal(" OK: updated ~p reviews", [Count]).
|
||||
BodyMap = #{
|
||||
<<"operations">> => [
|
||||
#{<<"id">> => Review1Id, <<"status">> => <<"visible">>},
|
||||
#{<<"id">> => Review2Id, <<"status">> => <<"hidden">>}
|
||||
],
|
||||
<<"reason">> => <<"Moderation action">>
|
||||
},
|
||||
Body = jsx:encode(BodyMap),
|
||||
{ok, 200, _, RespBody} = api_test_runner:admin_request(patch, <<"/v1/admin/reviews">>, Token, Body),
|
||||
Result = jsx:decode(list_to_binary(RespBody), [return_maps]),
|
||||
?assertEqual(2, maps:get(<<"updated_count">>, Result)),
|
||||
ct:pal(" OK: updated ~p reviews", [maps:get(<<"updated_count">>, Result)]).
|
||||
|
||||
%% @doc PATCH /v1/admin/reviews – отсутствует reason → 400.
|
||||
test_bulk_update_missing_reason(Token, ReviewId) ->
|
||||
ct:pal(" TEST: Bulk update missing reason (400)"),
|
||||
BodyMap = #{
|
||||
<<"operations">> => [#{<<"id">> => ReviewId, <<"status">> => <<"hidden">>}]
|
||||
% reason отсутствует
|
||||
},
|
||||
Body = jsx:encode(BodyMap),
|
||||
{ok, 400, _, _} = api_test_runner:admin_request(patch, <<"/v1/admin/reviews">>, Token, Body),
|
||||
ct:pal(" OK: got 400").
|
||||
|
||||
%% @doc GET /v1/admin/reviews?status=visible – фильтрация по статусу.
|
||||
test_filter_by_status(Token) ->
|
||||
|
||||
Reference in New Issue
Block a user