import { describe, it, expect } from 'vitest'; import { EmailSignupViewModel } from './EmailSignupViewModel'; import type { EmailSignupViewData } from '../view-data/EmailSignupViewData'; describe('EmailSignupViewModel', () => { it('wraps EmailSignupViewData and exposes UI helpers', () => { const viewData: EmailSignupViewData = { email: 'test@example.com', message: 'Thanks for signing up!', status: 'success', }; const viewModel = new EmailSignupViewModel(viewData); expect(viewModel.email).toBe('test@example.com'); expect(viewModel.message).toBe('Thanks for signing up!'); expect(viewModel.status).toBe('success'); expect(viewModel.isSuccess).toBe(true); expect(viewModel.isError).toBe(false); expect(viewModel.isInfo).toBe(false); }); it('reflects error status helpers', () => { const viewData: EmailSignupViewData = { email: 'test@example.com', message: 'Something went wrong', status: 'error', }; const viewModel = new EmailSignupViewModel(viewData); expect(viewModel.isSuccess).toBe(false); expect(viewModel.isError).toBe(true); expect(viewModel.isInfo).toBe(false); }); });