import test from "node:test"; import assert from "node:assert/strict"; import { createLocalAuthContext } from "../src/modules/auth/auth.controller.ts"; import { createWorkspaceModule } from "../src/modules/workspaces/workspaces.module.ts"; import { createProjectsModule } from "../src/modules/projects/projects.module.ts"; import { createStorageModule } from "../src/modules/storage/storage.module.ts"; import { createAssetsModule } from "../src/modules/assets/assets.module.ts"; test("register an uploaded asset record", () => { const auth = createLocalAuthContext("user-4"); const workspaces = createWorkspaceModule(); const projects = createProjectsModule(workspaces.service); const storage = createStorageModule(); const assets = createAssetsModule(storage.service); const workspace = workspaces.controller.bootstrapPersonalWorkspace(auth); const project = projects.controller.createProject(auth, { workspaceId: workspace.id, name: "Assets", slug: "assets", description: "Asset intake project", }); const asset = assets.controller.createAsset(auth, { workspaceId: workspace.id, projectId: project.id, type: "archive", sourceType: "upload", displayName: "demo.zip", }); assert.equal(asset.type, "archive"); assert.equal(asset.projectId, project.id); assert.equal(asset.status, "pending"); }); test("create a probe report for a raw asset", () => { const auth = createLocalAuthContext("user-5"); const workspaces = createWorkspaceModule(); const projects = createProjectsModule(workspaces.service); const storage = createStorageModule(); const assets = createAssetsModule(storage.service); const workspace = workspaces.controller.bootstrapPersonalWorkspace(auth); const project = projects.controller.createProject(auth, { workspaceId: workspace.id, name: "Probe", slug: "probe", description: "Probe test project", }); const asset = assets.controller.createAsset(auth, { workspaceId: workspace.id, projectId: project.id, type: "folder", sourceType: "upload", displayName: "BJ_001_0001_OsmoNano_2026-03-19_14-51-43", }); const report = assets.controller.probeAsset(asset.id); assert.equal(report.assetId, asset.id); assert.equal(report.detectedFormatCandidates.includes("delivery_package"), true); }); test("return recommended next actions from probe metadata", () => { const auth = createLocalAuthContext("user-6"); const workspaces = createWorkspaceModule(); const projects = createProjectsModule(workspaces.service); const storage = createStorageModule(); const assets = createAssetsModule(storage.service); const workspace = workspaces.controller.bootstrapPersonalWorkspace(auth); const project = projects.controller.createProject(auth, { workspaceId: workspace.id, name: "Recommendations", slug: "recommendations", description: "Recommendation test project", }); const asset = assets.controller.createAsset(auth, { workspaceId: workspace.id, projectId: project.id, type: "archive", sourceType: "upload", displayName: "20260324-data-demo.zip", }); const report = assets.controller.probeAsset(asset.id); assert.deepEqual(report.recommendedNextNodes, [ "extract_archive", "validate_structure", ]); });