Skip to content

Commit 5508750

Browse files
committed
opi and rubik OD checks
1 parent ad615a7 commit 5508750

File tree

2 files changed

+114
-0
lines changed

2 files changed

+114
-0
lines changed
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,70 @@
11
import { expect } from "@playwright/test";
22
import { test } from "../fixtures";
33
import axios from "axios";
4+
import path from "path";
5+
6+
const fakeModelName = "FAKE-MODEL";
7+
const fakeLabels = "test, 1, woof";
8+
const newModelName = "foo-bar";
49

510
test.beforeEach(async ({ page }) => {
611
page.goto("/#/settings");
712
await axios.post("/override/platform", { platform: "opi" });
13+
await axios.post("/activateTestMode");
814
});
915

1016
test("testSettingsPage", async ({ page }) => {
1117
await expect(page.getByRole("main")).toContainText("Linux AARCH 64-bit with RK3588");
1218
await expect(page.getByText("Object Detection")).toBeVisible();
1319
});
20+
21+
test("Upload model", async ({ page }) => {
22+
const testsDir = process.env.TESTS_DIR;
23+
if (!testsDir) {
24+
throw new Error("TESTS_DIR is not set");
25+
}
26+
27+
await page.getByRole("button", { name: "Import Model" }).click();
28+
await page.getByRole("textbox", { name: "Labels" }).fill(fakeLabels);
29+
await page.getByRole("spinbutton", { name: "Width" }).fill("640");
30+
await page.getByRole("spinbutton", { name: "Height" }).fill("640");
31+
await page.getByTestId("import-version-select").click();
32+
await page.getByRole("option", { name: "YOLOv8" }).click();
33+
await page
34+
.getByRole("button", { name: "Model File Model File" })
35+
.setInputFiles(path.normalize(testsDir + "/tests/resources/" + fakeModelName + ".rknn"));
36+
await page.getByRole("button", { name: "Import Object Detection Model" }).click();
37+
38+
await page.goto("/#/settings");
39+
// TODO: replace FAKE-MODE with FAKE-MODEL once model import bugfix is merged
40+
const tableRow = page.getByTestId("model-table").locator("tr", { hasText: fakeModelName });
41+
42+
await expect(tableRow).toBeVisible();
43+
await expect(tableRow).toContainText(fakeLabels);
44+
});
45+
46+
test("Rename model", async ({ page }) => {
47+
// TODO: replace FAKE-MODE with FAKE-MODEL once model import bugfix is merged
48+
const tableRow = page.getByTestId("model-table").locator("tr", { hasText: fakeModelName });
49+
50+
await tableRow.getByRole("button", { name: "Rename Model" }).click();
51+
await page.getByRole("textbox", { name: "New Name New Name" }).fill(newModelName);
52+
await page.getByRole("button", { name: "Rename", exact: true }).click();
53+
54+
await page.reload();
55+
56+
const renamedRow = page.getByTestId("model-table").locator("tr", { hasText: newModelName });
57+
58+
await expect(renamedRow).toContainText(fakeLabels);
59+
});
60+
61+
test("Delete model", async ({ page }) => {
62+
const tableRow = page.getByTestId("model-table").locator("tr", { hasText: newModelName });
63+
64+
await tableRow.getByRole("button", { name: "Delete Model" }).click();
65+
await page.getByRole("button", { name: "Delete", exact: true }).click();
66+
67+
await page.reload();
68+
const deletedRow = page.getByTestId("model-table").locator("tr", { hasText: newModelName });
69+
await expect(deletedRow).toHaveCount(0);
70+
});
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,70 @@
11
import { expect } from "@playwright/test";
22
import { test } from "../fixtures";
33
import axios from "axios";
4+
import path from "path";
5+
6+
const fakeModelName = "FAKE-MODEL";
7+
const fakeLabels = "test, 1, woof";
8+
const newModelName = "foo-bar";
49

510
test.beforeEach(async ({ page }) => {
611
page.goto("/#/settings");
712
await axios.post("/override/platform", { platform: "rubik" });
13+
await axios.post("/activateTestMode");
814
});
915

1016
test("testSettingsPage", async ({ page }) => {
1117
await expect(page.getByRole("main")).toContainText("Linux AARCH 64-bit with QCS6490");
1218
await expect(page.getByText("Object Detection")).toBeVisible();
1319
});
20+
21+
test("Upload model", async ({ page }) => {
22+
const testsDir = process.env.TESTS_DIR;
23+
if (!testsDir) {
24+
throw new Error("TESTS_DIR is not set");
25+
}
26+
27+
await page.getByRole("button", { name: "Import Model" }).click();
28+
await page.getByRole("textbox", { name: "Labels" }).fill(fakeLabels);
29+
await page.getByRole("spinbutton", { name: "Width" }).fill("640");
30+
await page.getByRole("spinbutton", { name: "Height" }).fill("640");
31+
await page.getByTestId("import-version-select").click();
32+
await page.getByRole("option", { name: "YOLOv8" }).click();
33+
await page
34+
.getByRole("button", { name: "Model File Model File" })
35+
.setInputFiles(path.normalize(testsDir + "/tests/resources/" + fakeModelName + ".tflite"));
36+
await page.getByRole("button", { name: "Import Object Detection Model" }).click();
37+
38+
await page.goto("/#/settings");
39+
// TODO: replace FAKE-MODE with FAKE-MODEL once model import bugfix is merged
40+
const tableRow = page.getByTestId("model-table").locator("tr", { hasText: fakeModelName });
41+
42+
await expect(tableRow).toBeVisible();
43+
await expect(tableRow).toContainText(fakeLabels);
44+
});
45+
46+
test("Rename model", async ({ page }) => {
47+
// TODO: replace FAKE-MODE with FAKE-MODEL once model import bugfix is merged
48+
const tableRow = page.getByTestId("model-table").locator("tr", { hasText: fakeModelName });
49+
50+
await tableRow.getByRole("button", { name: "Rename Model" }).click();
51+
await page.getByRole("textbox", { name: "New Name New Name" }).fill(newModelName);
52+
await page.getByRole("button", { name: "Rename", exact: true }).click();
53+
54+
await page.reload();
55+
56+
const renamedRow = page.getByTestId("model-table").locator("tr", { hasText: newModelName });
57+
58+
await expect(renamedRow).toContainText(fakeLabels);
59+
});
60+
61+
test("Delete model", async ({ page }) => {
62+
const tableRow = page.getByTestId("model-table").locator("tr", { hasText: newModelName });
63+
64+
await tableRow.getByRole("button", { name: "Delete Model" }).click();
65+
await page.getByRole("button", { name: "Delete", exact: true }).click();
66+
67+
await page.reload();
68+
const deletedRow = page.getByTestId("model-table").locator("tr", { hasText: newModelName });
69+
await expect(deletedRow).toHaveCount(0);
70+
});

0 commit comments

Comments
 (0)