feat: GET /v1/user/booking-requests + search image_url. Fixes EventHub/EventHubBack#59
This commit is contained in:
@@ -39,7 +39,10 @@ logic_booking_test_() ->
|
||||
{"List event bookings", fun test_list_event_bookings/0},
|
||||
{"List event bookings as owner", fun test_list_event_bookings_owner/0},
|
||||
{"List event bookings non-owner denied", fun test_list_event_bookings_non_owner/0},
|
||||
{"List user bookings", fun test_list_user_bookings/0}
|
||||
{"List user bookings", fun test_list_user_bookings/0},
|
||||
{"List booking requests as owner", fun test_list_booking_requests_owner/0},
|
||||
{"List booking requests as specialist", fun test_list_booking_requests_specialist/0},
|
||||
{"List booking requests stranger empty", fun test_list_booking_requests_stranger/0}
|
||||
]}.
|
||||
|
||||
%% Вспомогательные функции
|
||||
@@ -301,3 +304,54 @@ test_list_user_bookings() ->
|
||||
|
||||
{ok, Bookings} = logic_booking:list_user_bookings(ParticipantId),
|
||||
?assertEqual(2, length(Bookings)).
|
||||
|
||||
test_list_booking_requests_owner() ->
|
||||
OwnerId = create_test_user(user),
|
||||
ParticipantId = create_test_user(user),
|
||||
CalendarId = create_test_calendar(OwnerId, manual),
|
||||
EventId = create_test_event(CalendarId),
|
||||
{ok, Booking} = logic_booking:create_booking(ParticipantId, EventId),
|
||||
|
||||
{ok, Items} = logic_booking:list_user_booking_requests(OwnerId),
|
||||
?assertEqual(1, length(Items)),
|
||||
[{B, Event, Role}] = Items,
|
||||
?assertEqual(Booking#booking.id, B#booking.id),
|
||||
?assertEqual(EventId, Event#event.id),
|
||||
?assertEqual(owner, Role),
|
||||
|
||||
%% participant inbox is separate — no manage requests for own booking
|
||||
{ok, []} = logic_booking:list_user_booking_requests(ParticipantId).
|
||||
|
||||
test_list_booking_requests_specialist() ->
|
||||
OwnerId = create_test_user(user),
|
||||
SpecId = create_test_user(user),
|
||||
ParticipantId = create_test_user(user),
|
||||
CalendarId = create_test_calendar(OwnerId, manual),
|
||||
{ok, _} = core_calendar_specialist:create(CalendarId, SpecId, <<"Spec">>, []),
|
||||
SpecEventId = create_test_event(CalendarId),
|
||||
OtherEventId = create_test_event(CalendarId),
|
||||
{ok, _} = core_event:update(SpecEventId, [{specialist_id, SpecId}]),
|
||||
|
||||
{ok, SpecBooking} = logic_booking:create_booking(ParticipantId, SpecEventId),
|
||||
OtherParticipant = create_test_user(user),
|
||||
{ok, _} = logic_booking:create_booking(OtherParticipant, OtherEventId),
|
||||
|
||||
{ok, SpecItems} = logic_booking:list_user_booking_requests(SpecId),
|
||||
?assertEqual(1, length(SpecItems)),
|
||||
[{B, Event, Role}] = SpecItems,
|
||||
?assertEqual(SpecBooking#booking.id, B#booking.id),
|
||||
?assertEqual(SpecEventId, Event#event.id),
|
||||
?assertEqual(specialist, Role),
|
||||
|
||||
%% owner sees both pending
|
||||
{ok, OwnerItems} = logic_booking:list_user_booking_requests(OwnerId),
|
||||
?assertEqual(2, length(OwnerItems)).
|
||||
|
||||
test_list_booking_requests_stranger() ->
|
||||
OwnerId = create_test_user(user),
|
||||
ParticipantId = create_test_user(user),
|
||||
StrangerId = create_test_user(user),
|
||||
CalendarId = create_test_calendar(OwnerId, manual),
|
||||
EventId = create_test_event(CalendarId),
|
||||
{ok, _} = logic_booking:create_booking(ParticipantId, EventId),
|
||||
{ok, []} = logic_booking:list_user_booking_requests(StrangerId).
|
||||
|
||||
Reference in New Issue
Block a user