From 489d6a334f266ad69886690fd6fdf9e6e94be0ae Mon Sep 17 00:00:00 2001 From: lucasgarfield Date: Tue, 28 Jun 2022 10:39:21 +0200 Subject: [PATCH] CreateImageWizard: Add CentOS acknowledgement Adds a PF4 info that informs users that CentOS is intended only for development of RHEL-Next if CentOS is the selected distro in the Image Output step. --- .../CreateImageWizard/ImageCreator.js | 2 + .../formComponents/CentOSAcknowledgement.js | 44 +++++++++++++++++++ .../CreateImageWizard/steps/imageOutput.js | 8 ++++ .../CreateImageWizard.test.js | 23 ++++++++++ 4 files changed, 77 insertions(+) create mode 100644 src/Components/CreateImageWizard/formComponents/CentOSAcknowledgement.js diff --git a/src/Components/CreateImageWizard/ImageCreator.js b/src/Components/CreateImageWizard/ImageCreator.js index 9728702d..c0549c4f 100644 --- a/src/Components/CreateImageWizard/ImageCreator.js +++ b/src/Components/CreateImageWizard/ImageCreator.js @@ -15,6 +15,7 @@ import Select from '@data-driven-forms/pf4-component-mapper/select'; import FileSystemConfiguration from './formComponents/FileSystemConfiguration'; import FileSystemConfigToggle from './formComponents/FileSystemConfigToggle'; import ImageOutputReleaseSelect from './formComponents/ImageOutputReleaseSelect'; +import CentOSAcknowledgement from './formComponents/CentOSAcknowledgement'; const ImageCreator = ({ schema, @@ -53,6 +54,7 @@ const ImageCreator = ({ 'file-system-config-toggle': FileSystemConfigToggle, 'file-system-configuration': FileSystemConfiguration, 'image-output-release-select': ImageOutputReleaseSelect, + 'centos-acknowledgement': CentOSAcknowledgement, ...customComponentMapper, }} onCancel={onClose} diff --git a/src/Components/CreateImageWizard/formComponents/CentOSAcknowledgement.js b/src/Components/CreateImageWizard/formComponents/CentOSAcknowledgement.js new file mode 100644 index 00000000..b8bcf7bb --- /dev/null +++ b/src/Components/CreateImageWizard/formComponents/CentOSAcknowledgement.js @@ -0,0 +1,44 @@ +import React from 'react'; +import { Alert, Button } from '@patternfly/react-core'; +import { ExternalLinkAltIcon } from '@patternfly/react-icons'; + +const DeveloperProgramButton = () => { + return ( + + ); +}; + +const CentOSAcknowledgement = () => { + return ( + + CentOS Stream builds may only be used for the development of + RHEL-Next. + + } + > +

+ For other applications, use a RHEL distribution. +
+ For those without subscriptions, join the Red Hat Developer program and + get cost-free RHEL: +

+
+ ); +}; + +export default CentOSAcknowledgement; diff --git a/src/Components/CreateImageWizard/steps/imageOutput.js b/src/Components/CreateImageWizard/steps/imageOutput.js index 0041db2f..eada15f8 100644 --- a/src/Components/CreateImageWizard/steps/imageOutput.js +++ b/src/Components/CreateImageWizard/steps/imageOutput.js @@ -38,6 +38,14 @@ export default { }, ], }, + { + component: 'centos-acknowledgement', + name: 'centos-acknowledgement', + condition: { + when: 'release', + pattern: /centos-*/, + }, + }, { component: 'output', name: 'target-environment', diff --git a/src/test/Components/CreateImageWizard/CreateImageWizard.test.js b/src/test/Components/CreateImageWizard/CreateImageWizard.test.js index 8feaeb6a..2bdfbd64 100644 --- a/src/test/Components/CreateImageWizard/CreateImageWizard.test.js +++ b/src/test/Components/CreateImageWizard/CreateImageWizard.test.js @@ -324,6 +324,29 @@ describe('Step Image output', () => { userEvent.click(releaseMenu); }); + + test('CentOS acknowledgement appears', async () => { + setUp(); + + const releaseMenu = screen.getByRole('button', { + name: /options menu/i, + }); + userEvent.click(releaseMenu); + + const showOptionsButton = screen.getByRole('button', { + name: 'Show options for further development of RHEL', + }); + userEvent.click(showOptionsButton); + + const centOSButton = screen.getByRole('option', { + name: 'CentOS Stream 9', + }); + userEvent.click(centOSButton); + + await screen.findByText( + 'CentOS Stream builds may only be used for the development of RHEL-Next.' + ); + }); }); describe('Step Upload to AWS', () => {