var test = require("node:test");
var assert = require("node:assert/strict");
var fs = require("node:fs");
var path = require("node:path");
function loadPlaywright() {
try { return require("playwright"); } catch (e) { return null; }
}
test("Home no-project overlay owns focus and restores covered workspace semantics exactly", async function (t) {
var playwright = loadPlaywright();
if (!playwright) { t.skip("Playwright is not installed"); return; }
var browser;
try { browser = await playwright.chromium.launch(); } catch (e) { t.skip("Chromium is not available: " + e.message); return; }
t.after(function () { return browser.close(); });
var page = await browser.newPage();
await page.setContent('' +
'' +
'
' +
'' +
'');
var moduleSource = fs.readFileSync(path.join(__dirname, "../lib/public/modules/home-project-empty-access.js"), "utf8");
moduleSource = moduleSource.replace(/export function /g, "function ") +
'\nwindow.homeProjectEmptyAccess = { setCoverage: setHomeProjectEmptyCoverage, bindDismissal: bindHomeProjectEmptyDismissal };';
await page.addScriptTag({ content: moduleSource });
var covered = await page.evaluate(function () {
var access = window.homeProjectEmptyAccess;
var dismissed = 0;
access.bindDismissal(document.getElementById("home-sidebar"), function () { dismissed++; });
document.getElementById("covered-action").focus();
access.setCoverage(document, true);
document.getElementById("home-project-empty-title").focus();
document.getElementById("covered-action").focus();
document.getElementById("mate-label").click();
document.getElementById("home-nav-projects").click();
return {
active: document.activeElement.id,
conversationInert: document.getElementById("home-conversation-region").inert,
conversationHidden: document.getElementById("home-conversation-region").getAttribute("aria-hidden"),
toolInert: document.getElementById("home-tool-workbench").inert,
toolHidden: document.getElementById("home-tool-workbench").getAttribute("aria-hidden"),
dismissed: dismissed,
};
});
assert.deepEqual(covered, {
active: "home-project-empty-title",
conversationInert: true,
conversationHidden: "true",
toolInert: true,
toolHidden: "true",
dismissed: 1,
});
var restored = await page.evaluate(function () {
window.homeProjectEmptyAccess.setCoverage(document, false);
document.getElementById("covered-action").focus();
return {
active: document.activeElement.id,
conversationInert: document.getElementById("home-conversation-region").inert,
conversationHasInert: document.getElementById("home-conversation-region").hasAttribute("inert"),
conversationHidden: document.getElementById("home-conversation-region").getAttribute("aria-hidden"),
dividerInert: document.getElementById("home-dock-divider").inert,
dividerHasInert: document.getElementById("home-dock-divider").hasAttribute("inert"),
dividerHidden: document.getElementById("home-dock-divider").getAttribute("aria-hidden"),
toolInert: document.getElementById("home-tool-workbench").inert,
toolHidden: document.getElementById("home-tool-workbench").getAttribute("aria-hidden"),
};
});
assert.deepEqual(restored, {
active: "covered-action",
conversationInert: false,
conversationHasInert: false,
conversationHidden: null,
dividerInert: true,
dividerHasInert: true,
dividerHidden: "false",
toolInert: false,
toolHidden: "false",
});
});