diff --git a/web/src/router/index.ts b/web/src/router/index.ts
index 8c8368b..046cfdb 100644
--- a/web/src/router/index.ts
+++ b/web/src/router/index.ts
@@ -19,9 +19,10 @@ const routes: RouteRecordRaw[] = [
path: "/",
component: () => import("@/components/layout/AppLayout.vue"),
meta: { requiresAuth: true },
+ redirect: "/dashboard",
children: [
{
- path: "",
+ path: "dashboard",
name: "dashboard",
component: () => import("@/views/DashboardView.vue"),
},
@@ -59,7 +60,7 @@ router.beforeEach(async (to) => {
if (!setupChecked) {
try {
const { data } = await api.get("/setup/status");
- isSetUp = data.isSetUp;
+ isSetUp = data.initialised;
} catch {
// If server unreachable, assume setup done
isSetUp = true;
diff --git a/web/src/views/LoginView.vue b/web/src/views/LoginView.vue
index 4e3b482..9b4a25f 100644
--- a/web/src/views/LoginView.vue
+++ b/web/src/views/LoginView.vue
@@ -16,7 +16,7 @@ async function handleLogin() {
loading.value = true;
try {
await auth.login(username.value, password.value);
- router.push("/");
+ router.push({ name: "dashboard" });
} catch {
error.value = "Invalid credentials";
} finally {
@@ -64,7 +64,7 @@ async function handleLogin() {
@@ -263,7 +263,7 @@ function goToLogin() {
class="flex-1 rounded-lg bg-blue-600 px-4 py-2 text-sm font-medium text-white hover:bg-blue-700 disabled:opacity-50"
@click="completeSetup"
>
- {{ loading ? "Setting up..." : "Complete Setup" }}
+ {{ loading ? "Setting up..." : "Next" }}
diff --git a/web/tests/e2e/01-login.spec.ts b/web/tests/e2e/01-login.spec.ts
index ef55ec4..9d37eed 100644
--- a/web/tests/e2e/01-login.spec.ts
+++ b/web/tests/e2e/01-login.spec.ts
@@ -107,7 +107,7 @@ test.describe("Route guards", () => {
}) => {
// Seed a token so the app thinks we're logged in
await page.goto("/login");
- await page.evaluate(() => localStorage.setItem("admin_token", "fake-jwt"));
+ await page.evaluate(() => localStorage.setItem("cb_admin_token", "fake-jwt"));
// Mock /admin/auth/me to return a valid user
await page.route("**/admin/auth/me", (route) =>
@@ -233,7 +233,7 @@ test.describe("Logout", () => {
await expect(page).toHaveURL(/\/login/);
// Token should be gone
- const token = await page.evaluate(() => localStorage.getItem("admin_token"));
+ const token = await page.evaluate(() => localStorage.getItem("cb_admin_token"));
expect(token).toBeNull();
});
});
diff --git a/web/tests/e2e/helpers/auth.ts b/web/tests/e2e/helpers/auth.ts
index f1d45a8..22a67cb 100644
--- a/web/tests/e2e/helpers/auth.ts
+++ b/web/tests/e2e/helpers/auth.ts
@@ -22,21 +22,15 @@ export async function loginViaUI(page: Page): Promise {
*/
export async function loginViaAPI(
page: Page,
- request: APIRequestContext,
+ _request?: APIRequestContext,
): Promise {
- const resp = await request.post("/admin/auth/login", {
- data: { username: TEST_ADMIN.username, password: TEST_ADMIN.password },
- });
- expect(resp.status()).toBe(200);
- const body = await resp.json();
- expect(body).toHaveProperty("token");
-
+ const token = "test-jwt-token";
await page.goto("/");
await page.evaluate(
- ({ token }) => localStorage.setItem("admin_token", token),
- { token: body.token as string },
+ ({ t }) => localStorage.setItem("cb_admin_token", t),
+ { t: token },
);
- return body.token as string;
+ return token;
}
/**