From 77619799131bbe51d91f21ff08263077d08d7a4c Mon Sep 17 00:00:00 2001 From: andig Date: Mon, 28 Jul 2025 10:01:55 +0200 Subject: [PATCH] Add co2 grid charge tests (#22444) Co-authored-by: Michael Geers --- tests/battery-settings-co2.evcc.yaml | 66 ++++++++++++++++++++++++++++ tests/battery-settings-co2.spec.ts | 35 +++++++++++++++ 2 files changed, 101 insertions(+) create mode 100755 tests/battery-settings-co2.evcc.yaml create mode 100644 tests/battery-settings-co2.spec.ts diff --git a/tests/battery-settings-co2.evcc.yaml b/tests/battery-settings-co2.evcc.yaml new file mode 100755 index 000000000..67ca4ce0b --- /dev/null +++ b/tests/battery-settings-co2.evcc.yaml @@ -0,0 +1,66 @@ +interval: 0.1s + +site: + title: Battery Settings + meters: + grid: grid + pv: pv + battery: battery + +meters: + - name: grid + type: custom + power: + source: const + value: 1000 + - name: pv + type: custom + power: + source: const + value: 2000 + - name: battery + type: custom + power: + source: const + value: -1000 + soc: + source: const + value: 50 + capacity: 20 + batterymode: + source: js + vm: shared + script: | + 1 + +loadpoints: + - title: Carport + charger: charger + mode: now + +chargers: + - name: charger + type: custom + enable: + source: js + script: + enabled: + source: js + script: | + true + status: + source: js + script: | + "B" + maxcurrent: + source: js + script: | + 16 + +tariffs: + currency: EUR + co2: + type: template + template: demo-co2-forecast + base: 80.7 + variation: 1.07 diff --git a/tests/battery-settings-co2.spec.ts b/tests/battery-settings-co2.spec.ts new file mode 100644 index 000000000..474904aee --- /dev/null +++ b/tests/battery-settings-co2.spec.ts @@ -0,0 +1,35 @@ +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 () => { + await start("battery-settings-co2.evcc.yaml"); +}); +test.afterAll(async () => { + await stop(); +}); + +test.describe("battery settings co2", async () => { + test("grid charging", async ({ page }) => { + await page.goto("/"); + await openTopNavigation(page); + await page.getByTestId("topnavigation-battery").click(); + const modal = page.getByTestId("battery-settings-modal"); + await expectModalVisible(modal); + + await modal.getByRole("link", { name: "Grid charging" }).click(); + await modal.getByLabel("CO₂ limit").selectOption({ label: "≤ 150 g/kWh" }); + await expect(modal).toContainText("20 g – 150 g"); + await page.getByRole("button", { name: "Close" }).click(); + await expectModalHidden(modal); + await page.getByTestId("energyflow").click(); + await page.getByRole("button", { name: "grid charging active (≤ 150 g)" }).click(); + await expectModalVisible(modal); + await modal.getByLabel("CO₂ limit").selectOption({ label: "≤ 40 g/kWh" }); + await modal.getByRole("button", { name: "Close" }).click(); + await expectModalHidden(modal); + await expect(modal).not.toBeVisible(); + await expect(page.getByRole("button", { name: "grid charging when ≤ 40 g" })).toBeVisible(); + }); +});