feat(studio): recover matching Nitro sources and persist import phases
CI / check (push) Successful in 2m5s
CI / deploy (push) Successful in 1m8s
CI / publish-container (push) Successful in 1m4s

This commit is contained in:
Simo committed 2026-09-11 10:22:06 +02:00
1 parent 00e33623f7
commit 13bd3695cb
45 files changed
+903 -28

No files matched your search

+45
View File
@@ -98,3 +98,48 @@ test("history polling pauses while hidden and refreshes on visibility return", a
});
await expect.poll(() => requests).toBe(hiddenCount + 1);
});
test("history shows the current phase and validated recovery source", async ({
page,
}) => {
await page.route("**/api/admin/studio/import-jobs?*", (route) =>
route.fulfill({
json: {
ok: true,
jobs: [
{
...furnitureJobFixture,
state: "running",
items: [
{
...furnitureJobFixture.items[0],
state: "running",
phase: "writing_db",
phaseStartedAt: new Date().toISOString(),
recoveredSource: {
sourceId: "configured",
sourceName: "Configured source",
revision: 42,
},
},
],
},
],
nextCursor: null,
},
}),
);
await page.goto("/admin/jobs-harness?progress");
await page.locator("details details summary").click();
await expect(
page.getByText("Current phase: Saving SQL and catalog"),
).toBeVisible();
await expect(
page.getByText(/Bundle recovered from Configured source/),
).toBeVisible();
expect(
await page.evaluate(
() => document.documentElement.scrollWidth > innerWidth,
),
).toBe(false);
});