51 lines
2.0 KiB
JavaScript
51 lines
2.0 KiB
JavaScript
import { chromium } from "playwright";
|
|
|
|
const HA = "http://homeassistant-dev:8123";
|
|
const REFRESH = process.env.HA_REFRESH_TOKEN;
|
|
if (!REFRESH) { console.error("Set HA_REFRESH_TOKEN env var"); process.exit(1); }
|
|
|
|
const browser = await chromium.connect("ws://localhost:3000");
|
|
const ctx = await browser.newContext({ viewport: { width: 1280, height: 900 }, locale: "de" });
|
|
const page = await ctx.newPage();
|
|
|
|
await page.goto(HA);
|
|
await page.waitForTimeout(1000);
|
|
await page.evaluate((refresh) => {
|
|
localStorage.setItem("hassTokens", JSON.stringify({
|
|
hassUrl: "http://homeassistant-dev:8123",
|
|
clientId: "http://homeassistant-dev:8123/",
|
|
refresh_token: refresh, access_token: "", token_type: "Bearer",
|
|
expires_in: 1800, expires: 0,
|
|
}));
|
|
}, REFRESH);
|
|
|
|
// Test 1: Deep-link with valid entry_id + task_id
|
|
console.log("=== Test 1: Valid deep-link ===");
|
|
await page.goto(HA + "/maintenance-supporter?entry_id=01KJTX1VHBT6TN5JMF9W6WADTJ&task_id=49c49ecf36204031be94c8f132aa6479");
|
|
await page.waitForTimeout(6000);
|
|
var url1 = page.url();
|
|
console.log("URL after deep-link:", url1);
|
|
console.log("Query params cleaned:", !url1.includes("entry_id"));
|
|
await page.screenshot({ path: "screenshots/deeplink_valid.png" });
|
|
|
|
// Test 2: Deep-link with invalid entry_id
|
|
console.log("\n=== Test 2: Invalid entry_id ===");
|
|
await page.goto(HA + "/maintenance-supporter?entry_id=NONEXISTENT");
|
|
await page.waitForTimeout(6000);
|
|
var url2 = page.url();
|
|
console.log("URL after invalid deep-link:", url2);
|
|
console.log("Query params cleaned:", !url2.includes("entry_id"));
|
|
await page.screenshot({ path: "screenshots/deeplink_invalid.png" });
|
|
|
|
// Test 3: Deep-link with valid entry but invalid task
|
|
console.log("\n=== Test 3: Invalid task_id ===");
|
|
await page.goto(HA + "/maintenance-supporter?entry_id=01KJTX1VHBT6TN5JMF9W6WADTJ&task_id=NONEXISTENT");
|
|
await page.waitForTimeout(6000);
|
|
var url3 = page.url();
|
|
console.log("URL after invalid task deep-link:", url3);
|
|
await page.screenshot({ path: "screenshots/deeplink_invalid_task.png" });
|
|
|
|
await ctx.close();
|
|
await browser.close();
|
|
console.log("\nDone!");
|