import { describe, it, expect } from 'vitest'; const signatureService = require('../src/services/signature.service'); describe('signature.service', () => { it('generates a deterministic SHA-256 hash and verifies it', () => { const payload = { consent_id: 'abc-123', student_id: 42, parent_id: 7, from_school_id: 'School A', to_school_id: 'School B', approved_at: new Date().toISOString(), }; const h = signatureService.generateConsentHash(payload); expect(typeof h).toBe('string'); expect(h.length).toBe(64); // hex SHA-256 const ok = signatureService.verifyConsentHash(payload, h); expect(ok).toBe(true); // Mutate payload should fail verification const bad = { ...payload, approved_at: new Date(Date.now() + 1000).toISOString() }; expect(signatureService.verifyConsentHash(bad, h)).toBe(false); }); });