mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 03:19:46 +00:00
feat: add sizesSchema
This commit is contained in:
parent
03d93ff810
commit
c6ff4a9d25
2 changed files with 14 additions and 1 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import { assertEquals } from '@std/assert';
|
||||
|
||||
import { percentageSchema } from '@/schema.ts';
|
||||
import { percentageSchema, sizesSchema } from '@/schema.ts';
|
||||
|
||||
Deno.test('Value is any percentage from 1 to 100', () => {
|
||||
assertEquals(percentageSchema.safeParse('latvia' as unknown).success, false);
|
||||
|
|
@ -20,3 +20,12 @@ Deno.test('Value is any percentage from 1 to 100', () => {
|
|||
|
||||
assertEquals(percentageSchema.safeParse('1e1').success, true);
|
||||
});
|
||||
|
||||
Deno.test('Size or sizes has correct format', () => {
|
||||
assertEquals(sizesSchema.safeParse('orphan' as unknown).success, false);
|
||||
assertEquals(sizesSchema.safeParse('0000x 20x20' as unknown).success, false);
|
||||
assertEquals(sizesSchema.safeParse('0000x10 20X20 1x22' as unknown).success, false);
|
||||
assertEquals(sizesSchema.safeParse('1000x10 20X20 1x22' as unknown).success, true);
|
||||
assertEquals(sizesSchema.safeParse('3333X6666 1x22 f' as unknown).success, false);
|
||||
assertEquals(sizesSchema.safeParse('11xxxxxxx0 20X20 1x22' as unknown).success, false);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -65,6 +65,9 @@ const localeSchema = z.string().transform<Intl.Locale>((val, ctx) => {
|
|||
}
|
||||
});
|
||||
|
||||
/** White-space separated list of sizes, each in the format <number with up to 4 digits>x<number with up to 4 digits> or with "X" in upper case. */
|
||||
const sizesSchema = z.string().regex(/^(?:[1-9]\d{0,3}[xX][1-9]\d{0,3})(?:\s+[1-9]\d{0,3}[xX][1-9]\d{0,3})*$/);
|
||||
|
||||
export {
|
||||
booleanParamSchema,
|
||||
decode64Schema,
|
||||
|
|
@ -75,4 +78,5 @@ export {
|
|||
localeSchema,
|
||||
percentageSchema,
|
||||
safeUrlSchema,
|
||||
sizesSchema,
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue