const assert = require("node:assert/strict"); const fs = require("node:fs"); const path = require("node:path"); const test = require("node:test"); const root = path.resolve(__dirname, "..", ".."); const harness = fs.readFileSync(path.join( root, "scripts", "Test-LegacyPackageAppearanceSmoke.mjs"), "utf8"); const wrapper = fs.readFileSync(path.join( root, "scripts", "Invoke-LegacyPackageAppearanceSmoke.ps1"), "utf8"); test("appearance smoke uses two exact launches and six physical select changes", () => { assert.match(wrapper, /-BuildFlavor DebugAppX/u); assert.match(wrapper, /-DefinitionsOnly/u); assert.match(wrapper, /Start-ExactAppearanceApplication \$registration 1/u); assert.match(wrapper, /Start-ExactAppearanceApplication \$registration 2/u); assert.equal((wrapper.match(/Close-ExactAppearanceApplication \$/gu) || []).length, 2); assert.match(wrapper, /physicalSelectCount = 6/u); assert.match(harness, /nextExchangeSequence !== 5/u); assert.match(harness, /evidence\.exchanges\.length !== 4/u); assert.match(harness, /for \(const appearanceKey of \["colorTheme", "viewMode", "startWorkspace"\]\)/u); assert.match(harness, /trustedChange: true/u); assert.match(harness, /physicalKeyCounts:/u); assert.match(harness, /home: ack\.homeKeyCalls/u); assert.match(harness, /arrowDown: ack\.arrowDownKeyCalls/u); assert.match(harness, /enter: ack\.enterKeyCalls/u); assert.match(harness, /A native HTML