Source index

sanity/schemaTypes/check.ts

import {defineArrayMember, defineField, defineType} from 'sanity'

const strings = (name: string) => defineField({
  name, type: 'array', of: [defineArrayMember({type: 'string'})],
  validation: (r) => r.required().min(1),
})

export const check = defineType({
  name: 'check',
  title: 'Suggested manual check',
  type: 'document',
  fields: [
    defineField({name: 'title', type: 'string', validation: (r) => r.required()}),
    defineField({name: 'guide', type: 'reference', to: [{type: 'guide'}], validation: (r) => r.required()}),
    defineField({name: 'checkType', type: 'string', options: {list: ['manual-review']}, initialValue: 'manual-review', validation: (r) => r.required().custom((value) => value === 'manual-review' || 'Only proposed manual reviews are supported.')}),
    defineField({name: 'executionStatus', type: 'string', options: {list: ['notRun']}, initialValue: 'notRun', description: 'These are proposed procedures. No user interface was tested to generate these documents.', validation: (r) => r.required().custom((value) => value === 'notRun' || 'Execution evidence is outside this dataset; use notRun.')}),
    strings('procedure'),
    strings('expected'),
    strings('limitations'),
    defineField({name: 'sources', type: 'array', of: [defineArrayMember({type: 'reference', to: [{type: 'source'}]})], validation: (r) => r.required().min(1)}),
  ],
  preview: {select: {title: 'title', subtitle: 'executionStatus'}},
})