38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { login, registerUser } from "../../fixtures/apiClient.js";
|
|
import { env } from "../../fixtures/env.js";
|
|
import { test, expect } from "../../fixtures/test.js";
|
|
import { users } from "../../fixtures/users.js";
|
|
|
|
test("@p0 unauthenticated admin route redirects to login", async ({ page }) => {
|
|
await page.goto("/admin/runtime-pods");
|
|
|
|
await expect(page).toHaveURL(/\/login$/);
|
|
});
|
|
|
|
test("@p0 @local-only non-admin user cannot open admin routes", async ({ page, request }) => {
|
|
await registerUser(request, users.user);
|
|
const tokens = await login(request, users.user);
|
|
|
|
await page.addInitScript(
|
|
({ accessToken, refreshToken }) => {
|
|
window.localStorage.setItem("access_token", accessToken);
|
|
window.localStorage.setItem("refresh_token", refreshToken);
|
|
},
|
|
{ accessToken: tokens.access_token, refreshToken: tokens.refresh_token }
|
|
);
|
|
|
|
await page.goto(`${env.frontendUrl}/admin/runtime-pods`);
|
|
|
|
await expect(page).toHaveURL(/\/dashboard$/);
|
|
});
|
|
|
|
test.describe("admin access", () => {
|
|
test.use({ storageState: users.admin.storageState });
|
|
|
|
test("@p0 admin can open runtime pods route", async ({ page }) => {
|
|
await page.goto("/admin/runtime-pods");
|
|
|
|
await expect(page.getByRole("heading", { name: /^runtime$/i })).toBeVisible();
|
|
});
|
|
});
|