| import { describe, it } from "node:test"; |
| import assert from "node:assert/strict"; |
| import { generateAnalysis } from "../analysis/generator"; |
|
|
| describe("analysis generator", () => { |
| it("returns valid analysis on normal input (success path)", () => { |
| const analysis = generateAnalysis({ |
| id: "test-1", |
| subject: "Test Subject", |
| sender: "sender@test.com", |
| receivedDate: new Date().toISOString(), |
| body: "This is a test email about pH levels and temperature readings.", |
| attachments: [], |
| } as any); |
|
|
| assert.ok(analysis, "analysis should be truthy"); |
| assert.ok(analysis.wikitree, "wikitree should exist"); |
| assert.ok(analysis.wikitree.root, "wikitree root should exist"); |
| assert.ok(analysis.mindmap, "mindmap should exist"); |
| assert.ok(analysis.mindmap.root, "mindmap root should exist"); |
| assert.ok(analysis.execution, "execution should exist"); |
| assert.ok(Array.isArray(analysis.execution.steps), "execution steps should be an array"); |
| }); |
|
|
| it("returns minimal valid analysis on empty input (edge case)", () => { |
| const analysis = generateAnalysis({ |
| id: "test-2", |
| subject: "", |
| sender: "", |
| receivedDate: new Date().toISOString(), |
| body: "", |
| attachments: [], |
| } as any); |
|
|
| assert.ok(analysis, "should return analysis even on empty input"); |
| assert.ok(analysis.wikitree?.root, "wikitree root should exist"); |
| assert.ok(analysis.mindmap?.root, "mindmap root should exist"); |
| assert.ok(analysis.execution, "execution should exist"); |
| }); |
|
|
| it("handles attachments with parsed data (success path)", () => { |
| const analysis = generateAnalysis({ |
| id: "test-3", |
| subject: "Lab Results", |
| sender: "lab@test.com", |
| receivedDate: new Date().toISOString(), |
| body: "Spectroscopy results attached.", |
| attachments: [ |
| { |
| name: "data.csv", |
| type: "csv", |
| parsedData: { |
| type: "csv", |
| rows: [{ site: "S1", ph: 7.6 }], |
| metadata: { rowCount: 1, headers: ["site", "ph"] }, |
| }, |
| }, |
| ], |
| } as any); |
|
|
| assert.ok(analysis, "should return analysis with attachments"); |
| assert.ok(analysis.wikitree?.root, "wikitree should exist"); |
| }); |
| }); |
|
|