fix: show battery locked only for discharge (#27025)

This commit is contained in:
Michael Geers 2026-01-26 19:29:54 +01:00 • committed by GitHub
parent 033e5031ec
commit f65e370585
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 31 additions and 6 deletions

View file

@ -239,7 +239,6 @@
:power="batteryCharge"
:powerUnit="powerUnit"
:iconProps="{
hold: batteryHold,
soc: batterySoc,
gridCharge: batteryGridChargeActive,
}"
@ -247,6 +246,7 @@
:detailsFmt="batteryFmt"
:expanded="batteryExpanded"
detailsClickable
data-testid="energyflow-entry-batterycharge"
@details-clicked="openBatterySettingsModal"
@toggle="toggleBattery"
>
@ -395,7 +395,7 @@ export default defineComponent({
return this.chargePower(this.batteryPower);
},
batteryChargeLabel() {
return this.$t(`main.energyflow.battery${this.batteryHold ? "Hold" : "Charge"}`);
return this.$t("main.energyflow.batteryCharge");
},
batteryDischargeLabel() {
return this.$t(`main.energyflow.battery${this.batteryHold ? "Hold" : "Discharge"}`);

View file

@ -1,12 +1,14 @@
import { test, expect } from "@playwright/test";
import { start, stop, baseUrl } from "./evcc";
import { expectModalVisible, expectModalHidden, openTopNavigation } from "./utils";
test.use({ baseURL: baseUrl() });
test.beforeAll(async () => {
test.use({ baseURL: baseUrl() });
test.describe.configure({ mode: "parallel" });
test.beforeEach(async () => {
await start("battery-settings.evcc.yaml");
});
test.afterAll(async () => {
test.afterEach(async () => {
await stop();
});
@ -19,7 +21,7 @@ test.describe("battery settings", async () => {
const modal = page.getByTestId("battery-settings-modal");
await expectModalVisible(modal);
await expect(modal.getByRole("heading", { name: "Home Battery" })).toBeVisible();
await expect(modal.getByRole("link", { name: "Grid charging 🧪" })).not.toBeVisible();
await expect(modal.getByRole("link", { name: "Grid charging" })).toBeVisible();
await expect(modal).toContainText("Battery level: 50%");
await expect(modal).toContainText("10.0 kWh of 20.0 kWh");
});
@ -63,4 +65,27 @@ test.describe("battery settings", async () => {
await expect(modal).not.toBeVisible();
await expect(page.getByRole("button", { name: "grid charging when ≤ -10.0 ct" })).toBeVisible();
});
test("hold mode display", async ({ page }) => {
await page.goto("/");
await page.getByTestId("energyflow").click();
const discharge = page.getByTestId("energyflow-entry-batterydischarge");
const charge = page.getByTestId("energyflow-entry-batterycharge");
await expect(discharge).toContainText("Battery discharging");
await expect(charge).toContainText("Battery charging");
// enable discharge lock
await openTopNavigation(page);
await page.getByTestId("topnavigation-battery").click();
const modal = page.getByTestId("battery-settings-modal");
await expectModalVisible(modal);
await modal.getByLabel("Prevent discharge in fast mode and planned charging.").check();
await page.getByRole("button", { name: "Close" }).click();
await expectModalHidden(modal);
await expect(discharge).toContainText("Battery (locked)");
await expect(charge).toContainText("Battery charging");
});
});