From b5986929b79999a96fcf6e486989401039a73d2c Mon Sep 17 00:00:00 2001 From: blam Date: Fri, 19 Aug 2022 13:28:09 +0200 Subject: [PATCH] chore: added in the ability to customise the review step Signed-off-by: blam --- .../Stepper/ReviewState.test.tsx | 74 +++++++++++++++++++ .../Stepper/ReviewState.tsx | 10 +-- 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/ReviewState.test.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/ReviewState.test.tsx index d603213c19..2b2e706102 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/ReviewState.test.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/ReviewState.test.tsx @@ -63,4 +63,78 @@ describe('ReviewState', () => { expect(getByRole('row', { name: 'Name ******' })).toBeInTheDocument(); }); + + it('should hide from review if show is not set', async () => { + const formState = { + name: 'John Doe', + test: 'bob', + }; + + const schemas: ParsedTemplateSchema[] = [ + { + mergedSchema: { + type: 'object', + properties: { + name: { + type: 'string', + 'ui:widget': 'password', + 'ui:backstage': { + review: { + show: false, + }, + }, + }, + }, + }, + schema: {}, + title: 'test', + uiSchema: {}, + description: 'asd', + }, + ]; + + const { queryByRole } = render( + , + ); + + expect( + await queryByRole('row', { name: 'Name ******' }), + ).not.toBeInTheDocument(); + }); + + it('should allow for masking an option with a set text', () => { + const formState = { + name: 'John Doe', + test: 'bob', + }; + + const schemas: ParsedTemplateSchema[] = [ + { + mergedSchema: { + type: 'object', + properties: { + name: { + type: 'string', + 'ui:widget': 'password', + 'ui:backstage': { + review: { + mask: 'lols', + }, + }, + }, + }, + }, + schema: {}, + title: 'test', + uiSchema: {}, + description: 'asd', + }, + ]; + + const { getByRole } = render( + , + ); + + expect(getByRole('row', { name: 'Name lols' })).toBeInTheDocument(); + }); }); diff --git a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/ReviewState.tsx b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/ReviewState.tsx index 4889b24483..f39a26622a 100644 --- a/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/ReviewState.tsx +++ b/plugins/scaffolder/src/next/TemplateWizardPage/Stepper/ReviewState.tsx @@ -34,10 +34,6 @@ export const ReviewState = (props: ReviewStateProps) => { props.formState, ); if (definitionInSchema) { - if (definitionInSchema['ui:widget'] === 'password') { - return [key, '******']; - } - const backstageReviewOptions = definitionInSchema['ui:backstage']?.review; @@ -45,10 +41,14 @@ export const ReviewState = (props: ReviewStateProps) => { if (backstageReviewOptions.mask) { return [key, backstageReviewOptions.mask]; } - if (!backstageReviewOptions.show) { + if (backstageReviewOptions.show === false) { return []; } } + + if (definitionInSchema['ui:widget'] === 'password') { + return [key, '******']; + } } } return [key, value];