Files
gw-svelte/src/routes/home-page.server.test.ts
T
2026-05-19 23:36:58 +12:00

55 lines
1.6 KiB
TypeScript

import { describe, expect, it, vi } from 'vitest';
import { homepageContent } from '$lib/content/homepage';
const { getHomepageContent } = vi.hoisted(() => ({
getHomepageContent: vi.fn()
}));
vi.mock('$lib/server/content', () => ({
getHomepageContent
}));
import { load } from './+page.server';
function createLoadEvent(url = 'https://www.goodwalk.co.nz/') {
// The loader now also receives `cookies`; resolveSurface only touches it
// when ?preview is involved, which these tests don't exercise.
return {
url: new URL(url),
cookies: {
get: () => undefined,
set: () => {},
delete: () => {}
}
} as unknown as Parameters<typeof load>[0];
}
describe('home page server load', () => {
it('returns homepage content', async () => {
getHomepageContent.mockResolvedValue(homepageContent);
await expect(load(createLoadEvent())).resolves.toEqual({
siteVariant: 'marketing',
content: homepageContent
});
});
it('returns the onboarding variant on the clients host', async () => {
getHomepageContent.mockResolvedValue(homepageContent);
await expect(load(createLoadEvent('https://clients.goodwalk.co.nz/'))).resolves.toEqual({
siteVariant: 'onboarding',
isPreview: false
});
});
it('still returns the onboarding variant on the legacy onboarding host', async () => {
getHomepageContent.mockResolvedValue(homepageContent);
await expect(load(createLoadEvent('https://onboarding.goodwalk.co.nz/'))).resolves.toEqual({
siteVariant: 'onboarding',
isPreview: false
});
});
});