import { describe, expect, it } from 'vitest';
import { decryptBackup, encryptBackup } from '@/lib/backup-crypto';
import { MindScopeBackup } from '@/lib/assessment-types';

const backup: MindScopeBackup = {
  format: 'mindscope-backup',
  version: 1,
  exportedAt: '2026-06-23T00:00:00.000Z',
  profiles: [],
  records: [],
};

describe('encrypted backups', () => {
  it('round trips a backup with the correct password', async () => {
    const encrypted = await encryptBackup(backup, 'correct-password');
    expect(encrypted.data).not.toContain('mindscope-backup');
    await expect(decryptBackup(encrypted, 'correct-password')).resolves.toEqual(backup);
  });

  it('rejects an incorrect password', async () => {
    const encrypted = await encryptBackup(backup, 'correct-password');
    await expect(decryptBackup(encrypted, 'wrong-password')).rejects.toThrow('密码错误');
  });
});
