Files
pleno-vue/tests/e2e/failover-config.source.spec.ts
T

36 lines
1.9 KiB
TypeScript

import fs from "node:fs";
import path from "node:path";
import { expect, test } from "@playwright/test";
const read = (relativePath: string) => fs.readFileSync(path.join(process.cwd(), relativePath), "utf8");
test.describe("Failover configuration wiring", () => {
test("wires the superuser failover config client, route, navigation, and controls", async ({}, testInfo) => {
test.skip(testInfo.project.name !== "chromium-desktop", "Source wiring check only needs to run once.");
const client = read("src/components/session/token/superUser/modules/failover/Config.vue");
const moduleObject = read("src/components/session/token/superUser/modules/failover/Failover.vue");
const superUserObject = read("src/components/session/token/superUserObject.vue");
const route = read("src/router.js");
const tabNavigation = read(
"src/views/dashboards/superUserDashboard/configuration/SuperUserDashboardConfigurationNavigation.vue"
);
const menuNavigation = read("src/components/models/navigation/items/NavigationMenuItemsSuperUser.vue");
expect(client).toContain('"/failover/config"');
expect(client).toContain('"database_enabled"');
expect(client).toContain('"redis_enabled"');
expect(client).toContain('"minio_enabled"');
expect(client).toContain('"max_status_age_seconds"');
expect(moduleObject).toContain('title: "Failover"');
expect(superUserObject).toContain("modules/failover/Failover.vue");
expect(superUserObject).toMatch(/get\s+failover\(\)\s*{\s*return\s+Failover;\s*}/);
expect(route).toContain("name: 'configurationFailover'");
expect(route).toContain("path: '/superuser/configuration/failover'");
expect(route).toContain("redirect: { path: '/superuser/configuration/releases/data-services'");
expect(route).toContain("query: { panel: 'failover' }");
expect(tabNavigation).toContain('name: "Failover"');
expect(menuNavigation).toContain("modules.failover.meta.labels.multiple");
});
});