82 lines
2.5 KiB
TypeScript
82 lines
2.5 KiB
TypeScript
import { test, expect } from "@playwright/test";
|
||
import { start, stop, baseUrl } from "./evcc";
|
||
import { expectModalVisible } from "./utils";
|
||
import {
|
||
startSimulator,
|
||
stopSimulator,
|
||
simulatorUrl,
|
||
simulatorConfig,
|
||
simulatorApply,
|
||
} from "./simulator";
|
||
|
||
test.use({ baseURL: baseUrl() });
|
||
|
||
test.beforeAll(async () => {
|
||
await startSimulator();
|
||
});
|
||
test.afterAll(async () => {
|
||
await stopSimulator();
|
||
});
|
||
|
||
test.beforeEach(async ({ page }) => {
|
||
await start(simulatorConfig());
|
||
|
||
// start disconnected
|
||
await page.goto(simulatorUrl());
|
||
await page.getByTestId("loadpoint0").getByText("A (disconnected)").click();
|
||
await simulatorApply(page);
|
||
});
|
||
|
||
test.afterEach(async () => {
|
||
await stop();
|
||
});
|
||
|
||
test("soc range", async ({ page }) => {
|
||
const loadpoint = page.getByTestId("loadpoint0");
|
||
const vehicle = page.getByTestId("vehicle0");
|
||
|
||
// connect vehicle with 20% SoC
|
||
await page.goto(simulatorUrl());
|
||
await vehicle.getByLabel("SoC").fill("20");
|
||
await loadpoint.getByLabel("Energy").fill("0");
|
||
await loadpoint.getByText("B (connected)").click();
|
||
await simulatorApply(page);
|
||
|
||
await page.goto("/");
|
||
await expect(page.getByTestId("vehicle-status")).toHaveText("Connected.");
|
||
await expect(page.getByTestId("current-soc")).toContainText("20");
|
||
|
||
// start charging
|
||
await page.goto(simulatorUrl());
|
||
await loadpoint.getByLabel("Power").fill("6000");
|
||
await loadpoint.getByText("C (charging)").click();
|
||
await loadpoint.getByText("Enabled").check();
|
||
await simulatorApply(page);
|
||
|
||
await page.goto("/");
|
||
await expect(page.getByTestId("vehicle-status")).toContainText("Charging");
|
||
|
||
// update SoC to 80% and energy to 10 kWh
|
||
await page.goto(simulatorUrl());
|
||
await loadpoint.getByLabel("Energy").fill("10");
|
||
await vehicle.getByLabel("SoC").fill("80");
|
||
await simulatorApply(page);
|
||
|
||
await page.goto("/");
|
||
await expect(page.getByTestId("current-soc")).toContainText("80");
|
||
|
||
// disconnect
|
||
await page.goto(simulatorUrl());
|
||
await loadpoint.getByText("A (disconnected)").click();
|
||
await simulatorApply(page);
|
||
await page.goto("/");
|
||
await expect(page.getByTestId("vehicle-status")).toHaveText("Disconnected.");
|
||
|
||
// verify session soc range
|
||
await page.goto("/#/sessions");
|
||
await expect(page.getByTestId("sessions-entry")).toHaveCount(1);
|
||
await page.getByTestId("sessions-entry").click();
|
||
const modal = page.getByTestId("session-details");
|
||
await expectModalVisible(modal);
|
||
await expect(modal.getByTestId("session-details-soc")).toContainText("20 – 80%");
|
||
});
|