From 5e562374a0a114c59be01debdc807db86da9c840 Mon Sep 17 00:00:00 2001 From: Francesco Torchia Date: Wed, 22 Jan 2025 16:51:32 +0100 Subject: [PATCH] Fix errors propagation in management.cattle.io.setting.vue Signed-off-by: Francesco Torchia --- .../management.cattle.io.setting.test.ts | 55 +++++++++++++------ shell/edit/management.cattle.io.setting.vue | 2 + 2 files changed, 39 insertions(+), 18 deletions(-) diff --git a/shell/edit/__tests__/management.cattle.io.setting.test.ts b/shell/edit/__tests__/management.cattle.io.setting.test.ts index d12ead980ea..ee58a57c206 100644 --- a/shell/edit/__tests__/management.cattle.io.setting.test.ts +++ b/shell/edit/__tests__/management.cattle.io.setting.test.ts @@ -2,27 +2,27 @@ import { mount } from '@vue/test-utils'; import Settings from '@shell/edit/management.cattle.io.setting.vue'; import { SETTING } from '@shell/config/settings'; -describe('view: management.cattle.io.setting should', () => { - const requiredSetup = () => ({ - // Remove all these mocks after migration to Vue 2.7/3 due mixin logic - global: { - mocks: { - $store: { - getters: { - currentStore: () => 'current_store', - 'current_store/schemaFor': jest.fn(), - 'current_store/all': jest.fn(), - 'i18n/t': jest.fn(), - 'i18n/exists': jest.fn(), - }, - dispatch: jest.fn(), +const requiredSetup = () => ({ + // Remove all these mocks after migration to Vue 2.7/3 due mixin logic + global: { + mocks: { + $store: { + getters: { + currentStore: () => 'current_store', + 'current_store/schemaFor': jest.fn(), + 'current_store/all': jest.fn(), + 'i18n/t': jest.fn(), + 'i18n/exists': jest.fn(), }, - $route: { query: { AS: '' } }, - $router: { applyQuery: jest.fn() }, - } + dispatch: jest.fn(), + }, + $route: { query: { AS: '' } }, + $router: { applyQuery: jest.fn() }, } - }); + } +}); +describe('view: management.cattle.io.setting should', () => { it('allowing to save if no rules in settings', () => { const wrapper = mount(Settings, { props: { value: { value: 'anything' } }, @@ -88,3 +88,22 @@ describe('view: management.cattle.io.setting should', () => { }); }); }); + +describe('edit: management.cattle.io.setting should', () => { + it('display form errors', () => { + const wrapper = mount(Settings, { + props: { + value: { value: 'anything' }, + mode: 'edit', + }, + data: () => ({ + setting: { }, + errors: ['generic'] as any, + }), + ...requiredSetup() + }); + const errorBanner = wrapper.find('[data-testid="banner-content"]'); + + expect(errorBanner.element.textContent).toBe('generic'); + }); +}); diff --git a/shell/edit/management.cattle.io.setting.vue b/shell/edit/management.cattle.io.setting.vue index 3dade3631eb..c67b24a0122 100644 --- a/shell/edit/management.cattle.io.setting.vue +++ b/shell/edit/management.cattle.io.setting.vue @@ -24,6 +24,8 @@ export default { Banner }, + inheritAttrs: false, + mixins: [CreateEditView, FormValidation], data() {