diff --git a/dist/core/types.d.ts b/dist/core/types.d.ts index 409ea97..ac0758d 100644 --- a/dist/core/types.d.ts +++ b/dist/core/types.d.ts @@ -248,4 +248,71 @@ export interface CitizenshipResult { bonus_amount: number; }; } +export interface BackupData { + version: string; + encrypted_data: string; + metadata: { + created_at: number; + identity_id: string; + backup_type: string; + }; +} +export interface BackupVerification { + valid: boolean; + version: string; + created_at: number; + identity_id?: string; + errors: string[]; + warnings: string[]; +} +export interface SeedVerification { + valid: boolean; + wallet_id?: string; + wallet_type?: string; +} +export interface SeedPhrases { + primary?: string[]; + ubi?: string[]; + savings?: string[]; + master?: string[]; +} +export interface Guardian { + guardian_id: string; + guardian_name?: string; + status: 'pending' | 'active' | 'revoked'; + added_at: number; + relationship?: string; +} +export interface GuardianResponse { + status: string; + guardian_id: string; + message: string; +} +export interface RecoverySession { + recovery_id: string; + identity_id: string; + status: 'initiated' | 'pending_approvals' | 'completed' | 'cancelled'; + required_approvals: number; + current_approvals: number; + guardian_ids: string[]; + created_at: number; + expires_at: number; +} +export interface RecoveryStatus { + recovery_id: string; + status: 'initiated' | 'pending_approvals' | 'completed' | 'cancelled' | 'failed'; + progress: { + required: number; + approved: number; + declined: number; + }; + guardians: Array<{ + guardian_id: string; + status: 'pending' | 'approved' | 'declined'; + responded_at?: number; + }>; + created_at: number; + updated_at: number; + expires_at: number; +} //# sourceMappingURL=types.d.ts.map \ No newline at end of file diff --git a/dist/core/types.d.ts.map b/dist/core/types.d.ts.map index e13fcb7..0149ca6 100644 --- a/dist/core/types.d.ts.map +++ b/dist/core/types.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/core/zhtp-api-methods.d.ts b/dist/core/zhtp-api-methods.d.ts index 6828707..2f37cdc 100644 --- a/dist/core/zhtp-api-methods.d.ts +++ b/dist/core/zhtp-api-methods.d.ts @@ -3,7 +3,7 @@ * All API method implementations for various operations */ import { ZhtpApiCore } from './zhtp-api-core'; -import { Identity, Wallet, NetworkStatus, DaoProposal, DaoStats, Transaction, Delegate, ProposalDetails, TreasuryRecord, DApp, SmartContract, ContractDeploymentResult, ContractExecutionResult, Asset, NodeStatus, Proof, SignupRequest, LoginRequest } from './types'; +import { Identity, Wallet, NetworkStatus, DaoProposal, DaoStats, Transaction, Delegate, ProposalDetails, TreasuryRecord, DApp, SmartContract, ContractDeploymentResult, ContractExecutionResult, Asset, NodeStatus, Proof, SignupRequest, LoginRequest, BackupData, BackupVerification, SeedVerification, SeedPhrases, Guardian, GuardianResponse, RecoverySession, RecoveryStatus, CitizenshipResult } from './types'; export declare abstract class ZhtpApiMethods extends ZhtpApiCore { signIn(did: string, passphrase: string): Promise; createIdentity(data: any): Promise; @@ -27,6 +27,21 @@ export declare abstract class ZhtpApiMethods extends ZhtpApiCore { recoverIdentityFromSeed(recoveryData: Record): Promise; restoreIdentityFromBackup(backupData: Record): Promise; recoverIdentityWithGuardians(guardianData: Record): Promise; + exportBackup(identityId: string, password: string): Promise; + importBackup(backupData: string, password: string): Promise; + verifyBackup(backupData: string): Promise; + verifySeedPhrase(identityId: string, seedPhrase: string): Promise; + exportSeedPhrases(identityId: string): Promise; + addGuardian(identityId: string, guardianId: string, guardianInfo?: Record): Promise; + listGuardians(identityId: string): Promise; + removeGuardian(identityId: string, guardianId: string): Promise; + acceptGuardianInvite(guardianId: string, identityId: string): Promise; + declineGuardianInvite(guardianId: string, identityId: string): Promise; + initiateRecovery(identityId: string, guardianIds: string[]): Promise; + approveRecovery(guardianId: string, recoveryId: string, approval: boolean): Promise; + getRecoveryStatus(recoveryId: string): Promise; + cancelRecovery(recoveryId: string): Promise; + applyCitizenship(identityId: string, applicationData?: Record): Promise; createZkDid(didData?: Record): Promise; getIdentity(did: string): Promise; verifyIdentity(did: string, requirements?: Record): Promise; diff --git a/dist/core/zhtp-api-methods.d.ts.map b/dist/core/zhtp-api-methods.d.ts.map index 9ef2f27..4178489 100644 --- a/dist/core/zhtp-api-methods.d.ts.map +++ b/dist/core/zhtp-api-methods.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"zhtp-api-methods.d.ts","sourceRoot":"","sources":["../../src/core/zhtp-api-methods.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"zhtp-api-methods.d.ts","sourceRoot":"","sources":["../../src/core/zhtp-api-methods.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/core/zhtp-api-methods.js b/dist/core/zhtp-api-methods.js index 1ba8972..b001896 100644 --- a/dist/core/zhtp-api-methods.js +++ b/dist/core/zhtp-api-methods.js @@ -121,14 +121,14 @@ export class ZhtpApiMethods extends ZhtpApiCore { }); } async recoverIdentityFromSeed(recoveryData) { - return this.request('/api/v1/identity/recover/seed', { + return this.request('/api/v1/identity/restore/seed', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(recoveryData), }); } async restoreIdentityFromBackup(backupData) { - return this.request('/api/v1/identity/restore/backup', { + return this.request('/api/v1/identity/backup/import', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(backupData), @@ -141,6 +141,108 @@ export class ZhtpApiMethods extends ZhtpApiCore { body: JSON.stringify(guardianData), }); } + // ==================== Backup Operations ==================== + async exportBackup(identityId, password) { + return this.request('/api/v1/identity/backup/export', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, password }), + }); + } + async importBackup(backupData, password) { + return this.request('/api/v1/identity/backup/import', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ backup_data: backupData, password }), + }); + } + async verifyBackup(backupData) { + return this.request('/api/v1/identity/backup/verify', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ backup_data: backupData }), + }); + } + // ==================== Seed Phrase Operations ==================== + async verifySeedPhrase(identityId, seedPhrase) { + return this.request('/api/v1/identity/seed/verify', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, seed_phrase: seedPhrase }), + }); + } + async exportSeedPhrases(identityId) { + return this.request(`/api/v1/identity/${identityId}/seeds`); + } + // ==================== Guardian Management ==================== + async addGuardian(identityId, guardianId, guardianInfo) { + return this.request('/api/v1/guardian/add', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + identity_id: identityId, + guardian_id: guardianId, + ...guardianInfo + }), + }); + } + async listGuardians(identityId) { + return this.request(`/api/v1/guardian/list/${identityId}`); + } + async removeGuardian(identityId, guardianId) { + await this.request('/api/v1/guardian/remove', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, guardian_id: guardianId }), + }); + } + async acceptGuardianInvite(guardianId, identityId) { + await this.request('/api/v1/guardian/accept', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ guardian_id: guardianId, identity_id: identityId }), + }); + } + async declineGuardianInvite(guardianId, identityId) { + await this.request('/api/v1/guardian/decline', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ guardian_id: guardianId, identity_id: identityId }), + }); + } + // ==================== Guardian Recovery Flow ==================== + async initiateRecovery(identityId, guardianIds) { + return this.request('/api/v1/guardian/recovery/initiate', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, guardian_ids: guardianIds }), + }); + } + async approveRecovery(guardianId, recoveryId, approval) { + await this.request('/api/v1/guardian/recovery/approve', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ guardian_id: guardianId, recovery_id: recoveryId, approval }), + }); + } + async getRecoveryStatus(recoveryId) { + return this.request(`/api/v1/guardian/recovery/status/${recoveryId}`); + } + async cancelRecovery(recoveryId) { + await this.request('/api/v1/guardian/recovery/cancel', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ recovery_id: recoveryId }), + }); + } + // ==================== Citizenship ==================== + async applyCitizenship(identityId, applicationData) { + return this.request('/api/v1/identity/citizenship/apply', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, ...applicationData }), + }); + } async createZkDid(didData) { return this.request('/api/v1/identity/zkdid/create', { method: 'POST', diff --git a/dist/core/zhtp-api-methods.js.map b/dist/core/zhtp-api-methods.js.map index 5fe99ae..55a12eb 100644 --- a/dist/core/zhtp-api-methods.js.map +++ b/dist/core/zhtp-api-methods.js.map @@ -1 +1 @@ -{"version":3,"file":"zhtp-api-methods.js","sourceRoot":"","sources":["../../src/core/zhtp-api-methods.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"zhtp-api-methods.js","sourceRoot":"","sources":["../../src/core/zhtp-api-methods.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/core/types.ts b/src/core/types.ts index dbf6046..b978eb1 100644 --- a/src/core/types.ts +++ b/src/core/types.ts @@ -273,3 +273,82 @@ export interface CitizenshipResult { bonus_amount: number; }; } + +// ==================== Backup & Recovery Types ==================== + +export interface BackupData { + version: string; + encrypted_data: string; + metadata: { + created_at: number; + identity_id: string; + backup_type: string; + }; +} + +export interface BackupVerification { + valid: boolean; + version: string; + created_at: number; + identity_id?: string; + errors: string[]; + warnings: string[]; +} + +export interface SeedVerification { + valid: boolean; + wallet_id?: string; + wallet_type?: string; +} + +export interface SeedPhrases { + primary?: string[]; + ubi?: string[]; + savings?: string[]; + master?: string[]; +} + +// ==================== Guardian Types ==================== + +export interface Guardian { + guardian_id: string; + guardian_name?: string; + status: 'pending' | 'active' | 'revoked'; + added_at: number; + relationship?: string; +} + +export interface GuardianResponse { + status: string; + guardian_id: string; + message: string; +} + +export interface RecoverySession { + recovery_id: string; + identity_id: string; + status: 'initiated' | 'pending_approvals' | 'completed' | 'cancelled'; + required_approvals: number; + current_approvals: number; + guardian_ids: string[]; + created_at: number; + expires_at: number; +} + +export interface RecoveryStatus { + recovery_id: string; + status: 'initiated' | 'pending_approvals' | 'completed' | 'cancelled' | 'failed'; + progress: { + required: number; + approved: number; + declined: number; + }; + guardians: Array<{ + guardian_id: string; + status: 'pending' | 'approved' | 'declined'; + responded_at?: number; + }>; + created_at: number; + updated_at: number; + expires_at: number; +} diff --git a/src/core/zhtp-api-comprehensive.test.ts b/src/core/zhtp-api-comprehensive.test.ts new file mode 100644 index 0000000..5c0e6f5 --- /dev/null +++ b/src/core/zhtp-api-comprehensive.test.ts @@ -0,0 +1,625 @@ +/** + * Comprehensive tests for ALL remaining untested ZHTP API methods + * Target: 98%+ coverage + */ + +import { describe, it, expect, beforeEach, vi } from 'vitest'; +import { ZhtpApi } from './zhtp-api'; +import { ApiConfig } from './types'; + +describe('ZhtpApi - Comprehensive Coverage', () => { + let api: ZhtpApi; + const mockConfig: ApiConfig = { + zhtpNodeUrl: 'http://localhost:8000', + networkType: 'testnet', + debugMode: false, + enableBiometrics: true, + }; + + const mockConfigProvider = { + getConfig: vi.fn().mockResolvedValue(mockConfig), + }; + + beforeEach(async () => { + vi.clearAllMocks(); + api = new ZhtpApi(mockConfigProvider); + await api.ensureInitialized(); + global.fetch = vi.fn(); + }); + + describe('Identity - Legacy Methods', () => { + it('recoverIdentity should call correct endpoint for seed method', async () => { + const mockIdentity = { + did: 'did:recovered', + displayName: 'Recovered', + identityType: 'citizen' as const, + createdAt: '2024-01-01T00:00:00Z', + citizenship: true, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockIdentity), + }); + + const result = await api.recoverIdentity('seed', 'test-seed-data'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/recover/seed', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ data: 'test-seed-data' }), + }) + ); + expect(result.did).toBe('did:recovered'); + }); + + it('recoverIdentity should work with backup method', async () => { + const mockIdentity = { + did: 'did:backup', + displayName: 'Backup', + identityType: 'citizen' as const, + createdAt: '2024-01-01T00:00:00Z', + citizenship: true, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockIdentity), + }); + + await api.recoverIdentity('backup', 'backup-data'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/recover/backup', + expect.any(Object) + ); + }); + + it('recoverIdentity should work with social method', async () => { + const mockIdentity = { + did: 'did:social', + displayName: 'Social', + identityType: 'citizen' as const, + createdAt: '2024-01-01T00:00:00Z', + citizenship: true, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockIdentity), + }); + + await api.recoverIdentity('social', 'social-recovery-data'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/recover/social', + expect.any(Object) + ); + }); + + it('createZkDid should POST to zkdid/create', async () => { + const mockDid = { did: 'did:zk:test', created: true }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockDid), + }); + + const didData = { identity_type: 'human' }; + const result = await api.createZkDid(didData); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/zkdid/create', + expect.objectContaining({ + body: JSON.stringify(didData), + }) + ); + expect(result.did).toBe('did:zk:test'); + }); + + it('createZkDid should work without data', async () => { + const mockDid = { did: 'did:zk:default' }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockDid), + }); + + await api.createZkDid(); + + expect(global.fetch).toHaveBeenCalledWith( + expect.any(String), + expect.objectContaining({ + body: JSON.stringify({}), + }) + ); + }); + + it('signInWithIdentity should POST identity and passphrase', async () => { + const mockResult = { + token: 'jwt-token', + identity: { + did: 'did:test', + displayName: 'Test', + identityType: 'citizen' as const, + createdAt: '2024-01-01T00:00:00Z', + citizenship: true, + }, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockResult), + }); + + const identity = mockResult.identity; + const result = await api.signInWithIdentity(identity, 'passphrase'); + + expect(result.token).toBe('jwt-token'); + expect(result.identity.did).toBe('did:test'); + }); + }); + + describe('DAO Operations - Extended', () => { + it('createProposal should POST proposal data', async () => { + const mockProposal = { + id: 'prop-123', + title: 'Test Proposal', + description: 'Test', + status: 'active' as const, + votesFor: 0, + votesAgainst: 0, + creator: 'did:test', + createdAt: '2024-01-01T00:00:00Z', + deadline: '2024-02-01T00:00:00Z', + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockProposal), + }); + + const proposalData = { title: 'Test Proposal', description: 'Test' }; + const result = await api.createProposal(proposalData); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/dao/proposals', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify(proposalData), + }) + ); + expect(result.id).toBe('prop-123'); + }); + + it('getProposalDetails should GET specific proposal', async () => { + const mockDetails = { + id: 'prop-456', + title: 'Detailed Proposal', + description: 'Details', + status: 'passed' as const, + votesFor: 100, + votesAgainst: 50, + creator: 'did:creator', + createdAt: '2024-01-01T00:00:00Z', + deadline: '2024-02-01T00:00:00Z', + executionData: { action: 'transfer' }, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockDetails), + }); + + const result = await api.getProposalDetails('prop-456'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/dao/proposals/prop-456', + expect.any(Object) + ); + expect(result.executionData).toBeDefined(); + }); + + it('getDaoData should GET dao data', async () => { + const mockData = { participants: 1000, totalVotes: 5000 }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockData), + }); + + const result = await api.getDaoData(); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/dao/data', + expect.any(Object) + ); + expect(result.participants).toBe(1000); + }); + + it('getDaoDelegates should GET list of delegates', async () => { + const mockDelegates = [ + { + id: 'del-1', + name: 'Delegate 1', + votingPower: 500, + delegators: 10, + activeProposals: 3, + reputation: 95, + }, + ]; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockDelegates), + }); + + const result = await api.getDaoDelegates(); + + expect(result).toHaveLength(1); + expect(result[0].votingPower).toBe(500); + }); + + it('getDelegateProfile should GET specific delegate', async () => { + const mockDelegate = { + id: 'del-2', + name: 'Alice', + votingPower: 1000, + delegators: 20, + activeProposals: 5, + reputation: 98, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockDelegate), + }); + + const result = await api.getDelegateProfile('del-2'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/dao/delegates/del-2', + expect.any(Object) + ); + expect(result.reputation).toBe(98); + }); + + it('registerDelegate should POST delegate registration', async () => { + const mockDelegate = { + id: 'del-new', + name: 'New Delegate', + votingPower: 0, + delegators: 0, + activeProposals: 0, + reputation: 50, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockDelegate), + }); + + const delegateInfo = { name: 'New Delegate', bio: 'Test bio' }; + const result = await api.registerDelegate('did:user', delegateInfo); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/dao/delegates/register', + expect.objectContaining({ + body: JSON.stringify({ userDid: 'did:user', delegateInfo }), + }) + ); + expect(result.name).toBe('New Delegate'); + }); + + it('revokeDelegation should POST revocation', async () => { + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({}), + }); + + await api.revokeDelegation('did:user'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/dao/delegates/revoke', + expect.objectContaining({ + body: JSON.stringify({ userDid: 'did:user' }), + }) + ); + }); + + it('getTreasuryHistory should GET treasury records', async () => { + const mockHistory = [ + { + id: 'tx-1', + from: 'dao', + to: 'recipient', + amount: 1000, + reason: 'Grant', + timestamp: '2024-01-01T00:00:00Z', + status: 'executed' as const, + }, + ]; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockHistory), + }); + + const result = await api.getTreasuryHistory(); + + expect(result).toHaveLength(1); + expect(result[0].reason).toBe('Grant'); + }); + + it('createSpendingProposal should POST spending proposal', async () => { + const mockProposal = { + id: 'spend-1', + title: 'Spending', + description: 'Spend funds', + status: 'active' as const, + votesFor: 0, + votesAgainst: 0, + creator: 'did:test', + createdAt: '2024-01-01T00:00:00Z', + deadline: '2024-02-01T00:00:00Z', + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockProposal), + }); + + const proposalData = { amount: 5000, recipient: 'did:recipient' }; + const result = await api.createSpendingProposal(proposalData); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/dao/proposals/spending', + expect.any(Object) + ); + expect(result.title).toBe('Spending'); + }); + + it('getUserVotes should GET user voting history', async () => { + const mockVotes = [ + { proposalId: 'prop-1', vote: true }, + { proposalId: 'prop-2', vote: false }, + ]; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockVotes), + }); + + const result = await api.getUserVotes('did:user'); + + expect(result).toHaveLength(2); + expect(result[0].vote).toBe(true); + }); + }); + + describe('Web4/DHT Operations', () => { + it('resolveDapp should resolve domain', async () => { + const mockDapp = { domain: 'test.zhtp', contentHash: 'hash123' }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockDapp), + }); + + const result = await api.resolveDapp('test.zhtp'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/dht/web4/resolve/test.zhtp', + expect.any(Object) + ); + expect(result.domain).toBe('test.zhtp'); + }); + + it('loadWeb4Resource should POST resource URL', async () => { + const mockResource = { content: 'data', type: 'html' }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockResource), + }); + + const result = await api.loadWeb4Resource('zhtp://test.zhtp/page'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/web4/load', + expect.objectContaining({ + body: JSON.stringify({ url: 'zhtp://test.zhtp/page' }), + }) + ); + expect(result.content).toBe('data'); + }); + + it('getContractContent should GET contract content', async () => { + const mockContent = { code: 'contract_code' }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockContent), + }); + + const result = await api.getContractContent('contract-123'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/dht/contract/contract-123', + expect.any(Object) + ); + expect(result.code).toBe('contract_code'); + }); + + it('getContractContent should support path parameter', async () => { + const mockContent = { file: 'module.js' }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockContent), + }); + + await api.getContractContent('contract-123', '/lib/module.js'); + + expect(global.fetch).toHaveBeenCalledWith( + expect.stringContaining('path=%2Flib%2Fmodule.js'), + expect.any(Object) + ); + }); + + it('getContractByHash should GET contract by hash', async () => { + const mockContract = { hash: 'abc123', code: 'code' }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockContract), + }); + + const result = await api.getContractByHash('abc123'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/blockchain/contract/abc123', + expect.any(Object) + ); + expect(result.hash).toBe('abc123'); + }); + + it('getContractById should GET contract by ID', async () => { + const mockContract = { + id: 'contract-456', + name: 'TestContract', + version: '1.0.0', + author: 'did:author', + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockContract), + }); + + const result = await api.getContractById('contract-456'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/contract/contract-456', + expect.any(Object) + ); + expect(result.name).toBe('TestContract'); + }); + }); + + describe('Transaction Operations', () => { + it('getTransactionHistory should support wallet_type parameter', async () => { + const mockTxs = [ + { + id: 'tx-1', + from: 'addr1', + to: 'addr2', + amount: 100, + status: 'confirmed' as const, + timestamp: '2024-01-01T00:00:00Z', + }, + ]; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockTxs), + }); + + await api.getTransactionHistory('addr1', 'primary'); + + expect(global.fetch).toHaveBeenCalledWith( + expect.stringContaining('wallet_type=primary'), + expect.any(Object) + ); + }); + + it('sendTransaction should support metadata', async () => { + const mockTx = { + id: 'tx-new', + from: 'from-addr', + to: 'to-addr', + amount: 500, + status: 'pending' as const, + timestamp: '2024-01-01T00:00:00Z', + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockTx), + }); + + const metadata = { memo: 'Payment for services' }; + await api.sendTransaction('from-addr', 'to-addr', 500, metadata); + + expect(global.fetch).toHaveBeenCalledWith( + expect.any(String), + expect.objectContaining({ + body: JSON.stringify({ + from: 'from-addr', + to: 'to-addr', + amount: 500, + metadata, + }), + }) + ); + }); + }); + + describe('Success Path Coverage', () => { + it('verifyZkProof should return true for valid proof', async () => { + global.fetch = vi.fn().mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({ valid: true }), + }); + + const proof = { type: 'test', data: 'proof-data', timestamp: '2024-01-01' }; + const result = await api.verifyZkProof(proof); + + expect(result).toBe(true); + }); + + it('testConnection should return true on successful health check', async () => { + global.fetch = vi.fn().mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({ healthy: true }), + }); + + const result = await api.testConnection(); + + expect(result).toBe(true); + }); + + it('getProtocolInfo should return protocol data', async () => { + const mockNodeStatus = { + version: '1.0.0', + quantum_resistant: true, + zk_privacy_enabled: true, + mesh_networking: true, + dao_fees_enabled: true, + network_id: 'testnet', + consensus_state: 'active', + block_height: 1000, + peer_count: 5, + healthy: true, + status: 'running', + uptime_seconds: 3600, + latency_ms: 10, + fully_synced: true, + }; + + global.fetch = vi.fn().mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockNodeStatus), + }); + + const result = await api.getProtocolInfo(); + + expect(result.success).toBe(true); + expect(result.protocol).toBe('ZHTP/1.0'); + expect(result.version).toBe('1.0.0'); + expect(result.features.quantum_resistant).toBe(true); + expect(result.network.block_height).toBe(1000); + }); + }); +}); diff --git a/src/core/zhtp-api-methods.ts b/src/core/zhtp-api-methods.ts index f3b8a8b..2a7da67 100644 --- a/src/core/zhtp-api-methods.ts +++ b/src/core/zhtp-api-methods.ts @@ -26,6 +26,15 @@ import { SignupResponse, LoginRequest, LoginResponse, + BackupData, + BackupVerification, + SeedVerification, + SeedPhrases, + Guardian, + GuardianResponse, + RecoverySession, + RecoveryStatus, + CitizenshipResult, } from './types'; export abstract class ZhtpApiMethods extends ZhtpApiCore { @@ -160,7 +169,7 @@ export abstract class ZhtpApiMethods extends ZhtpApiCore { } async recoverIdentityFromSeed(recoveryData: Record): Promise { - return this.request('/api/v1/identity/recover/seed', { + return this.request('/api/v1/identity/restore/seed', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(recoveryData), @@ -168,7 +177,7 @@ export abstract class ZhtpApiMethods extends ZhtpApiCore { } async restoreIdentityFromBackup(backupData: Record): Promise { - return this.request('/api/v1/identity/restore/backup', { + return this.request('/api/v1/identity/backup/import', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(backupData), @@ -183,6 +192,128 @@ export abstract class ZhtpApiMethods extends ZhtpApiCore { }); } + // ==================== Backup Operations ==================== + + async exportBackup(identityId: string, password: string): Promise { + return this.request('/api/v1/identity/backup/export', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, password }), + }); + } + + async importBackup(backupData: string, password: string): Promise { + return this.request('/api/v1/identity/backup/import', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ backup_data: backupData, password }), + }); + } + + async verifyBackup(backupData: string): Promise { + return this.request('/api/v1/identity/backup/verify', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ backup_data: backupData }), + }); + } + + // ==================== Seed Phrase Operations ==================== + + async verifySeedPhrase(identityId: string, seedPhrase: string): Promise { + return this.request('/api/v1/identity/seed/verify', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, seed_phrase: seedPhrase }), + }); + } + + async exportSeedPhrases(identityId: string): Promise { + return this.request(`/api/v1/identity/${identityId}/seeds`); + } + + // ==================== Guardian Management ==================== + + async addGuardian(identityId: string, guardianId: string, guardianInfo?: Record): Promise { + return this.request('/api/v1/guardian/add', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + identity_id: identityId, + guardian_id: guardianId, + ...guardianInfo + }), + }); + } + + async listGuardians(identityId: string): Promise { + return this.request(`/api/v1/guardian/list/${identityId}`); + } + + async removeGuardian(identityId: string, guardianId: string): Promise { + await this.request('/api/v1/guardian/remove', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, guardian_id: guardianId }), + }); + } + + async acceptGuardianInvite(guardianId: string, identityId: string): Promise { + await this.request('/api/v1/guardian/accept', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ guardian_id: guardianId, identity_id: identityId }), + }); + } + + async declineGuardianInvite(guardianId: string, identityId: string): Promise { + await this.request('/api/v1/guardian/decline', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ guardian_id: guardianId, identity_id: identityId }), + }); + } + + // ==================== Guardian Recovery Flow ==================== + + async initiateRecovery(identityId: string, guardianIds: string[]): Promise { + return this.request('/api/v1/guardian/recovery/initiate', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, guardian_ids: guardianIds }), + }); + } + + async approveRecovery(guardianId: string, recoveryId: string, approval: boolean): Promise { + await this.request('/api/v1/guardian/recovery/approve', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ guardian_id: guardianId, recovery_id: recoveryId, approval }), + }); + } + + async getRecoveryStatus(recoveryId: string): Promise { + return this.request(`/api/v1/guardian/recovery/status/${recoveryId}`); + } + + async cancelRecovery(recoveryId: string): Promise { + await this.request('/api/v1/guardian/recovery/cancel', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ recovery_id: recoveryId }), + }); + } + + // ==================== Citizenship ==================== + + async applyCitizenship(identityId: string, applicationData?: Record): Promise { + return this.request('/api/v1/identity/citizenship/apply', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ identity_id: identityId, ...applicationData }), + }); + } + async createZkDid(didData?: Record): Promise { return this.request('/api/v1/identity/zkdid/create', { method: 'POST', diff --git a/src/core/zhtp-api-sid.test.ts b/src/core/zhtp-api-sid.test.ts new file mode 100644 index 0000000..bd2c894 --- /dev/null +++ b/src/core/zhtp-api-sid.test.ts @@ -0,0 +1,648 @@ +/** + * Tests for ZhtpApi SID Methods + * Comprehensive tests for backup, recovery, guardian, and citizenship operations + */ + +import { describe, it, expect, beforeEach, vi } from 'vitest'; +import { ZhtpApi } from './zhtp-api'; +import { ApiConfig } from './types'; + +describe('ZhtpApi - SID Methods', () => { + let api: ZhtpApi; + const mockConfig: ApiConfig = { + zhtpNodeUrl: 'http://localhost:8000', + networkType: 'testnet', + debugMode: false, + enableBiometrics: true, + }; + + const mockConfigProvider = { + getConfig: vi.fn().mockResolvedValue(mockConfig), + }; + + beforeEach(async () => { + vi.clearAllMocks(); + api = new ZhtpApi(mockConfigProvider); + await api.ensureInitialized(); + global.fetch = vi.fn(); + }); + + describe('Backup Operations', () => { + it('exportBackup should POST to /api/v1/identity/backup/export', async () => { + const mockBackupData = { + version: '1.0', + encrypted_data: 'encrypted_backup_data', + metadata: { + created_at: 1234567890, + identity_id: 'test-identity', + backup_type: 'full', + }, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockBackupData), + }); + + const result = await api.exportBackup('test-identity', 'password123'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/backup/export', + expect.objectContaining({ + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ + identity_id: 'test-identity', + password: 'password123', + }), + }) + ); + + expect(result).toEqual(mockBackupData); + expect(result.version).toBe('1.0'); + expect(result.metadata.identity_id).toBe('test-identity'); + }); + + it('importBackup should POST to /api/v1/identity/backup/import', async () => { + const mockIdentity = { + did: 'did:test:restored', + displayName: 'Restored User', + identityType: 'citizen' as const, + createdAt: '2024-01-01T00:00:00Z', + citizenship: true, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockIdentity), + }); + + const backupData = 'encrypted_backup_data_string'; + const result = await api.importBackup(backupData, 'password123'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/backup/import', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + backup_data: backupData, + password: 'password123', + }), + }) + ); + + expect(result.did).toBe('did:test:restored'); + expect(result.identityType).toBe('citizen'); + }); + + it('verifyBackup should POST to /api/v1/identity/backup/verify', async () => { + const mockVerification = { + valid: true, + version: '1.0', + created_at: 1234567890, + identity_id: 'test-identity', + errors: [], + warnings: [], + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockVerification), + }); + + const result = await api.verifyBackup('encrypted_backup_data'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/backup/verify', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ backup_data: 'encrypted_backup_data' }), + }) + ); + + expect(result.valid).toBe(true); + expect(result.errors).toHaveLength(0); + expect(result.identity_id).toBe('test-identity'); + }); + + it('verifyBackup should handle invalid backups', async () => { + const mockVerification = { + valid: false, + version: '', + created_at: 0, + errors: ['Invalid encryption', 'Corrupted data'], + warnings: [], + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockVerification), + }); + + const result = await api.verifyBackup('corrupted_data'); + + expect(result.valid).toBe(false); + expect(result.errors).toHaveLength(2); + }); + }); + + describe('Seed Phrase Operations', () => { + it('verifySeedPhrase should POST to /api/v1/identity/seed/verify', async () => { + const mockVerification = { + valid: true, + wallet_id: 'wallet-123', + wallet_type: 'primary', + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockVerification), + }); + + const seedPhrase = 'word1 word2 word3 word4 word5 word6 word7 word8 word9 word10 word11 word12 word13 word14 word15 word16 word17 word18 word19 word20'; + const result = await api.verifySeedPhrase('test-identity', seedPhrase); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/seed/verify', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + identity_id: 'test-identity', + seed_phrase: seedPhrase, + }), + }) + ); + + expect(result.valid).toBe(true); + expect(result.wallet_id).toBe('wallet-123'); + expect(result.wallet_type).toBe('primary'); + }); + + it('verifySeedPhrase should handle invalid seeds', async () => { + const mockVerification = { + valid: false, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockVerification), + }); + + const result = await api.verifySeedPhrase('test-identity', 'invalid seed'); + + expect(result.valid).toBe(false); + expect(result.wallet_id).toBeUndefined(); + }); + + it('exportSeedPhrases should GET from /api/v1/identity/{id}/seeds', async () => { + const mockSeeds = { + primary: ['word1', 'word2', 'word3'], + ubi: ['word4', 'word5', 'word6'], + savings: ['word7', 'word8', 'word9'], + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockSeeds), + }); + + const result = await api.exportSeedPhrases('test-identity'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/test-identity/seeds', + expect.any(Object) + ); + + expect(result.primary).toHaveLength(3); + expect(result.ubi).toHaveLength(3); + expect(result.savings).toHaveLength(3); + }); + }); + + describe('Guardian Management', () => { + it('addGuardian should POST to /api/v1/guardian/add', async () => { + const mockResponse = { + status: 'success', + guardian_id: 'guardian-123', + message: 'Guardian added successfully', + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockResponse), + }); + + const guardianInfo = { relationship: 'family', trust_level: 'high' }; + const result = await api.addGuardian('identity-123', 'guardian-123', guardianInfo); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/add', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + identity_id: 'identity-123', + guardian_id: 'guardian-123', + relationship: 'family', + trust_level: 'high', + }), + }) + ); + + expect(result.status).toBe('success'); + expect(result.guardian_id).toBe('guardian-123'); + }); + + it('listGuardians should GET from /api/v1/guardian/list/{id}', async () => { + const mockGuardians = [ + { + guardian_id: 'guardian-1', + guardian_name: 'Alice', + status: 'active' as const, + added_at: 1234567890, + relationship: 'family', + }, + { + guardian_id: 'guardian-2', + guardian_name: 'Bob', + status: 'pending' as const, + added_at: 1234567900, + relationship: 'friend', + }, + ]; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockGuardians), + }); + + const result = await api.listGuardians('identity-123'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/list/identity-123', + expect.any(Object) + ); + + expect(result).toHaveLength(2); + expect(result[0].status).toBe('active'); + expect(result[1].status).toBe('pending'); + }); + + it('removeGuardian should POST to /api/v1/guardian/remove', async () => { + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({}), + }); + + await api.removeGuardian('identity-123', 'guardian-456'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/remove', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + identity_id: 'identity-123', + guardian_id: 'guardian-456', + }), + }) + ); + }); + + it('acceptGuardianInvite should POST to /api/v1/guardian/accept', async () => { + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({}), + }); + + await api.acceptGuardianInvite('guardian-123', 'identity-456'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/accept', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + guardian_id: 'guardian-123', + identity_id: 'identity-456', + }), + }) + ); + }); + + it('declineGuardianInvite should POST to /api/v1/guardian/decline', async () => { + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({}), + }); + + await api.declineGuardianInvite('guardian-123', 'identity-456'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/decline', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + guardian_id: 'guardian-123', + identity_id: 'identity-456', + }), + }) + ); + }); + }); + + describe('Guardian Recovery Flow', () => { + it('initiateRecovery should POST to /api/v1/guardian/recovery/initiate', async () => { + const mockSession = { + recovery_id: 'recovery-789', + identity_id: 'identity-123', + status: 'initiated' as const, + required_approvals: 3, + current_approvals: 0, + guardian_ids: ['g1', 'g2', 'g3', 'g4'], + created_at: 1234567890, + expires_at: 1234654290, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockSession), + }); + + const guardianIds = ['g1', 'g2', 'g3', 'g4']; + const result = await api.initiateRecovery('identity-123', guardianIds); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/recovery/initiate', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + identity_id: 'identity-123', + guardian_ids: guardianIds, + }), + }) + ); + + expect(result.recovery_id).toBe('recovery-789'); + expect(result.status).toBe('initiated'); + expect(result.required_approvals).toBe(3); + expect(result.current_approvals).toBe(0); + }); + + it('approveRecovery should POST to /api/v1/guardian/recovery/approve', async () => { + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({}), + }); + + await api.approveRecovery('guardian-123', 'recovery-789', true); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/recovery/approve', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + guardian_id: 'guardian-123', + recovery_id: 'recovery-789', + approval: true, + }), + }) + ); + }); + + it('approveRecovery should handle rejection', async () => { + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({}), + }); + + await api.approveRecovery('guardian-123', 'recovery-789', false); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/recovery/approve', + expect.objectContaining({ + body: expect.stringContaining('"approval":false'), + }) + ); + }); + + it('getRecoveryStatus should GET from /api/v1/guardian/recovery/status/{id}', async () => { + const mockStatus = { + recovery_id: 'recovery-789', + status: 'pending_approvals' as const, + progress: { + required: 3, + approved: 2, + declined: 0, + }, + guardians: [ + { + guardian_id: 'g1', + status: 'approved' as const, + responded_at: 1234567900, + }, + { + guardian_id: 'g2', + status: 'approved' as const, + responded_at: 1234567910, + }, + { + guardian_id: 'g3', + status: 'pending' as const, + }, + ], + created_at: 1234567890, + updated_at: 1234567910, + expires_at: 1234654290, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockStatus), + }); + + const result = await api.getRecoveryStatus('recovery-789'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/recovery/status/recovery-789', + expect.any(Object) + ); + + expect(result.recovery_id).toBe('recovery-789'); + expect(result.status).toBe('pending_approvals'); + expect(result.progress.approved).toBe(2); + expect(result.progress.required).toBe(3); + expect(result.guardians).toHaveLength(3); + }); + + it('getRecoveryStatus should handle completed recovery', async () => { + const mockStatus = { + recovery_id: 'recovery-789', + status: 'completed' as const, + progress: { + required: 3, + approved: 3, + declined: 0, + }, + guardians: [], + created_at: 1234567890, + updated_at: 1234567920, + expires_at: 1234654290, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockStatus), + }); + + const result = await api.getRecoveryStatus('recovery-789'); + + expect(result.status).toBe('completed'); + expect(result.progress.approved).toBe(3); + }); + + it('cancelRecovery should POST to /api/v1/guardian/recovery/cancel', async () => { + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue({}), + }); + + await api.cancelRecovery('recovery-789'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/guardian/recovery/cancel', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ recovery_id: 'recovery-789' }), + }) + ); + }); + }); + + describe('Citizenship Operations', () => { + it('applyCitizenship should POST to /api/v1/identity/citizenship/apply', async () => { + const mockCitizenship = { + identity_id: 'identity-123', + primary_wallet_id: 'wallet-1', + ubi_wallet_id: 'wallet-2', + savings_wallet_id: 'wallet-3', + wallet_seed_phrases: { + primary_wallet_seeds: { words: ['word1', 'word2'] }, + ubi_wallet_seeds: { words: ['word3', 'word4'] }, + savings_wallet_seeds: { words: ['word5', 'word6'] }, + }, + dao_registration: { + voting_power: 100, + soulbound_nft_issued: true, + registered_at: 1234567890, + }, + ubi_registration: { + ubi_wallet_id: 'wallet-2', + ubi_enabled: true, + }, + web4_access: { + web4_enabled: true, + }, + welcome_bonus: { + bonus_amount: 1000, + }, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockCitizenship), + }); + + const applicationData = { referral_code: 'REF123' }; + const result = await api.applyCitizenship('identity-123', applicationData); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/citizenship/apply', + expect.objectContaining({ + method: 'POST', + body: JSON.stringify({ + identity_id: 'identity-123', + referral_code: 'REF123', + }), + }) + ); + + expect(result.identity_id).toBe('identity-123'); + expect(result.dao_registration.voting_power).toBe(100); + expect(result.welcome_bonus.bonus_amount).toBe(1000); + expect(result.ubi_registration.ubi_enabled).toBe(true); + }); + + it('applyCitizenship should work without optional data', async () => { + const mockCitizenship = { + identity_id: 'identity-456', + primary_wallet_id: 'wallet-1', + ubi_wallet_id: 'wallet-2', + savings_wallet_id: 'wallet-3', + wallet_seed_phrases: { + primary_wallet_seeds: { words: [] }, + ubi_wallet_seeds: { words: [] }, + savings_wallet_seeds: { words: [] }, + }, + dao_registration: { + voting_power: 50, + soulbound_nft_issued: true, + registered_at: 1234567890, + }, + ubi_registration: { + ubi_wallet_id: 'wallet-2', + ubi_enabled: true, + }, + web4_access: { + web4_enabled: true, + }, + welcome_bonus: { + bonus_amount: 1000, + }, + }; + + (global.fetch as any).mockResolvedValue({ + ok: true, + json: vi.fn().mockResolvedValue(mockCitizenship), + }); + + const result = await api.applyCitizenship('identity-456'); + + expect(global.fetch).toHaveBeenCalledWith( + 'http://localhost:8000/api/v1/identity/citizenship/apply', + expect.objectContaining({ + body: JSON.stringify({ identity_id: 'identity-456' }), + }) + ); + + expect(result.identity_id).toBe('identity-456'); + }); + }); + + describe('Error Handling', () => { + beforeEach(async () => { + // Re-initialize API for error tests + api = new ZhtpApi(mockConfigProvider); + await api.ensureInitialized(); + }); + + it('should handle HTTP 400 errors in addGuardian', async () => { + global.fetch = vi.fn().mockResolvedValue({ + ok: false, + status: 400, + statusText: 'Bad Request', + json: vi.fn().mockResolvedValue({ error: 'Invalid guardian ID' }), + }); + + await expect(api.addGuardian('id', 'invalid')).rejects.toThrow(); + }); + + it('should handle HTTP 404 errors in getRecoveryStatus', async () => { + global.fetch = vi.fn().mockResolvedValue({ + ok: false, + status: 404, + statusText: 'Not Found', + json: vi.fn().mockResolvedValue({ error: 'Recovery not found' }), + }); + + await expect(api.getRecoveryStatus('invalid-id')).rejects.toThrow(); + }); + }); +});