diff --git a/cypress/e2e/po/pages/global-settings/settings.po.ts b/cypress/e2e/po/pages/global-settings/settings.po.ts index 1797dc8f3a..230b5c2533 100644 --- a/cypress/e2e/po/pages/global-settings/settings.po.ts +++ b/cypress/e2e/po/pages/global-settings/settings.po.ts @@ -1,6 +1,7 @@ import RootClusterPage from '@/cypress/e2e/po/pages/root-cluster-page'; import SettingsEditPo from '@/cypress/e2e/po/edit/settings.po'; import BurgerMenuPo from '@/cypress/e2e/po/side-bars/burger-side-menu.po'; +import BannersPo from '@/cypress/e2e/po/components/banners.po'; export class SettingsPagePo extends RootClusterPage { private static createPath(clusterId: string) { return `/c/${ clusterId }/settings/management.cattle.io.setting`; @@ -18,6 +19,10 @@ export class SettingsPagePo extends RootClusterPage { BurgerMenuPo.burgerMenuNavToMenubyLabel('Global Settings'); } + settingBanner() { + return new BannersPo('[data-testid="global-settings-banner"]', this.self()); + } + /** * Get advanced settings row per setting name * @param label diff --git a/cypress/e2e/tests/pages/global-settings/settings.spec.ts b/cypress/e2e/tests/pages/global-settings/settings.spec.ts index a0e6121ca9..3078f3125c 100644 --- a/cypress/e2e/tests/pages/global-settings/settings.spec.ts +++ b/cypress/e2e/tests/pages/global-settings/settings.spec.ts @@ -14,6 +14,7 @@ const accountPage = new AccountPagePo(); const createKeyPage = new CreateKeyPagePo(); const clusterList = new ClusterManagerListPagePo(); const userMenu = new UserMenuPo(); +const BANNER_TEXT = "Typical users will not need to change these. Proceed with caution, incorrect values can break your Explorer installation. Settings which have been customized from default settings are tagged 'Modified'."; describe('Settings', { testIsolation: 'off' }, () => { before(() => { @@ -27,44 +28,51 @@ describe('Settings', { testIsolation: 'off' }, () => { cy.title().should('eq', 'Rancher - Global Settings - Settings'); }); - // Need to add a scroller since the location of this setting changed - // it('can update engine-iso-url', { tags: ['@globalSettings', '@adminUser'] }, () => { - // // Update setting - // SettingsPagePo.navTo(); - // settingsPage.editSettingsByLabel('engine-iso-url'); + it('has the correct banner text', { tags: ['@globalSettings', '@adminUser'] }, () => { + SettingsPagePo.navTo(); - // const settingsEdit = settingsPage.editSettings('local', 'engine-iso-url'); + settingsPage.settingBanner().banner().contains(BANNER_TEXT); + }); - // settingsEdit.waitForPage(); - // settingsEdit.title().contains('Setting: engine-iso-url').should('be.visible'); - // settingsEdit.settingsInput().set(settings['engine-iso-url'].new); - // settingsEdit.saveAndWait('engine-iso-url').then(({ request, response }) => { - // expect(response?.statusCode).to.eq(200); - // expect(request.body).to.have.property('value', settings['engine-iso-url'].new); - // expect(response?.body).to.have.property('value', settings['engine-iso-url'].new); - // }); - // settingsPage.waitForPage(); - // settingsPage.settingsValue('engine-iso-url').contains(settings['engine-iso-url'].new); - // settingsPage.modifiedLabel('engine-iso-url').should('be.visible'); // modified label should display after update + it('can update engine-iso-url', { tags: ['@globalSettings', '@adminUser'] }, () => { + // Update setting + SettingsPagePo.navTo(); + settingsPage.editSettingsByLabel('engine-iso-url'); - // // Reset - // SettingsPagePo.navTo(); - // settingsPage.waitForPage(); - // settingsPage.editSettingsByLabel('engine-iso-url'); + const settingsEdit = settingsPage.editSettings('local', 'engine-iso-url'); - // settingsEdit.waitForPage(); - // settingsEdit.title().contains('Setting: engine-iso-url').should('be.visible'); - // settingsEdit.useDefaultButton().click(); - // settingsEdit.saveAndWait('engine-iso-url').then(({ request, response }) => { - // expect(response?.statusCode).to.eq(200); - // expect(request.body).to.have.property('value', settings['engine-iso-url'].original); - // expect(response?.body).to.have.property('value', settings['engine-iso-url'].original); - // }); + settingsEdit.waitForPage(); + settingsEdit.title().contains('Setting: engine-iso-url').should('be.visible'); + settingsEdit.settingsInput().set(settings['engine-iso-url'].new); + settingsEdit.saveAndWait('engine-iso-url').then(({ request, response }) => { + expect(response?.statusCode).to.eq(200); + expect(request.body).to.have.property('value', settings['engine-iso-url'].new); + expect(response?.body).to.have.property('value', settings['engine-iso-url'].new); + }); + settingsPage.waitForPage(); + settingsPage.settingsValue('engine-iso-url').contains(settings['engine-iso-url'].new); + // Scroll to the setting + cy.get('.main-layout').scrollTo('bottom'); + settingsPage.modifiedLabel('engine-iso-url').should('be.visible'); // modified label should display after update - // settingsPage.waitForPage(); - // settingsPage.settingsValue('engine-iso-url').contains(settings['engine-iso-url'].original); - // settingsPage.modifiedLabel('engine-iso-url').should('not.exist'); // modified label should not display after reset - // }); + // Reset + SettingsPagePo.navTo(); + settingsPage.waitForPage(); + settingsPage.editSettingsByLabel('engine-iso-url'); + + settingsEdit.waitForPage(); + settingsEdit.title().contains('Setting: engine-iso-url').should('be.visible'); + settingsEdit.useDefaultButton().click(); + settingsEdit.saveAndWait('engine-iso-url').then(({ request, response }) => { + expect(response?.statusCode).to.eq(200); + expect(request.body).to.have.property('value', settings['engine-iso-url'].original); + expect(response?.body).to.have.property('value', settings['engine-iso-url'].original); + }); + + settingsPage.waitForPage(); + settingsPage.settingsValue('engine-iso-url').contains(settings['engine-iso-url'].original); + settingsPage.modifiedLabel('engine-iso-url').should('not.exist'); // modified label should not display after reset + }); it('can update password-min-length', { tags: ['@globalSettings', '@adminUser'] }, () => { // Update setting diff --git a/shell/list/management.cattle.io.setting.vue b/shell/list/management.cattle.io.setting.vue index b7f2409249..ee966e376a 100644 --- a/shell/list/management.cattle.io.setting.vue +++ b/shell/list/management.cattle.io.setting.vue @@ -5,6 +5,7 @@ import { Banner } from '@components/Banner'; import Loading from '@shell/components/Loading'; import { VIEW_IN_API } from '@shell/store/prefs'; import Setting from '@shell/components/Setting'; +import { mapGetters } from 'vuex'; export default { components: { @@ -69,7 +70,8 @@ export default { data() { return { settings: null, provisioningSettings: null }; - } + }, + computed: { ...mapGetters({ t: 'i18n/t' }) } }; @@ -79,6 +81,7 @@ export default {
{{ t('advancedSettings.subtext') }}