From b1cc2c0a29bf803c871532cf22d3587315908c37 Mon Sep 17 00:00:00 2001 From: Francesco Torchia Date: Thu, 2 Jan 2025 10:38:11 +0100 Subject: [PATCH] [backport 12962] - Fix Node Selector value update - Implement NodeScheduling.test Signed-off-by: Francesco Torchia --- shell/components/form/NodeScheduling.vue | 6 ++- .../form/__tests__/NodeScheduling.test.ts | 44 +++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 shell/components/form/__tests__/NodeScheduling.test.ts diff --git a/shell/components/form/NodeScheduling.vue b/shell/components/form/NodeScheduling.vue index f2b4150afd4..99055787546 100644 --- a/shell/components/form/NodeScheduling.vue +++ b/shell/components/form/NodeScheduling.vue @@ -32,6 +32,7 @@ export default { type: String, default: 'create' }, + loading: { default: false, type: Boolean @@ -169,6 +170,7 @@ export default { name="selectNode" :options="selectNodeOptions" :mode="mode" + :data-testid="'node-scheduling-selectNode'" @input="update" /> @@ -182,7 +184,8 @@ export default { :mode="mode" :multiple="false" :loading="loading" - @input="update" + :data-testid="'node-scheduling-nodeSelector'" + @update:value="update" /> @@ -191,6 +194,7 @@ export default { diff --git a/shell/components/form/__tests__/NodeScheduling.test.ts b/shell/components/form/__tests__/NodeScheduling.test.ts new file mode 100644 index 00000000000..ed185373bb9 --- /dev/null +++ b/shell/components/form/__tests__/NodeScheduling.test.ts @@ -0,0 +1,44 @@ +import { mount } from '@vue/test-utils'; +import NodeScheduling from '@shell/components/form/NodeScheduling.vue'; +import { _CREATE, _EDIT, _VIEW } from '@shell/config/query-params'; + +const requiredSetup = () => { + return { + global: { + mocks: { + $store: { + getters: { + currentProduct: { inStore: 'cluster' }, + 'i18n/t': (text: string) => text, + t: (text: string) => text, + } + } + }, + } + }; +}; + +describe('component: NodeScheduling', () => { + const value = { nodeName: 'node-1' }; + + const nodes = ['node-0', 'node-1']; + + it.each([ + _VIEW, + _CREATE, + _EDIT + ])('should show NodeName option', (mode) => { + const wrapper = mount( + NodeScheduling, + { + props: { + mode, loading: false, value, nodes + }, + ...requiredSetup(), + } + ); + + expect(wrapper.find('[data-testid="node-scheduling-selectNode"]').exists()).toBeTruthy(); + expect(wrapper.find('[data-testid="node-scheduling-nodeSelector"]').element.textContent).toContain(value.nodeName); + }); +});