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];