mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29: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 { 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', () => {
|
Deno.test('Value is any percentage from 1 to 100', () => {
|
||||||
assertEquals(percentageSchema.safeParse('latvia' as unknown).success, false);
|
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);
|
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 {
|
export {
|
||||||
booleanParamSchema,
|
booleanParamSchema,
|
||||||
decode64Schema,
|
decode64Schema,
|
||||||
|
|
@ -75,4 +78,5 @@ export {
|
||||||
localeSchema,
|
localeSchema,
|
||||||
percentageSchema,
|
percentageSchema,
|
||||||
safeUrlSchema,
|
safeUrlSchema,
|
||||||
|
sizesSchema,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue