import { test } from 'node:test'; import assert from 'node:assert/strict'; import fs from 'node:fs/promises'; import path from 'node:path'; import { createWalletFromBackup } from '../src/index'; const backupFilename = process.env.QORTAL_TEST_BACKUP_FILE || 'qortal_backup_ - (not used) - QWs9LiX3B677cTsTGUysRF2tX5sJDo9nop.json'; const backupPath = path.resolve( process.cwd(), '..', '..', 'TEST-FILES', backupFilename ); const password = process.env.QORTAL_TEST_BACKUP_PASSWORD; const hasBackupFile = async () => { try { await fs.access(backupPath); return true; } catch { return false; } }; if (!password) { test( 'backup decrypt (skipped: set QORTAL_TEST_BACKUP_PASSWORD)', { skip: true }, () => { assert.ok(true); } ); } else { test('backup decrypt derives correct Qortal address', async () => { if (!(await hasBackupFile())) { test( 'backup decrypt (skipped: backup file missing)', { skip: true }, () => { assert.ok(true); } ); return; } const raw = await fs.readFile(backupPath, 'utf8'); const backup = JSON.parse(raw); const wallet = await createWalletFromBackup(password, backup); assert.equal(wallet.addresses[0].address, backup.address0); assert.equal(wallet.walletVersion, backup.version); }); }