import { describe, it, expect } from 'vitest'; import { BACKEND_SCHEMAS } from './index'; describe('Azure Blob Zod schema', () => { it('accepts valid account + access key', () => { const result = BACKEND_SCHEMAS.azureblob.safeParse({ account: 'mystorageaccount', key: 'dGVzdGtleQ==', }); expect(result.success).toBe(true); }); it('accepts valid account + sas_url', () => { const result = BACKEND_SCHEMAS.azureblob.safeParse({ account: 'mystorageaccount', sas_url: 'https://mystorageaccount.blob.core.windows.net/?sv=2021-01-01', }); expect(result.success).toBe(true); }); it('rejects empty account (required field)', () => { const result = BACKEND_SCHEMAS.azureblob.safeParse({ account: '' }); expect(result.success).toBe(false); }); it('rejects missing account (required field)', () => { const result = BACKEND_SCHEMAS.azureblob.safeParse({ key: 'dGVzdGtleQ==' }); expect(result.success).toBe(false); }); }); describe('S3 Zod schema', () => { it('accepts valid S3 credentials', () => { const result = BACKEND_SCHEMAS.s3.safeParse({ provider: 'AWS', access_key_id: 'AKIAIOSFODNN7EXAMPLE', secret_access_key: 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY', region: 'us-east-1', }); expect(result.success).toBe(true); }); it('rejects missing access_key_id (required field)', () => { const result = BACKEND_SCHEMAS.s3.safeParse({ provider: 'AWS', secret_access_key: 'secret', region: 'us-east-1', }); expect(result.success).toBe(false); }); }); describe('S3-compatible Zod schema', () => { it('accepts valid S3-compatible credentials with endpoint', () => { const result = BACKEND_SCHEMAS['s3-compatible'].safeParse({ provider: 'Other', access_key_id: 'mykey', secret_access_key: 'mysecret', endpoint: 'https://s3.wasabisys.com', }); expect(result.success).toBe(true); }); it('rejects missing endpoint (required for s3-compatible)', () => { const result = BACKEND_SCHEMAS['s3-compatible'].safeParse({ provider: 'Other', access_key_id: 'mykey', secret_access_key: 'mysecret', }); expect(result.success).toBe(false); }); });