From 2a3360a77f7cbe2b8e9f76346665bfb5b411892f Mon Sep 17 00:00:00 2001 From: Elaine Mattos Date: Mon, 25 Dec 2023 18:32:27 +0100 Subject: [PATCH] feat: change simple enum to zod native enums Signed-off-by: Elaine Mattos --- .../createGitlabIssueAction.examples.ts | 7 ++--- .../src/actions/createGitlabIssueAction.ts | 30 ++++--------------- 2 files changed, 8 insertions(+), 29 deletions(-) diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts index 0044d02df7..760caf0f9f 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.examples.ts @@ -48,8 +48,7 @@ export const examples: TemplateExample[] = [ ...commonGitlabConfigExample, projectId: 12, title: 'Test Issue', - assignees: ` - - 18 `, + assignees: [18], description: 'This is the description of the issue', createdAt: '2022-09-27 18:00:00.000', dueDate: '2022-09-28 12:00:00.000', @@ -70,9 +69,7 @@ export const examples: TemplateExample[] = [ ...commonGitlabConfigExample, projectId: 12, title: 'Test Issue', - assignees: ` - - 18 - - 15 `, + assignees: [18, 15], description: 'This is the description of the issue', confidential: false, createdAt: '2022-09-27 18:00:00.000', diff --git a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts index e92344fb90..f4c77ceb35 100644 --- a/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts +++ b/plugins/scaffolder-backend-module-gitlab/src/actions/createGitlabIssueAction.ts @@ -23,11 +23,11 @@ import { z } from 'zod'; import { checkEpicScope, convertDate, getClient, parseRepoUrl } from '../util'; import { Gitlab, CreateIssueOptions, IssueSchema } from '@gitbeaker/rest'; -const enumIssueType = { - ISSUE: 'issue', - INCIDENT: 'incident', - TEST: 'test_case', -}; +enum IssueType { + ISSUE = 'issue', + INCIDENT = 'incident', + TEST = 'test_case', +} const issueInputProperties = z.object({ projectId: z.number().describe('Project Id'), @@ -67,27 +67,9 @@ const issueInputProperties = z.object({ .optional(), labels: z.string({ description: 'Labels to apply' }).optional(), issueType: z - .string({ + .nativeEnum(IssueType, { description: 'Type of the issue', }) - .refine(issueType => { - const isValid = Object.values(enumIssueType).includes(issueType); - if (!isValid) { - throw new z.ZodError([ - { - code: 'invalid_enum_value', - options: Object.values(enumIssueType), - path: ['issueType'], - message: `Invalid value for 'issueType'. Must be one of: ${Object.values( - enumIssueType, - ).join(', ')}`, - received: issueType, - }, - ]); - } - return isValid; - }) - .default(enumIssueType.ISSUE) .optional(), mergeRequestToResolveDiscussionsOf: z .number({