All files / lib/packages/shared-types/events withdraw-rai.ts

100% Statements 7/7
50% Branches 1/2
100% Functions 3/3
100% Lines 5/5

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34      186x                     6x       6x     6x           186x            
import { z } from "zod";
import { attachmentArraySchemaOptional } from "../attachments";
 
export const baseSchema = z.object({
  event: z.literal("withdraw-rai").default("withdraw-rai"),
  id: z.string(),
  authority: z.string(),
  attachments: z.object({
    supportingDocumentation: z.object({
      files: attachmentArraySchemaOptional(),
      label: z.string().default("Supporting Documentation"),
    }),
  }),
  additionalInformation: z.preprocess(
    (value) => (typeof value === "string" ? value.trimStart() : value),
    z
      .string()
      .max(4000)
      .refine((value) => value !== "", {
        message: "Additional Information is required.",
      })
      .refine((value) => value.trim().length > 0, {
        message: "Additional Information can not be only whitespace.",
      }),
  ),
});
 
export const schema = baseSchema.extend({
  origin: z.literal("mako").default("mako"),
  submitterName: z.string(),
  submitterEmail: z.string().email(),
  timestamp: z.number(),
});