From 27dce1ed68593b9abca1e1b52c5b2c98467cb9bd Mon Sep 17 00:00:00 2001 From: Jordon Leach Date: Wed, 30 Oct 2024 06:24:02 -0400 Subject: [PATCH] Fix agentConfig checkbox input (#12415) --- .../__tests__/Advanced.test.ts | 26 +++++++++++++++++++ .../tabs/Advanced.vue | 8 ++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/shell/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts b/shell/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts index 3424382464..e7ecfb19da 100644 --- a/shell/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts +++ b/shell/edit/provisioning.cattle.io.cluster/__tests__/Advanced.test.ts @@ -128,6 +128,32 @@ describe('component: Advanced', () => { expect(checkbox.value).toBe('true'); }); + + it(`should update agentConfig when 'protect-kernel-defaults' exists`, async() => { + const value = clone(PROV_CLUSTER); + + value.spec.rkeConfig.machineGlobalConfig['protect-kernel-defaults'] = false; + value.spec.rkeConfig.machineSelectorConfig = [{ + config: { 'protect-kernel-defaults': true }, + machineLabelSelector: {} + }]; + value.agentConfig = value.spec.rkeConfig.machineSelectorConfig[0].config; + + mountOptions.propsData.mode = _EDIT; // Use edit mode to allow interactions + mountOptions.propsData.value = value; + + wrapper = mount(Advanced, mountOptions); + + const checkboxLabel = wrapper + .find(`[data-testid="protect-kernel-defaults"]`) + .find('label'); + + checkboxLabel.trigger('click'); + await wrapper.vm.$nextTick(); + + // Verify that agentConfig is updated + expect(value.spec.rkeConfig.machineSelectorConfig[0].config['protect-kernel-defaults']).toBe(false); + }); }); describe(`'kubelet-arg'`, () => { diff --git a/shell/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue b/shell/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue index c26b47e3bd..15f0126f35 100644 --- a/shell/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue +++ b/shell/edit/provisioning.cattle.io.cluster/tabs/Advanced.vue @@ -80,10 +80,14 @@ export default { return i !== 0 || !this.agentConfig; }, showEmptyKubeletArg(config) { - return !this.serverArg?.['kubelet-arg']?.length && !config?.['kubelet-arg']?.length; + return !this.serverArgs?.['kubelet-arg']?.length && !config?.['kubelet-arg']?.length; }, onInputProtectKernelDefaults(value) { - this.agentConfig ? this.agentConfig = value : this.serverConfig['protect-kernel-defaults'] = value; + if (this.agentConfig && this.agentConfig['protect-kernel-defaults'] !== undefined ) { + this.agentConfig['protect-kernel-defaults'] = value; + } else { + this.serverConfig['protect-kernel-defaults'] = value; + } } } };