polish server deployment workflow

This commit is contained in:
npc0-hue
2026-07-25 10:57:22 +08:00
parent 4e2bff4639
commit bb12137c4e
7 changed files with 74 additions and 26 deletions
+2
View File
@@ -39,6 +39,8 @@ describe("console shell routes", () => {
expect(resolved.route.id).toBe("serverDetail");
expect(resolved.params.serverId).toBe("server-example-1");
expect(hashForPage("serverDetail", { serverId: "server-example-1" })).toBe("#/servers/server-example-1");
expect(hashForPage("serverDetail", { serverId: "server-example-1", routeKey: "run-builder" })).toBe("#/servers/server-example-1?focus=run-builder");
expect(resolveRouteHash("#/servers/server-example-1?focus=run-builder", platformAdmin).params).toEqual({ serverId: "server-example-1", routeKey: "run-builder" });
});
it("round-trips hosted plugin page hashes with server context", () => {
+6 -2
View File
@@ -100,7 +100,10 @@ export function routeForPage(pageId: PageId): PageRoute {
export function hashForPage(pageId: PageId, params: PageParams = {}): string {
const route = routeForPage(pageId);
if (pageId === "serverDetail" && params.serverId) {
return `#/servers/${encodeURIComponent(params.serverId)}`;
const query = new URLSearchParams();
if (params.routeKey) query.set("focus", params.routeKey);
const suffix = query.toString();
return `#/servers/${encodeURIComponent(params.serverId)}${suffix ? `?${suffix}` : ""}`;
}
if (pageId === "pluginPage" && params.pluginId && params.routeKey) {
const query = new URLSearchParams();
@@ -144,7 +147,8 @@ export function resolveRouteHash(hash: string, user?: CurrentUserView): Resolved
return fallback;
}
if (segments[0] === "servers" && segments.length > 1) {
return { route: routeForPage("serverDetail"), params: { serverId: decodeURIComponent(segments[1]) } };
const routeKey = new URLSearchParams(rawQuery).get("focus") ?? undefined;
return { route: routeForPage("serverDetail"), params: { serverId: decodeURIComponent(segments[1]), routeKey } };
}
if (segments[0] === "plugin-pages" && segments.length > 2) {
const serverId = new URLSearchParams(rawQuery).get("serverInstanceId") ?? undefined;