From d4d8109a63b9a20f476d3fc05e734c3be8ce718e Mon Sep 17 00:00:00 2001 From: Michael Geers Date: Tue, 5 May 2026 17:16:18 +0200 Subject: [PATCH] Battery UI: 100% buffersoc resets bufferstart (#29669) --- assets/js/components/Battery/BatteryUsageSettings.vue | 4 +++- tests/battery-settings.spec.ts | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/assets/js/components/Battery/BatteryUsageSettings.vue b/assets/js/components/Battery/BatteryUsageSettings.vue index 636c734bf..40139f147 100644 --- a/assets/js/components/Battery/BatteryUsageSettings.vue +++ b/assets/js/components/Battery/BatteryUsageSettings.vue @@ -379,7 +379,9 @@ export default defineComponent({ }, async changeBufferSoc($event: Event) { const soc = parseInt(($event.target as HTMLInputElement).value, 10); - if (soc > this.bufferStartSoc && this.bufferStartSoc > 0) { + if (soc === 100) { + await this.setBufferStartSoc(0); + } else if (soc > this.bufferStartSoc && this.bufferStartSoc > 0) { await this.setBufferStartSoc(soc); } await this.saveBufferSoc(soc); diff --git a/tests/battery-settings.spec.ts b/tests/battery-settings.spec.ts index ce43ab357..d7e96449a 100644 --- a/tests/battery-settings.spec.ts +++ b/tests/battery-settings.spec.ts @@ -38,16 +38,21 @@ test.describe("battery settings", async () => { const topRow = page.getByText("Battery-supported vehicle charging"); const bufferSoc = topRow.getByRole("combobox").filter({ hasText: "disabled" }); + const bufferStart = page.locator("#batterySettingsBufferStart"); await expect(bufferSoc).toHaveValue("100"); await expect(page.getByText("Start automatically")).toBeHidden(); await bufferSoc.selectOption({ label: "when above 80%" }); - await expect(bufferSoc).toHaveValue("80"); await expect(page.getByText("Start automatically")).toBeVisible(); + await bufferStart.selectOption({ label: "when above 90%." }); + await bufferSoc.selectOption({ label: "disabled" }); await expect(page.getByText("Start automatically")).toBeHidden(); + + await bufferSoc.selectOption({ label: "when above 80%" }); + await expect(topRow).toContainText("only with enough surplus."); }); test("grid charging", async ({ page }) => {