chore: add deprecated template test (#27193)

This commit is contained in:
Michael Geers 2026-02-03 09:34:21 +01:00 • committed by GitHub
parent 06f628ff0b
commit 42c588fd3f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 96 additions and 0 deletions

View file

@ -0,0 +1,18 @@
template: deprecated-meter
# deprecated: true
group: generic
products:
- description:
generic: Old Meter
params:
- name: usage
choice: ["grid"]
- name: power
description:
generic: Power
render: |
type: custom
power:
source: const
value: {{ .power }}

View file

@ -0,0 +1,18 @@
template: deprecated-meter
deprecated: true
group: generic
products:
- description:
generic: Deprecated Meter
params:
- name: usage
choice: ["grid"]
- name: power
description:
generic: Power
render: |
type: custom
power:
source: const
value: {{ .power }}

View file

@ -0,0 +1,60 @@
import { test, expect } from "@playwright/test";
import { start, stop, restart, baseUrl } from "./evcc";
import { expectModalVisible, expectModalHidden } from "./utils";
test.use({ baseURL: baseUrl() });
const flags = ["--disable-auth", "--template-type", "meter", "--template"];
const templateFlags = [...flags, "tests/config-deprecated-false.tpl.yaml"];
const deprecatedFlags = [...flags, "tests/config-deprecated-true.tpl.yaml"];
test.beforeAll(async () => {
await start(undefined, undefined, templateFlags);
});
test.afterAll(async () => {
await stop();
});
test.describe("deprecated template", async () => {
test("editable after deprecation", async ({ page }) => {
await page.goto("/#/config");
await page.getByRole("button", { name: "Add grid meter" }).click();
const meterModal = page.getByTestId("meter-modal");
await expectModalVisible(meterModal);
await meterModal.getByLabel("Manufacturer").selectOption("Old Meter");
await meterModal.getByLabel("Power").fill("5000");
await meterModal.getByRole("button", { name: "Save" }).click();
await expectModalHidden(meterModal);
await expect(page.getByTestId("grid")).toBeVisible();
await expect(page.getByTestId("grid")).toContainText("Grid meter");
await restart(undefined, deprecatedFlags);
await page.reload();
await expect(page.getByTestId("grid")).toBeVisible();
await page.getByTestId("grid").getByRole("button", { name: "edit" }).click();
await expectModalVisible(meterModal);
await expect(meterModal.getByLabel("Manufacturer")).toHaveValue("Old Meter");
await expect(meterModal.getByLabel("Power")).toHaveValue("5000");
await meterModal.getByRole("button", { name: "Save" }).click();
await expectModalHidden(meterModal);
await page.getByTestId("grid").getByRole("button", { name: "edit" }).click();
await expectModalVisible(meterModal);
await meterModal.getByRole("button", { name: "Delete" }).click();
await expectModalHidden(meterModal);
await expect(page.getByTestId("grid")).not.toBeVisible();
await page.getByRole("button", { name: "Add grid meter" }).click();
await expectModalVisible(meterModal);
const manufacturerSelect = meterModal.getByLabel("Manufacturer");
const options = await manufacturerSelect.locator("option").allTextContents();
expect(options).not.toContain("Old Meter");
expect(options).not.toContain("Deprecated Meter");
});
});