From 112de346dd1cd08ca7887d09007bf852d73038f7 Mon Sep 17 00:00:00 2001 From: simeng-li Date: Fri, 12 Apr 2024 17:55:59 +0800 Subject: [PATCH] fix(schemas): fix ut fix ut --- .../types/logto-config/jwt-customizer.test.ts | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/packages/schemas/src/types/logto-config/jwt-customizer.test.ts b/packages/schemas/src/types/logto-config/jwt-customizer.test.ts index f8ab70463204..38af57c2825d 100644 --- a/packages/schemas/src/types/logto-config/jwt-customizer.test.ts +++ b/packages/schemas/src/types/logto-config/jwt-customizer.test.ts @@ -1,5 +1,5 @@ import { pick } from '@silverhand/essentials'; -import { describe, it, expect } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { accessTokenJwtCustomizerGuard, @@ -7,6 +7,8 @@ import { } from './jwt-customizer.js'; const allFields = ['script', 'environmentVariables', 'contextSample', 'tokenSample'] as const; +const requiredFields = ['script'] as const; +const optionalFields = ['environmentVariables', 'contextSample', 'tokenSample'] as const; const testClientCredentialsTokenPayload = { script: '', @@ -39,14 +41,35 @@ const testAccessTokenPayload = { }; describe('test token sample guard', () => { - it.each(allFields)('should pass guard with any of the field not specified', (droppedField) => { + it.each(optionalFields)( + 'should pass guard with any of the optionalFields not specified', + (droppedField) => { + const resultAccessToken = accessTokenJwtCustomizerGuard.safeParse( + pick(testAccessTokenPayload, ...allFields.filter((field) => field !== droppedField)) + ); + if (!resultAccessToken.success) { + console.log('resultAccessToken.error', resultAccessToken.error); + } + expect(resultAccessToken.success).toBe(true); + + const resultClientCredentials = clientCredentialsJwtCustomizerGuard.safeParse( + pick( + testClientCredentialsTokenPayload, + ...allFields.filter((field) => field !== droppedField) + ) + ); + if (!resultClientCredentials.success) { + console.log('resultClientCredentials.error', resultClientCredentials.error); + } + expect(resultClientCredentials.success).toBe(true); + } + ); + + it.each(requiredFields)('should throw when required field is not specified', (droppedField) => { const resultAccessToken = accessTokenJwtCustomizerGuard.safeParse( pick(testAccessTokenPayload, ...allFields.filter((field) => field !== droppedField)) ); - if (!resultAccessToken.success) { - console.log('resultAccessToken.error', resultAccessToken.error); - } - expect(resultAccessToken.success).toBe(true); + expect(resultAccessToken.success).toBe(false); const resultClientCredentials = clientCredentialsJwtCustomizerGuard.safeParse( pick( @@ -54,10 +77,7 @@ describe('test token sample guard', () => { ...allFields.filter((field) => field !== droppedField) ) ); - if (!resultClientCredentials.success) { - console.log('resultClientCredentials.error', resultClientCredentials.error); - } - expect(resultClientCredentials.success).toBe(true); + expect(resultClientCredentials.success).toBe(false); }); it.each(allFields)(