diff --git a/assets/js/components/Config/DeviceModal/DeviceModalBase.vue b/assets/js/components/Config/DeviceModal/DeviceModalBase.vue index 40bdd13b7..5bd10b632 100644 --- a/assets/js/components/Config/DeviceModal/DeviceModalBase.vue +++ b/assets/js/components/Config/DeviceModal/DeviceModalBase.vue @@ -483,7 +483,9 @@ export default defineComponent({ } const isYamlInput = this.isYamlInputTypeByValue(newValue as ConfigType); - if (!isYamlInput) { + if (isYamlInput) { + this.template = null; + } else { this.loadTemplate(); } diff --git a/tests/config-ext-meter.spec.ts b/tests/config-ext-meter.spec.ts index 39b42473b..a80e25aa9 100644 --- a/tests/config-ext-meter.spec.ts +++ b/tests/config-ext-meter.spec.ts @@ -104,9 +104,11 @@ test.describe("ext meter", async () => { await meterModal.getByRole("button", { name: "Add regular consumer" }).click(); await meterModal.getByLabel("Title").fill("Custom ext meter"); - await meterModal.getByLabel("Usage").selectOption("battery"); - await meterModal.getByLabel("Manufacturer").selectOption("Demo battery"); - await meterModal.getByLabel("Charge").fill("50"); + await meterModal.getByLabel("Usage").selectOption("pv"); + + // switch to an in-beteen template to ensure we dont leak values + await meterModal.getByLabel("Manufacturer").selectOption("SunSpec Hybrid Inverter"); + await expect(meterModal.getByLabel("IP address or hostname")).toBeVisible(); await meterModal.getByLabel("Manufacturer").selectOption("User-defined device"); await page.waitForLoadState("networkidle");