Skip to content

Commit

Permalink
ISPN-16256 Don't validate config on every step
Browse files Browse the repository at this point in the history
  • Loading branch information
karesti committed Jul 2, 2024
1 parent 1df0fc7 commit 9753ea9
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 28 deletions.
3 changes: 1 addition & 2 deletions cypress/e2e/3_proto-schema.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@ describe('Proto Schema CRUD', () => {
cy.get('.pf-v5-c-alert__action > .pf-v5-c-button').click(); //Closing alert popup.
cy.contains(schemaName + '.proto');
cy.contains('Schema ' + schemaName + '.proto has errors');
cy.wait(50000)

// Update
cy.get('[data-cy="actions-' + schemaName + '.proto"]>button').click();
Expand All @@ -74,7 +73,7 @@ describe('Proto Schema CRUD', () => {
cy.contains('Schema ' + schemaName +'.proto updated.');
cy.get('.pf-v5-c-alert__action > .pf-v5-c-button').click(); //Closing alert popup.
cy.get('[data-cy="' + schemaName + '.protoConfig"]').click();
cy.wait(10000)

cy.contains('schemaValue').should('not.exist');
cy.contains('ExampleProto');
cy.contains('Schema ' + schemaName + '.proto has errors').should('not.exist');
Expand Down
1 change: 0 additions & 1 deletion src/app/Caches/Create/CreateCacheWizard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,6 @@ const CreateCacheWizard = (props: { cacheManager: CacheManager; create: boolean
<ReviewCacheConfig
setReviewConfig={setReviewConfig}
setContentType={setContentType}
contentType={contentType}
/>
</WizardStep>
</Wizard>
Expand Down
1 change: 0 additions & 1 deletion src/app/Caches/Create/FeaturesSelector.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ const FeaturesSelector = () => {
const [isBackups, setIsBackups] = useState(false);

useEffect(() => {
console.log(cm);
if (!loading) {
setIsBackups(cm.backups_enabled);
}
Expand Down
4 changes: 0 additions & 4 deletions src/app/Caches/Create/LanguageToggleRadios.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import { useTranslation } from 'react-i18next';
const LanguageToggleRadios = (props: {
language: ConfigDownloadType;
setLanguage: (ConfigDownloadType) => void;
setContentType: (string) => void;
}) => {
const { t } = useTranslation();

Expand All @@ -17,7 +16,6 @@ const LanguageToggleRadios = (props: {
id="JSON"
onChange={() => {
props.setLanguage(ConfigDownloadType.JSON);
props.setContentType(ConfigDownloadType.JSON.toLowerCase());
}}
isChecked={(props.language as ConfigDownloadType) == ConfigDownloadType.JSON}
label={t('caches.create.review.json')}
Expand All @@ -27,7 +25,6 @@ const LanguageToggleRadios = (props: {
id="XML"
onChange={() => {
props.setLanguage(ConfigDownloadType.XML);
props.setContentType(ConfigDownloadType.XML.toLowerCase());
}}
isChecked={(props.language as ConfigDownloadType) == ConfigDownloadType.XML}
label={t('caches.create.review.xml')}
Expand All @@ -37,7 +34,6 @@ const LanguageToggleRadios = (props: {
id="YAML"
onChange={() => {
props.setLanguage(ConfigDownloadType.YAML);
props.setContentType(ConfigDownloadType.YAML.toLowerCase());
}}
isChecked={(props.language as ConfigDownloadType) == ConfigDownloadType.YAML}
label={t('caches.create.review.yaml')}
Expand Down
47 changes: 27 additions & 20 deletions src/app/Caches/Create/ReviewCacheConfig.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,56 +13,63 @@ import { toCodeEditorLanguage } from '@utils/getLanguage';
const ReviewCacheConfig = (props: {
setReviewConfig: (string) => void;
setContentType: (string) => void;
contentType: 'json' | 'yaml' | 'xml';
}) => {
const { configuration } = useCreateCache();
const { t } = useTranslation();
const [config, setConfig] = useState(CacheConfigUtils.createCacheConfigFromData(configuration));
const { theme } = useContext(ThemeContext);

const [language, setLanguage] = useState(ConfigDownloadType.JSON);
const [jsonConfig, setJsonConfig] = useState(CacheConfigUtils.createCacheConfigFromData(configuration));
const [yamlConfig, setYamlConfig] = useState('');
const [xmlConfig, setXmlConfig] = useState('');
const [error, setError] = useState('');
const [validate, setValidate] = useState(true);

useEffect(() => {
props.setContentType('json');
}, []);
useEffect(() => {
props.setReviewConfig(config);

if (configuration && config && language.toLowerCase() === props.contentType) {
if (validate) {
// Convert the config to all formats
// Also to check if the config is valid
ConsoleServices.caches()
.convertToAllFormat(configuration.start.cacheName, config, props.contentType)
.convertToAllFormat(configuration.start.cacheName, jsonConfig, 'json')
.then((r) => {
if (r.isRight()) {
setYamlConfig(r.value.yaml);
setJsonConfig(r.value.json);
setXmlConfig(r.value.xml);
setError('');
props.setReviewConfig(r.value.json);
} else {
setError(r.value.message);
}
});
}).then(() => setValidate(false));
}
}, [config, configuration]);
}, [validate]);

useEffect(() => {
language === ConfigDownloadType.JSON
? setConfig(jsonConfig)
: language === ConfigDownloadType.YAML
? setConfig(yamlConfig)
: setConfig(xmlConfig);
}, [jsonConfig, yamlConfig, xmlConfig, language]);
props.setContentType(language.toLowerCase());
}, [language]);

const onChangeConfig = (editedConfig) => {
props.setReviewConfig(editedConfig);
setConfig(editedConfig);
if (language == ConfigDownloadType.JSON) {
setJsonConfig(editedConfig);
} else if (language == ConfigDownloadType.YAML) {
setYamlConfig(editedConfig);
} else {
setXmlConfig(editedConfig);
}
};

const config = () => {
if (language == ConfigDownloadType.JSON) {
return jsonConfig;
}
if (language == ConfigDownloadType.YAML) {
return yamlConfig;
}
return xmlConfig;
}

const displayCacheConfigEditor = () => {
return (
<FormGroup fieldId="cache-config">
Expand All @@ -76,7 +83,7 @@ const ReviewCacheConfig = (props: {
language={toCodeEditorLanguage(language)}
isLineNumbersVisible
isLanguageLabelVisible
code={config}
code={config()}
height={'400px'}
isCopyEnabled
isDarkTheme={theme === 'dark'}
Expand All @@ -103,7 +110,7 @@ const ReviewCacheConfig = (props: {
<Text component={TextVariants.h4}>{configuration.start.cacheName}</Text>
</Flex>
</TextContent>
<LanguageToggleRadios language={language} setLanguage={setLanguage} setContentType={props.setContentType} />
<LanguageToggleRadios language={language} setLanguage={setLanguage} />
{displayCacheConfigEditor()}
</Form>
);
Expand Down

0 comments on commit 9753ea9

Please sign in to comment.