Files
gridpilot.gg/apps/website/lib/view-models/EmailSignupViewModel.test.ts
Marc Mintel e22033be38
Some checks failed
Contract Testing / contract-tests (pull_request) Failing after 5m54s
Contract Testing / contract-snapshot (pull_request) Has been skipped
view data fixes
2026-01-23 13:04:05 +01:00

38 lines
1.2 KiB
TypeScript

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);
});
});