feat: expand advanced widget experiences
This commit is contained in:
1 parent
9437d211c8
commit
c099a8eef6
119 files changed
+3624
-844
No files matched your search
@@ -0,0 +1,52 @@
|
||||
import { describe, expect, test } from "vitest";
|
||||
|
||||
import { getTraefikProtocolKeys, getTraefikSourceDetails, getVisibleTraefikEntryPoints } from "./component";
|
||||
|
||||
const emptyProtocol = {
|
||||
routers: { total: 0, enabled: 0, warnings: 0, errors: 0 },
|
||||
services: { total: 0, enabled: 0, warnings: 0, errors: 0 },
|
||||
middlewares: { total: 0, enabled: 0, warnings: 0, errors: 0 },
|
||||
};
|
||||
|
||||
describe("Traefik source ownership", () => {
|
||||
test("scopes identical resource and endpoint keys to their integrations", () => {
|
||||
const dashboard = {
|
||||
version: "3.0",
|
||||
entryPoints: [],
|
||||
resources: [
|
||||
{ protocol: "http" as const, type: "router" as const, name: "api", provider: null, status: "enabled" as const },
|
||||
],
|
||||
failedEndpoints: ["/api/http/services"],
|
||||
http: emptyProtocol,
|
||||
tcp: emptyProtocol,
|
||||
udp: { routers: emptyProtocol.routers, services: emptyProtocol.services },
|
||||
};
|
||||
|
||||
const details = getTraefikSourceDetails([
|
||||
{ integrationId: "traefik-a", integrationName: "Traefik A", dashboard },
|
||||
{ integrationId: "traefik-b", integrationName: "Traefik B", dashboard },
|
||||
]);
|
||||
|
||||
expect(details.resources.map(({ key }) => key)).toEqual([
|
||||
"traefik-a:http:router:api:0",
|
||||
"traefik-b:http:router:api:0",
|
||||
]);
|
||||
expect(details.failedEndpoints.map(({ key }) => key)).toEqual([
|
||||
"traefik-a:/api/http/services:0",
|
||||
"traefik-b:/api/http/services:0",
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Traefik advanced disclosure", () => {
|
||||
test("shows every protocol regardless of compact toggles and height", () => {
|
||||
expect(getTraefikProtocolKeys({ showTcp: false, showUdp: false }, 100, true)).toEqual(["http", "tcp", "udp"]);
|
||||
});
|
||||
|
||||
test("shows every unique entry point regardless of compact width limits", () => {
|
||||
const entryPoints = ["web", "websecure", "metrics", "admin", "postgres", "dns", "ssh", "smtp", "web"];
|
||||
|
||||
expect(getVisibleTraefikEntryPoints(entryPoints, 100, true)).toEqual(entryPoints.slice(0, -1));
|
||||
expect(getVisibleTraefikEntryPoints(entryPoints, 100, false)).toEqual(["web", "websecure"]);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user