All files / react-app/src/formSchemas contracting-renewal.ts

100% Statements 5/5
100% Branches 0/0
100% Functions 4/4
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        72x           131x         123x       123x       123x          
import { canBeRenewedOrAmended, idIsApproved, itemExists } from "@/api";
import { isAuthorizedState } from "@/utils";
import { events } from "shared-types/events";
 
export const formSchema = events["contracting-renewal"].baseSchema.extend({
  id: events["contracting-renewal"].baseSchema.shape.id
    .refine(isAuthorizedState, {
      message:
        "You can only submit for a state you have access to. If you need to add another state, visit your IDM user profile to request access.",
    })
    .refine(async (value) => !(await itemExists(value)), {
      message:
        "According to our records, this 1915(b) Waiver Number already exists. Please check the 1915(b) Waiver Number and try entering it again.",
    }),
  waiverNumber: events["contracting-renewal"].baseSchema.shape.waiverNumber
    .refine(async (value) => await itemExists(value), {
      message:
        "According to our records, this 1915(b) Waiver Number does not yet exist. Please check the 1915(b) Initial or Renewal Waiver Number and try entering it again.",
    })
    .refine(async (value) => canBeRenewedOrAmended(value), {
      message:
        "The 1915(b) Waiver Number entered does not seem to match our records. Please enter an approved 1915(b) Initial or Renewal Waiver Number, using a dash after the two character state abbreviation.",
    })
    .refine(async (value) => idIsApproved(value), {
      message:
        "According to our records, this 1915(b) Waiver Number is not approved. You must supply an approved 1915(b) Initial or Renewal Waiver Number.",
    }),
});