feat: add Links field type (#5176)
Closes #5113 --------- Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
@ -0,0 +1,34 @@
|
||||
import { absoluteUrlSchema } from '~/utils/validation-schemas/absoluteUrlSchema';
|
||||
|
||||
describe('absoluteUrlSchema', () => {
|
||||
it('validates an absolute url', () => {
|
||||
expect(absoluteUrlSchema.parse('https://www.example.com')).toBe(
|
||||
'https://www.example.com',
|
||||
);
|
||||
expect(absoluteUrlSchema.parse('http://subdomain.example.com')).toBe(
|
||||
'http://subdomain.example.com',
|
||||
);
|
||||
expect(absoluteUrlSchema.parse('https://www.example.com/path')).toBe(
|
||||
'https://www.example.com/path',
|
||||
);
|
||||
expect(absoluteUrlSchema.parse('https://www.example.com?query=123')).toBe(
|
||||
'https://www.example.com?query=123',
|
||||
);
|
||||
expect(absoluteUrlSchema.parse('http://localhost:3000')).toBe(
|
||||
'http://localhost:3000',
|
||||
);
|
||||
});
|
||||
|
||||
it('transforms a non-absolute URL to an absolute URL', () => {
|
||||
expect(absoluteUrlSchema.parse('example.com')).toBe('https://example.com');
|
||||
expect(absoluteUrlSchema.parse('www.subdomain.example.com')).toBe(
|
||||
'https://www.subdomain.example.com',
|
||||
);
|
||||
});
|
||||
|
||||
it('fails for invalid urls', () => {
|
||||
expect(absoluteUrlSchema.safeParse('?o').success).toBe(false);
|
||||
expect(absoluteUrlSchema.safeParse('').success).toBe(false);
|
||||
expect(absoluteUrlSchema.safeParse('\\').success).toBe(false);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user