Files
carmanagement/apps/homepage/tests/unit/homepage-content.test.ts
T
root 35172ab46b
Build & Deploy / Build & Push Docker Image (push) Failing after 48s
Build & Deploy / Deploy to VPS (push) Has been skipped
Test / API Unit Tests (push) Failing after 5m2s
Test / Marketplace Unit Tests (push) Failing after 4m55s
Test / Admin Unit Tests (push) Successful in 9m37s
Test / Dashboard Unit Tests (push) Successful in 9m37s
Test / API Integration Tests (push) Successful in 9m54s
add images and redesign hompeage into sections, fix the dark color
2026-06-26 21:01:02 -04:00

48 lines
2.0 KiB
TypeScript

import arHomepage from '@/content/locales/ar/homepage.json';
import arShell from '@/content/locales/ar/shell.json';
import enHomepage from '@/content/locales/en/homepage.json';
import enShell from '@/content/locales/en/shell.json';
import frHomepage from '@/content/locales/fr/homepage.json';
import frShell from '@/content/locales/fr/shell.json';
import { buildHomepageContent } from '@/content/homepage-model';
import { describe, expect, it } from 'vitest';
describe('homepage content model', () => {
it.each([
['en', enHomepage, enShell],
['fr', frHomepage, frShell],
['ar', arHomepage, arShell],
] as const)('builds complete %s route content', (_locale, homepage, shell) => {
const content = buildHomepageContent(homepage, shell, _locale);
expect(content.hero.title).toBeTruthy();
expect(content.trust.items).toHaveLength(4);
expect(content.workflow.steps).toHaveLength(4);
expect(content.modules.items).toHaveLength(6);
expect(content.faq.items).toHaveLength(6);
expect(content.pricing.fleetBands).toHaveLength(4);
expect(content.pricing.plans).toHaveLength(3);
expect(content.hero.preview.rows).toHaveLength(2);
});
it('keeps unresolved conversion destinations disabled', () => {
const content = buildHomepageContent(enHomepage, enShell);
expect(content.hero.primary.href).toBe('/dashboard/sign-up?lang=en');
expect(content.hero.primary.disabledReason).toBeUndefined();
expect(content.final.primary.href).toBe('/dashboard/sign-up?lang=en');
expect(content.final.primary.disabledReason).toBeUndefined();
expect(content.pricing.actionDisabledReason).toBe(enShell.states.pendingBody);
expect(content.final.secondary.disabledReason).toBe(enShell.states.pendingBody);
});
it('keeps preview identifiers isolated from translated prose', () => {
const content = buildHomepageContent(arHomepage, arShell);
expect(content.hero.preview.rows.map((row) => row.secondary)).toEqual([
arHomepage.preview.plate1,
arHomepage.preview.plate2,
]);
});
});