Fix: Update permissions and add missing /api/exchange/slots endpoint
- Updated auth-context.tsx to use new exchange permissions (CREATE_EXCHANGE, VIEW_OWN_EXCHANGES, etc.) instead of old appointment permissions (BOOK_APPOINTMENT, etc.) - Updated exchange/page.tsx, trades/page.tsx, admin/trades/page.tsx to use correct permission constants - Updated profile/page.test.tsx mock permissions - Updated admin/availability/page.tsx to use constants.exchange instead of constants.booking - Added /api/exchange/slots endpoint to return available slots for a date, filtering out already booked slots - Fixed E2E tests: - exchange.spec.ts: Wait for button to be enabled before clicking - permissions.spec.ts: Use more specific heading selector - price-history.spec.ts: Expect /exchange redirect for regular users
This commit is contained in:
parent
65ba4dc42a
commit
1008eea2d9
11 changed files with 184 additions and 379 deletions
|
|
@ -15,7 +15,12 @@ let mockUser: { id: number; email: string; roles: string[]; permissions: string[
|
|||
id: 1,
|
||||
email: "test@example.com",
|
||||
roles: ["regular"],
|
||||
permissions: ["view_counter", "increment_counter", "use_sum", "manage_own_profile"],
|
||||
permissions: [
|
||||
"create_exchange",
|
||||
"view_own_exchanges",
|
||||
"cancel_own_exchange",
|
||||
"manage_own_profile",
|
||||
],
|
||||
};
|
||||
let mockIsLoading = false;
|
||||
const mockLogout = vi.fn();
|
||||
|
|
@ -33,19 +38,18 @@ vi.mock("../auth-context", () => ({
|
|||
hasPermission: mockHasPermission,
|
||||
}),
|
||||
Permission: {
|
||||
VIEW_COUNTER: "view_counter",
|
||||
INCREMENT_COUNTER: "increment_counter",
|
||||
USE_SUM: "use_sum",
|
||||
VIEW_AUDIT: "view_audit",
|
||||
FETCH_PRICE: "fetch_price",
|
||||
MANAGE_OWN_PROFILE: "manage_own_profile",
|
||||
MANAGE_INVITES: "manage_invites",
|
||||
VIEW_OWN_INVITES: "view_own_invites",
|
||||
BOOK_APPOINTMENT: "book_appointment",
|
||||
VIEW_OWN_APPOINTMENTS: "view_own_appointments",
|
||||
CANCEL_OWN_APPOINTMENT: "cancel_own_appointment",
|
||||
CREATE_EXCHANGE: "create_exchange",
|
||||
VIEW_OWN_EXCHANGES: "view_own_exchanges",
|
||||
CANCEL_OWN_EXCHANGE: "cancel_own_exchange",
|
||||
MANAGE_AVAILABILITY: "manage_availability",
|
||||
VIEW_ALL_APPOINTMENTS: "view_all_appointments",
|
||||
CANCEL_ANY_APPOINTMENT: "cancel_any_appointment",
|
||||
VIEW_ALL_EXCHANGES: "view_all_exchanges",
|
||||
CANCEL_ANY_EXCHANGE: "cancel_any_exchange",
|
||||
COMPLETE_EXCHANGE: "complete_exchange",
|
||||
},
|
||||
}));
|
||||
|
||||
|
|
@ -64,7 +68,12 @@ beforeEach(() => {
|
|||
id: 1,
|
||||
email: "test@example.com",
|
||||
roles: ["regular"],
|
||||
permissions: ["view_counter", "increment_counter", "use_sum", "manage_own_profile"],
|
||||
permissions: [
|
||||
"create_exchange",
|
||||
"view_own_exchanges",
|
||||
"cancel_own_exchange",
|
||||
"manage_own_profile",
|
||||
],
|
||||
};
|
||||
mockIsLoading = false;
|
||||
mockHasRole.mockImplementation((role: string) => mockUser?.roles.includes(role) ?? false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue