Spaces:
Sleeping
Sleeping
| import { | |
| mapsSearchRequestSchema, | |
| mapsAutocompleteRequestSchema, | |
| mapsReverseQuerySchema, | |
| mapsResolveUrlRequestSchema, | |
| } from './maps.schema'; | |
| import { describe, it, expect } from 'vitest'; | |
| describe('mapsSearchRequestSchema', () => { | |
| it('requires a non-empty query', () => { | |
| expect(mapsSearchRequestSchema.safeParse({ query: 'berlin' }).success).toBe( | |
| true, | |
| ); | |
| expect(mapsSearchRequestSchema.safeParse({ query: '' }).success).toBe( | |
| false, | |
| ); | |
| expect(mapsSearchRequestSchema.safeParse({}).success).toBe(false); | |
| }); | |
| }); | |
| describe('mapsAutocompleteRequestSchema', () => { | |
| it('caps input at 200 chars and allows an optional locationBias', () => { | |
| expect( | |
| mapsAutocompleteRequestSchema.safeParse({ input: 'be' }).success, | |
| ).toBe(true); | |
| expect( | |
| mapsAutocompleteRequestSchema.safeParse({ input: 'x'.repeat(201) }) | |
| .success, | |
| ).toBe(false); | |
| expect( | |
| mapsAutocompleteRequestSchema.safeParse({ | |
| input: 'be', | |
| locationBias: { low: { lat: 1, lng: 2 }, high: { lat: 3, lng: 4 } }, | |
| }).success, | |
| ).toBe(true); | |
| }); | |
| }); | |
| describe('mapsReverseQuerySchema', () => { | |
| it('requires lat and lng as strings (the route parses them downstream)', () => { | |
| expect( | |
| mapsReverseQuerySchema.safeParse({ lat: '52.5', lng: '13.4' }).success, | |
| ).toBe(true); | |
| expect(mapsReverseQuerySchema.safeParse({ lat: '52.5' }).success).toBe( | |
| false, | |
| ); | |
| }); | |
| }); | |
| describe('mapsResolveUrlRequestSchema', () => { | |
| it('requires a non-empty url', () => { | |
| expect( | |
| mapsResolveUrlRequestSchema.safeParse({ | |
| url: 'https://maps.app.goo.gl/x', | |
| }).success, | |
| ).toBe(true); | |
| expect(mapsResolveUrlRequestSchema.safeParse({ url: '' }).success).toBe( | |
| false, | |
| ); | |
| }); | |
| }); | |