Dotfiles_ArchAP/tests/quickshell/test_lock_auth_gate.js

14 lines
795 B
JavaScript

const fs = require('fs');
const vm = require('vm');
const assert = require('assert');
const source = fs.readFileSync('quickshell/.config/quickshell/labfy-lock/AuthGate.js', 'utf8');
const context = vm.createContext({});
vm.runInContext(source, context);
const allowed = context.mayUnlock;
const Success = 0, Failed = 1, Error = 2, MaxTries = 3;
assert.equal(allowed(true, false, true, Success, Success), true);
for (const result of [Failed, Error, MaxTries])
assert.equal(allowed(true, false, true, result, Success), false);
assert.equal(allowed(true, true, true, Success, Success), false); // late result after abort
assert.equal(allowed(false, false, true, Success, Success), false); // inactive generation
assert.equal(allowed(true, false, false, Success, Success), false); // not secure