Add full shell, replaceable Omics adapter and bilingual interaction

Implement approved specification #32 and tickets #33-#37. Keep host authentication server-verified and pin session interaction language. Compile scoped base selectors for browser compatibility and retain full gutters during CSS pruning.
This commit is contained in:
Codex
2026-09-13 14:26:39 +02:00
parent 2d1b714ebe
commit d8a29bfbdd
207 changed files with 8570 additions and 2164 deletions
@@ -1,5 +1,6 @@
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { render, screen, within } from "@testing-library/react";
import { act, render, screen, within } from "@testing-library/react";
import { setLocale } from "../i18n";
import userEvent from "@testing-library/user-event";
import { http, HttpResponse } from "msw";
import { server } from "../test/msw";
@@ -22,6 +23,21 @@ beforeEach(() => server.use(
http.get("/api/workspaces/sales/evidence/evidence:order-key", () => HttpResponse.json(page)),
));
async function choose() { await screen.findByRole("option", { name: "Sales" }); await userEvent.selectOptions(screen.getByLabelText("Workspace"), "sales"); }
test("switches Evidence controls and detail labels without translating archive content", async () => {
renderPage(); await choose();
await userEvent.click(await screen.findByRole("button", { name: "Order key" }));
await screen.findByText("Join by order number, year and company.");
try {
act(() => setLocale("it"));
expect(screen.getByLabelText("Cerca Evidence")).toBeVisible();
expect(screen.getByRole("button", { name: "Aggiorna file" })).toBeVisible();
expect(screen.getByRole("heading", { name: "Provenienza" })).toBeVisible();
expect(screen.getByText("Join by order number, year and company.")).toBeVisible();
act(() => setLocale("en"));
expect(screen.getByLabelText("Search Evidence")).toBeVisible();
expect(screen.getByRole("button", { name: "Refresh files" })).toBeVisible();
} finally { act(() => setLocale("en")); }
});
test("reads complete content, manual lineage and actual host file path", async () => {
renderPage(); await choose(); await userEvent.click(await screen.findByRole("button", { name: "Order key" }));
expect(await screen.findByText("Join by order number, year and company.")).toBeVisible();