diff --git a/packages/server/src/tests/utilities/structures.ts b/packages/server/src/tests/utilities/structures.ts index 8f67ad1af9..698f6d8236 100644 --- a/packages/server/src/tests/utilities/structures.ts +++ b/packages/server/src/tests/utilities/structures.ts @@ -26,6 +26,10 @@ import { WebhookActionType, AutomationEventType, LoopStepType, + FieldSchema, + BBReferenceFieldSubType, + JsonFieldSubType, + AutoFieldSubType, } from "@budibase/types" import { LoopInput } from "../../definitions/automations" import { merge } from "lodash" @@ -573,3 +577,161 @@ export function basicEnvironmentVariable( development: dev || prod, } } + +export function fullSchemaWithoutLinks({ + allRequired, +}: { + allRequired?: boolean +}) { + const schema: { + [type in Exclude]: FieldSchema & { type: type } + } = { + [FieldType.STRING]: { + name: "string", + type: FieldType.STRING, + constraints: { + presence: allRequired, + }, + }, + [FieldType.LONGFORM]: { + name: "longform", + type: FieldType.LONGFORM, + constraints: { + presence: allRequired, + }, + }, + [FieldType.OPTIONS]: { + name: "options", + type: FieldType.OPTIONS, + constraints: { + presence: allRequired, + inclusion: ["option 1", "option 2", "option 3", "option 4"], + }, + }, + [FieldType.ARRAY]: { + name: "array", + type: FieldType.ARRAY, + constraints: { + presence: allRequired, + type: JsonFieldSubType.ARRAY, + inclusion: ["options 1", "options 2", "options 3", "options 4"], + }, + }, + [FieldType.NUMBER]: { + name: "number", + type: FieldType.NUMBER, + constraints: { + presence: allRequired, + }, + }, + [FieldType.BOOLEAN]: { + name: "boolean", + type: FieldType.BOOLEAN, + constraints: { + presence: allRequired, + }, + }, + [FieldType.DATETIME]: { + name: "datetime", + type: FieldType.DATETIME, + dateOnly: true, + timeOnly: false, + constraints: { + presence: allRequired, + }, + }, + [FieldType.FORMULA]: { + name: "formula", + type: FieldType.FORMULA, + formula: "any formula", + constraints: { + presence: allRequired, + }, + }, + [FieldType.BARCODEQR]: { + name: "barcodeqr", + type: FieldType.BARCODEQR, + constraints: { + presence: allRequired, + }, + }, + [FieldType.BIGINT]: { + name: "bigint", + type: FieldType.BIGINT, + constraints: { + presence: allRequired, + }, + }, + [FieldType.BB_REFERENCE]: { + name: "user", + type: FieldType.BB_REFERENCE, + subtype: BBReferenceFieldSubType.USER, + constraints: { + presence: allRequired, + }, + }, + [FieldType.BB_REFERENCE_SINGLE]: { + name: "users", + type: FieldType.BB_REFERENCE_SINGLE, + subtype: BBReferenceFieldSubType.USER, + constraints: { + presence: allRequired, + }, + }, + [FieldType.ATTACHMENTS]: { + name: "attachments", + type: FieldType.ATTACHMENTS, + constraints: { + presence: allRequired, + }, + }, + [FieldType.ATTACHMENT_SINGLE]: { + name: "attachment_single", + type: FieldType.ATTACHMENT_SINGLE, + constraints: { + presence: allRequired, + }, + }, + [FieldType.AUTO]: { + name: "auto", + type: FieldType.AUTO, + subtype: AutoFieldSubType.AUTO_ID, + autocolumn: true, + constraints: { + presence: allRequired, + }, + }, + [FieldType.JSON]: { + name: "json", + type: FieldType.JSON, + constraints: { + presence: allRequired, + }, + }, + [FieldType.INTERNAL]: { + name: "internal", + type: FieldType.INTERNAL, + constraints: { + presence: allRequired, + }, + }, + [FieldType.SIGNATURE_SINGLE]: { + name: "signature_single", + type: FieldType.SIGNATURE_SINGLE, + constraints: { + presence: allRequired, + }, + }, + } + + return schema +} +export function basicAttachment() { + return { + key: generator.guid(), + name: generator.word(), + extension: generator.word(), + size: generator.natural(), + url: `/${generator.guid()}`, + } +}