fix: keep session when refresh fails on network error or 5xx (WealthLedger/frontend#97)
This commit was merged in pull request #100.
This commit is contained in:
@@ -190,6 +190,30 @@ describe("AppRoutes", () => {
|
||||
expect(document.title).toBe("Карты — WealthLedger");
|
||||
});
|
||||
|
||||
it("offers a retry instead of the login form while the server is unreachable, then restores the route", async () => {
|
||||
let isOutage = true;
|
||||
server.use(
|
||||
http.post("*/api/v1/auth/refresh", () =>
|
||||
isOutage
|
||||
? new HttpResponse(null, { status: 502 })
|
||||
: HttpResponse.json({
|
||||
accessToken: "test-token",
|
||||
user: { email: "user@example.com", id: "user-1" },
|
||||
}),
|
||||
),
|
||||
);
|
||||
renderRoutes("/accounts");
|
||||
|
||||
expect(await screen.findByRole("alert")).toHaveTextContent("Не удалось подключиться");
|
||||
expect(screen.queryByRole("heading", { name: "Вход" })).not.toBeInTheDocument();
|
||||
isOutage = false;
|
||||
fireEvent.click(screen.getByRole("button", { name: "Повторить" }));
|
||||
|
||||
expect(
|
||||
await screen.findByRole("heading", { level: 2, name: "Нет инвестиционных счетов" }),
|
||||
).toBeVisible();
|
||||
});
|
||||
|
||||
it("lazy-loads the protected shell for an authenticated accounts route", async () => {
|
||||
server.use(
|
||||
http.post("*/api/v1/auth/refresh", () =>
|
||||
|
||||
Reference in New Issue
Block a user