Files
fotospiel-app/resources/js/lib/__tests__/localizedPath.test.ts
2025-12-02 13:31:58 +01:00

30 lines
1.2 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { buildLocalizedPath, defaultLocaleRewrites } from '../localizedPath';
describe('buildLocalizedPath', () => {
const supported = ['de', 'en'];
it('prefixes path with locale', () => {
expect(buildLocalizedPath('/packages', 'en', supported)).toBe('/en/packages');
expect(buildLocalizedPath('/packages', 'de', supported)).toBe('/de/packages');
});
it('applies rewrite rules between locales', () => {
expect(buildLocalizedPath('/kontakt', 'en', supported, 'de', defaultLocaleRewrites)).toBe('/en/contact');
expect(buildLocalizedPath('/contact', 'de', supported, 'de', defaultLocaleRewrites)).toBe('/de/kontakt');
});
it('preserves query strings', () => {
expect(buildLocalizedPath('/contact?ref=ad', 'de', supported)).toBe('/de/kontakt?ref=ad');
});
it('falls back to default locale when target not supported', () => {
expect(buildLocalizedPath('/demo', 'fr', supported)).toBe('/de/demo');
});
it('handles empty or invalid paths gracefully', () => {
expect(buildLocalizedPath('', 'en', supported)).toBe('/de');
expect(buildLocalizedPath(undefined, 'en', supported)).toBe('/de');
});
});