import { describe, it, expect } from 'vitest' import * as z from 'zod' // Mirrors the schema defined in app/pages/login.vue const schema = z.object({ email: z.email(), otp: z.array(z.string()).optional().transform(val => val?.join('')) }) describe('login schema', () => { it('accepts a valid email', () => { const result = schema.safeParse({ email: 'user@example.com' }) expect(result.success).toBe(true) }) it('rejects an invalid email', () => { const result = schema.safeParse({ email: 'not-an-email' }) expect(result.success).toBe(false) }) it('joins otp array into a single string', () => { const result = schema.safeParse({ email: 'user@example.com', otp: ['1', '2', '3', '4', '5', '6'] }) expect(result.success).toBe(true) if (result.success) expect(result.data.otp).toBe('123456') }) })