Download src/lib/__tests__/commitment.test.ts from luguog/over: direct link, hf CLI and curl.
- Browser
- Download file 5.37 kB
-
https://huggingface.co/spaces/luguog/over/resolve/main/src/lib/__tests__/commitment.test.ts
- Command line
-
hf download hf://spaces/luguog/over/src/lib/__tests__/commitment.test.ts
-
curl -L -o commitment.test.ts https://huggingface.co/spaces/luguog/over/resolve/main/src/lib/__tests__/commitment.test.ts
5.37 kB
| import { test, before, after } from "node:test"; | |
| import assert from "node:assert"; | |
| import fs from "node:fs"; | |
| import path from "node:path"; | |
| import { detectCommitments } from "../commitment/detector"; | |
| import { | |
| upsertCommitmentByEmailId, | |
| listCommitments, | |
| loadMetrics, | |
| recordAcceptanceOutcome, | |
| } from "../commitment/store"; | |
| import { executeCommitment } from "../commitment/executor"; | |
| import { CommitmentContract, ProcessedEmailRecord } from "@/types"; | |
| const dataDir = path.join(process.cwd(), "data"); | |
| const commitmentsFile = path.join(dataDir, "commitments.json"); | |
| const metricsFile = path.join(dataDir, "commitment-metrics.json"); | |
| let commitmentsBackup: string | null = null; | |
| let metricsBackup: string | null = null; | |
| let commitmentsExisted = false; | |
| let metricsExisted = false; | |
| before(() => { | |
| commitmentsExisted = fs.existsSync(commitmentsFile); | |
| metricsExisted = fs.existsSync(metricsFile); | |
| if (commitmentsExisted) { | |
| commitmentsBackup = fs.readFileSync(commitmentsFile, "utf-8"); | |
| } | |
| if (metricsExisted) { | |
| metricsBackup = fs.readFileSync(metricsFile, "utf-8"); | |
| } | |
| }); | |
| after(() => { | |
| try { | |
| if (commitmentsExisted) { | |
| fs.mkdirSync(dataDir, { recursive: true }); | |
| fs.writeFileSync(commitmentsFile, commitmentsBackup ?? "", "utf-8"); | |
| } else if (fs.existsSync(commitmentsFile)) { | |
| fs.unlinkSync(commitmentsFile); | |
| } | |
| } catch { | |
| // ignore | |
| } | |
| try { | |
| if (metricsExisted) { | |
| fs.mkdirSync(dataDir, { recursive: true }); | |
| fs.writeFileSync(metricsFile, metricsBackup ?? "", "utf-8"); | |
| } else if (fs.existsSync(metricsFile)) { | |
| fs.unlinkSync(metricsFile); | |
| } | |
| } catch { | |
| // ignore | |
| } | |
| }); | |
| test("detectCommitments extracts a commitment contract", () => { | |
| const emailId = `test-email-${Date.now()}`; | |
| const record: ProcessedEmailRecord = { | |
| id: "rec-1", | |
| emailId, | |
| subject: "Need territory report by Friday", | |
| sender: "Sarah Martinez, Regional Manager", | |
| senderEmail: "sarah.martinez@example.com", | |
| receivedDate: new Date().toISOString(), | |
| processedAt: new Date().toISOString(), | |
| category: "report", | |
| confidence: 0.9, | |
| fieldCount: 0, | |
| tableCount: 0, | |
| extractedData: { | |
| emailId, | |
| extractedAt: new Date().toISOString(), | |
| fields: [], | |
| tables: [], | |
| summary: "Please prepare the territory analysis report by Friday.", | |
| category: "report", | |
| confidence: 0.9, | |
| source: "email_body", | |
| }, | |
| }; | |
| const commitments = detectCommitments([record]); | |
| assert.equal(commitments.length, 1); | |
| assert.equal(commitments[0].emailId, emailId); | |
| assert.equal(commitments[0].requesterEmail, "sarah.martinez@example.com"); | |
| }); | |
| test("upsertCommitmentByEmailId is idempotent", () => { | |
| const emailId = `test-email-${Date.now()}-idempotent`; | |
| const contract: CommitmentContract = { | |
| id: "", | |
| emailId, | |
| emailSubject: "Test subject", | |
| requester: "Requester", | |
| requesterEmail: "req@example.com", | |
| recipientRole: "field_representative", | |
| authorityVerified: true, | |
| requestedOutcome: "Prepare territory report", | |
| deadline: new Date().toISOString(), | |
| mandatoryOutputs: ["Written report"], | |
| inferredOutputs: [], | |
| permittedTools: ["internal_report_writer"], | |
| externalSendAllowed: false, | |
| autonomyClass: 1, | |
| completionProbability: 0.9, | |
| dependencies: [], | |
| assumptions: [], | |
| status: "detected", | |
| auditEvents: [], | |
| detectedAt: new Date().toISOString(), | |
| }; | |
| const first = upsertCommitmentByEmailId(contract); | |
| const second = upsertCommitmentByEmailId(contract); | |
| assert.equal(first.id, second.id); | |
| const all = listCommitments().filter((c) => c.emailId === emailId); | |
| assert.equal(all.length, 1); | |
| }); | |
| test("executeCommitment completes class-1 work and stages class-2 work", () => { | |
| const emailId = `test-email-${Date.now()}-exec`; | |
| const metrics = loadMetrics(); | |
| const base: CommitmentContract = { | |
| id: "", | |
| emailId, | |
| emailSubject: "Execution request", | |
| requester: "Requester", | |
| requesterEmail: "req@example.com", | |
| recipientRole: "field_representative", | |
| authorityVerified: true, | |
| requestedOutcome: "Prepare territory report", | |
| deadline: new Date().toISOString(), | |
| mandatoryOutputs: ["Written report"], | |
| inferredOutputs: ["Executive summary"], | |
| permittedTools: ["internal_report_writer"], | |
| externalSendAllowed: false, | |
| autonomyClass: 1, | |
| completionProbability: 0.9, | |
| dependencies: [], | |
| assumptions: [], | |
| status: "detected", | |
| auditEvents: [], | |
| detectedAt: new Date().toISOString(), | |
| }; | |
| const done = executeCommitment(base, metrics); | |
| assert.equal(done.contract.status, "completed"); | |
| assert.ok((done.contract.deliverables?.length ?? 0) >= 2); | |
| assert.ok(done.contract.confidenceBreakdown); | |
| assert.ok(done.contract.completionProbability >= 0 && done.contract.completionProbability <= 1); | |
| const staged = executeCommitment({ ...base, autonomyClass: 2 }, metrics); | |
| assert.equal(staged.contract.status, "awaiting_approval"); | |
| }); | |
| test("recordAcceptanceOutcome updates acceptance metric", () => { | |
| const before = loadMetrics(); | |
| const after = recordAcceptanceOutcome({ acceptedWithoutRevision: true }); | |
| assert.equal(after.acceptedWithoutRevision.total, before.acceptedWithoutRevision.total + 1); | |
| assert.equal(after.acceptedWithoutRevision.success, before.acceptedWithoutRevision.success + 1); | |
| }); | |