test(workspace-web): cover workdir label edge cases
This commit is contained in:
@@ -264,6 +264,7 @@ Deno.test("workspace Worker list lives on the dedicated Workers page", async ()
|
|||||||
workersNav.includes("worker-status-spinner") &&
|
workersNav.includes("worker-status-spinner") &&
|
||||||
workersNav.includes("sidebarWorkdirMeta(worker.workdir_attachments)") &&
|
workersNav.includes("sidebarWorkdirMeta(worker.workdir_attachments)") &&
|
||||||
workersNav.includes("title={workdir.details}") &&
|
workersNav.includes("title={workdir.details}") &&
|
||||||
|
workersNav.includes("aria-label={workdir.details}") &&
|
||||||
!workersNav.includes("attachment.alias") &&
|
!workersNav.includes("attachment.alias") &&
|
||||||
workerWorkdirMeta.includes("workdir.current_selector") &&
|
workerWorkdirMeta.includes("workdir.current_selector") &&
|
||||||
workerWorkdirMeta.includes("workdir.creation_selector") &&
|
workerWorkdirMeta.includes("workdir.creation_selector") &&
|
||||||
|
|||||||
@@ -84,7 +84,18 @@ Deno.test("Worker sidebar Workdir label marks detached HEAD instead of reusing c
|
|||||||
assertEquals(meta.text, "main:detached@0123456789ab");
|
assertEquals(meta.text, "main:detached@0123456789ab");
|
||||||
});
|
});
|
||||||
|
|
||||||
Deno.test("Worker sidebar Workdir label has an explicit unknown fallback", () => {
|
Deno.test("Worker sidebar Workdir label marks an untrusted selector as a detached hash", () => {
|
||||||
|
const meta = sidebarWorkdirMeta([
|
||||||
|
attachment("checkout", {
|
||||||
|
creation_selector: "develop",
|
||||||
|
current_selector: "fedcba9876543210fedcba9876543210fedcba98",
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
|
||||||
|
assertEquals(meta.text, "main:detached@fedcba987654");
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test("Worker sidebar Workdir label has an explicit unavailable-projection fallback", () => {
|
||||||
const meta = sidebarWorkdirMeta([{
|
const meta = sidebarWorkdirMeta([{
|
||||||
alias: "checkout",
|
alias: "checkout",
|
||||||
repository_key: "main",
|
repository_key: "main",
|
||||||
@@ -94,6 +105,24 @@ Deno.test("Worker sidebar Workdir label has an explicit unknown fallback", () =>
|
|||||||
assertEquals(meta.text, "main:unknown@workdir-1234");
|
assertEquals(meta.text, "main:unknown@workdir-1234");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Deno.test("Worker sidebar Workdir metadata preserves long names for truncated display details", () => {
|
||||||
|
const repository = "repository-with-a-name-that-exceeds-the-sidebar-width";
|
||||||
|
const branch =
|
||||||
|
"feature/workdir-label-with-a-name-that-also-exceeds-the-sidebar-width";
|
||||||
|
const meta = sidebarWorkdirMeta([
|
||||||
|
attachment("long-checkout", {
|
||||||
|
repository_key: repository,
|
||||||
|
current_selector: branch,
|
||||||
|
}),
|
||||||
|
]);
|
||||||
|
|
||||||
|
assertEquals(meta.text, `${repository}:${branch}`);
|
||||||
|
assert(
|
||||||
|
meta.details.includes(`long-checkout — ${repository}:${branch}`),
|
||||||
|
"full repository and branch should remain available in details when the primary line is truncated",
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
Deno.test("Worker sidebar Workdir metadata keeps multiple attachments distinguishable", () => {
|
Deno.test("Worker sidebar Workdir metadata keeps multiple attachments distinguishable", () => {
|
||||||
const meta = sidebarWorkdirMeta([
|
const meta = sidebarWorkdirMeta([
|
||||||
attachment("frontend", { current_selector: "develop" }),
|
attachment("frontend", { current_selector: "develop" }),
|
||||||
|
|||||||
Reference in New Issue
Block a user