Files
NetMesh/electron/bridges/appLockWindowsHelloHelper.test.cjs

37 lines
1.2 KiB
JavaScript
Raw Permalink Normal View History

const test = require("node:test");
const assert = require("node:assert/strict");
const fs = require("node:fs");
const path = require("node:path");
const helperSource = fs.readFileSync(
path.join(__dirname, "windowsHelloHelper", "NetcattyWindowsHello.cpp"),
"utf8",
);
test("Windows Hello helper uses desktop HWND interop", () => {
assert.match(helperSource, /IUserConsentVerifierInterop/);
assert.match(helperSource, /RequestVerificationForWindowAsync/);
assert.match(helperSource, /--hwnd/);
assert.doesNotMatch(helperSource, /UserConsentVerifier::RequestVerificationAsync/);
});
test("Windows Hello helper maps all expected verifier states", () => {
for (const state of [
"Available",
"DeviceNotPresent",
"NotConfiguredForUser",
"DisabledByPolicy",
"DeviceBusy",
"RetriesExhausted",
"Canceled",
"Verified",
]) {
assert.match(helperSource, new RegExp(state));
}
});
test("Windows Hello helper uses a multi-threaded apartment for blocking waits", () => {
assert.match(helperSource, /init_apartment\(winrt::apartment_type::multi_threaded\)/);
assert.doesNotMatch(helperSource, /init_apartment\(winrt::apartment_type::single_threaded\)/);
});