const { test } = require('node:test'); const assert = require('node:assert/strict'); const fs = require('node:fs'); const vm = require('node:vm'); test('modal shortcuts require exactly Ctrl+Shift+D or Ctrl+Shift+F', () => { let listener, debug = 0, favorites = 0; const modal = { hidden: false }; const context = vm.createContext({}); vm.runInContext(fs.readFileSync('src/content/modal.js', 'utf8'), context); const app = context.createContentModal({ MODAL_ID: 'modal', ESCAPE_LISTENER_KEY: 'keys', toggleDebugPanel: () => debug++, openBookmarkPicker: () => favorites++, environment: { window: {}, document: { getElementById: () => modal, addEventListener: (name, fn) => { if (name === 'keydown') listener = fn; } } } }); app.ensureEscapeKeyHandler(); function press(key, extra = {}) { let prevented = false; listener({ key, ctrlKey: true, shiftKey: true, preventDefault() { prevented = true; }, stopPropagation() {}, ...extra }); return prevented; } assert.equal(press('D'), true); assert.equal(press('f'), true); assert.equal(debug, 1); assert.equal(favorites, 1); for (const key of ['d', 'f']) { assert.equal(press(key, { shiftKey: false }), false); assert.equal(press(key, { ctrlKey: false }), false); assert.equal(press(key, { altKey: true }), false); assert.equal(press(key, { metaKey: true }), false); press(key, { repeat: true }); } modal.hidden = true; assert.equal(press('d'), false); assert.equal(press('f'), false); assert.equal(debug, 1); assert.equal(favorites, 1); });