fix(i18n): localize application workflows

Use stable checklist and interview keys for system copy while preserving user-authored content. Localize creation-tab errors, language selectors, match bands, dates, and selected-CV context.
This commit is contained in:
cesnimda
2026-08-29 16:51:59 +02:00
parent 9edcbfc5de
commit a704c75440
11 changed files with 173 additions and 37 deletions
@@ -233,6 +233,18 @@ test("warns before section navigation would discard application edits", async ()
test("renders shared workspace navigation and progress in Norwegian Bokmål", async () => {
window.localStorage.setItem("uiLanguage", "nb");
mockedApi.get.mockImplementation((url: string) => {
if (url === "/jobapplications/42/workspace") return Promise.resolve({ data: {
...overview,
nextStep: {
key: "prepare-cv",
label: "Prepare a CV for this role",
reason: "Attach a CV variant tailored to this application.",
section: "cv",
},
} } as any);
return Promise.resolve({ data: [] } as any);
});
renderTable("/jobs/42");
expect(await screen.findByRole("tab", { name: "Oversikt" })).toHaveAttribute("aria-selected", "true");
@@ -240,6 +252,7 @@ test("renders shared workspace navigation and progress in Norwegian Bokmål", as
expect(screen.getByRole("tab", { name: "Søknadsbrev" })).toBeInTheDocument();
expect(await screen.findByLabelText(/søknadsprogresjon/i)).toBeInTheDocument();
expect(screen.getByRole("button", { name: /tilbake til søknader/i })).toBeInTheDocument();
expect(screen.getByRole("heading", { name: "Forbered en CV for denne stillingen" })).toBeInTheDocument();
});
test("hydrates list filters, sort and page from a shareable URL", async () => {