// Hybrid-Chain offline teaching model: crypto-backed-debit-cards // Fictional fields/states; NOT an API client, authorization system or production implementation. // No network calls, credentials, payments or file writes. Review before running. // Requires Node.js 22+. Run: node --test crypto-backed-debit-cards.mjs import test from 'node:test'; import assert from 'node:assert/strict'; export function inspect(record) { if (record.eventSeen) return 'ALREADY_PROCESSED'; if (record.reversed) return 'REVERSAL_REVIEW_REQUIRED'; if (record.authorizedMinor !== record.clearedMinor) return 'AMOUNT_REVIEW_REQUIRED'; return 'CLEARING_READY_FOR_RECONCILIATION'; } const baseline = { "authorizedMinor": 5000, "clearedMinor": 5000, "reversed": false, "eventSeen": false }; const cases = [ { "name": "matching clearing", "patch": {}, "expected": "CLEARING_READY_FOR_RECONCILIATION" }, { "name": "adjusted amount", "patch": { "clearedMinor": 5400 }, "expected": "AMOUNT_REVIEW_REQUIRED" }, { "name": "reversed authorization", "patch": { "reversed": true }, "expected": "REVERSAL_REVIEW_REQUIRED" }, { "name": "replayed event", "patch": { "eventSeen": true }, "expected": "ALREADY_PROCESSED" } ]; for (const example of cases) { test(example.name, () => { assert.equal(inspect({...baseline, ...example.patch}), example.expected); }); }