diff options
Diffstat (limited to 'test')
35 files changed, 1054 insertions, 1054 deletions
| diff --git a/test/ajv-schemas.test.js b/test/ajv-schemas.test.js index 49545c17..102868dc 100644 --- a/test/ajv-schemas.test.js +++ b/test/ajv-schemas.test.js @@ -59,8 +59,8 @@ describe('Ajv schema compilation', () => {                  logger: {                      log,                      warn: log, -                    error: log -                } +                    error: log, +                },              });              standaloneCode(ajv);              if (messages.length > 0) { diff --git a/test/anki-template-renderer.test.js b/test/anki-template-renderer.test.js index d8d2a3b5..bf18dd0d 100644 --- a/test/anki-template-renderer.test.js +++ b/test/anki-template-renderer.test.js @@ -34,7 +34,7 @@ describe('AnkiTemplateRenderer', () => {                  tags: [],                  stats: {},                  definitions: [], -                frequencies: [] +                frequencies: [],              },              resultOutputMode: 'split',              mode: 'test', @@ -47,43 +47,43 @@ describe('AnkiTemplateRenderer', () => {                  fullQuery: 'query.full',                  sentence: {                      text: 'sentence.query.full', -                    offset: 9 -                } +                    offset: 9, +                },              }, -            media: void 0 -        } +            media: void 0, +        },      };      const testCases = [          {              name: 'regexMatch 1',              template: '{{#regexMatch "test" "gu"}}this is a test of regexMatch{{/regexMatch}}', -            result: 'test' +            result: 'test',          },          {              name: 'regexMatch 2',              template: '{{regexMatch "test" "gu" "this is a test of regexMatch"}}', -            result: 'test' +            result: 'test',          },          {              name: 'regexMatch 3',              template: '{{#if (regexMatch "test" "gu" "this is a test of regexMatch")}}true{{else}}false{{/if}}', -            result: 'true' +            result: 'true',          },          {              name: 'regexReplace 1',              template: '{{#regexReplace "test" "TEST" "gu"}}this is a test of regexReplace{{/regexReplace}}', -            result: 'this is a TEST of regexReplace' +            result: 'this is a TEST of regexReplace',          },          {              name: 'regexReplace 2',              template: '{{regexReplace "test" "TEST" "gu" "this is a test of regexReplace"}}', -            result: 'this is a TEST of regexReplace' +            result: 'this is a TEST of regexReplace',          },          {              name: 'regexReplace 3',              template: '{{#if (regexReplace "test" "" "gu" "test")}}true{{else}}false{{/if}}', -            result: 'false' -        } +            result: 'false', +        },      ];      describe.each(testCases)('$name', ({template, result: expectedResult}) => {          test('Test', ({expect, ankiTemplateRenderer}) => { diff --git a/test/cache-map.test.js b/test/cache-map.test.js index e7a8b836..2a3f5377 100644 --- a/test/cache-map.test.js +++ b/test/cache-map.test.js @@ -38,7 +38,7 @@ describe('CacheMap', () => {              {                  maxSize: 1,                  expectedSize: 0, -                calls: [] +                calls: [],              },              {                  maxSize: 10, @@ -48,8 +48,8 @@ describe('CacheMap', () => {                      {func: 'has', args: ['a1-b-c'],     returnValue: false},                      {func: 'set', args: ['a1-b-c', 32], returnValue: void 0},                      {func: 'get', args: ['a1-b-c'],     returnValue: 32}, -                    {func: 'has', args: ['a1-b-c'],     returnValue: true} -                ] +                    {func: 'has', args: ['a1-b-c'],     returnValue: true}, +                ],              },              {                  maxSize: 10, @@ -60,8 +60,8 @@ describe('CacheMap', () => {                      {func: 'set', args: ['a1-b-c', 64], returnValue: void 0},                      {func: 'get', args: ['a1-b-c'],     returnValue: 64},                      {func: 'set', args: ['a2-b-c', 96], returnValue: void 0}, -                    {func: 'get', args: ['a2-b-c'],     returnValue: 96} -                ] +                    {func: 'get', args: ['a2-b-c'],     returnValue: 96}, +                ],              },              {                  maxSize: 2, @@ -81,9 +81,9 @@ describe('CacheMap', () => {                      {func: 'set', args: ['a3-b-c', 3], returnValue: void 0},                      {func: 'has', args: ['a1-b-c'],    returnValue: false},                      {func: 'has', args: ['a2-b-c'],    returnValue: true}, -                    {func: 'has', args: ['a3-b-c'],    returnValue: true} -                ] -            } +                    {func: 'has', args: ['a3-b-c'],    returnValue: true}, +                ], +            },          ];          /* eslint-enable @stylistic/no-multi-spaces */ diff --git a/test/core.test.js b/test/core.test.js index 178f509a..3a9d1995 100644 --- a/test/core.test.js +++ b/test/core.test.js @@ -32,7 +32,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 0,                      expectedOverrideCount: 0, -                    expectedEventOccurred: false +                    expectedEventOccurred: false,                  },                  {                      operation: 'set.defaultValue', @@ -40,7 +40,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 1,                      expectedValue: 1,                      expectedOverrideCount: 0, -                    expectedEventOccurred: true +                    expectedEventOccurred: true,                  },                  {                      operation: 'set.defaultValue', @@ -48,7 +48,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 1,                      expectedValue: 1,                      expectedOverrideCount: 0, -                    expectedEventOccurred: false +                    expectedEventOccurred: false,                  },                  {                      operation: 'set.defaultValue', @@ -56,7 +56,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 0,                      expectedOverrideCount: 0, -                    expectedEventOccurred: true +                    expectedEventOccurred: true,                  },                  {                      operation: 'setOverride', @@ -64,7 +64,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 8,                      expectedOverrideCount: 1, -                    expectedEventOccurred: true +                    expectedEventOccurred: true,                  },                  {                      operation: 'setOverride', @@ -72,7 +72,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 8,                      expectedOverrideCount: 2, -                    expectedEventOccurred: false +                    expectedEventOccurred: false,                  },                  {                      operation: 'setOverride', @@ -80,7 +80,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 32,                      expectedOverrideCount: 3, -                    expectedEventOccurred: true +                    expectedEventOccurred: true,                  },                  {                      operation: 'setOverride', @@ -88,7 +88,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 32,                      expectedOverrideCount: 4, -                    expectedEventOccurred: false +                    expectedEventOccurred: false,                  },                  {                      operation: 'clearOverride', @@ -96,7 +96,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 32,                      expectedOverrideCount: 3, -                    expectedEventOccurred: false +                    expectedEventOccurred: false,                  },                  {                      operation: 'clearOverride', @@ -104,7 +104,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 32,                      expectedOverrideCount: 2, -                    expectedEventOccurred: false +                    expectedEventOccurred: false,                  },                  {                      operation: 'clearOverride', @@ -112,7 +112,7 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 64,                      expectedOverrideCount: 1, -                    expectedEventOccurred: true +                    expectedEventOccurred: true,                  },                  {                      operation: 'clearOverride', @@ -120,10 +120,10 @@ describe('DynamicProperty', () => {                      expectedDefaultValue: 0,                      expectedValue: 0,                      expectedOverrideCount: 0, -                    expectedEventOccurred: true -                } -            ] -        } +                    expectedEventOccurred: true, +                }, +            ], +        },      ];      describe.each(data)('Test DynamicProperty($initialValue)', ({initialValue, operations}) => { @@ -156,110 +156,110 @@ describe('deepEqual', () => {          {              value1: 0,              value2: 0, -            expected: true +            expected: true,          },          {              value1: null,              value2: null, -            expected: true +            expected: true,          },          {              value1: 'test',              value2: 'test', -            expected: true +            expected: true,          },          {              value1: true,              value2: true, -            expected: true +            expected: true,          },          {              value1: 0,              value2: 1, -            expected: false +            expected: false,          },          {              value1: null,              value2: false, -            expected: false +            expected: false,          },          {              value1: 'test1',              value2: 'test2', -            expected: false +            expected: false,          },          {              value1: true,              value2: false, -            expected: false -        } +            expected: false, +        },      ];      /** @type {import('test/core').DeepEqualTestData} */      const simpleObjectTestsData = [          {              value1: {},              value2: {}, -            expected: true +            expected: true,          },          {              value1: {},              value2: [], -            expected: false +            expected: false,          },          {              value1: [],              value2: [], -            expected: true +            expected: true,          },          {              value1: {},              value2: null, -            expected: false -        } +            expected: false, +        },      ];      /** @type {import('test/core').DeepEqualTestData} */      const complexObjectTestsData = [          {              value1: [1],              value2: [], -            expected: false +            expected: false,          },          {              value1: [1],              value2: [1], -            expected: true +            expected: true,          },          {              value1: [1],              value2: [2], -            expected: false +            expected: false,          },          {              value1: {},              value2: {test: 1}, -            expected: false +            expected: false,          },          {              value1: {test: 1},              value2: {test: 1}, -            expected: true +            expected: true,          },          {              value1: {test: 1},              value2: {test: {test2: false}}, -            expected: false +            expected: false,          },          {              value1: {test: {test2: true}},              value2: {test: {test2: false}}, -            expected: false +            expected: false,          },          {              value1: {test: {test2: [true]}},              value2: {test: {test2: [true]}}, -            expected: true -        } +            expected: true, +        },      ];      /** @type {import('test/core').DeepEqualTestData} */      const recursiveTestsData = [ @@ -274,8 +274,8 @@ describe('deepEqual', () => {                  x.x = x;                  return x;              })(), -            expected: false -        } +            expected: false, +        },      ];      describe('simple tests', () => {          test.each(simpleTestsData)('deepEqual($value1, $value2) -> $expected', ({value1, value2, expected}) => { diff --git a/test/data/html/js/html-test-utilities.js b/test/data/html/js/html-test-utilities.js index 34e58807..c6011e6d 100644 --- a/test/data/html/js/html-test-utilities.js +++ b/test/data/html/js/html-test-utilities.js @@ -161,7 +161,7 @@ class HtmlTestUtilities {          if (template !== null && templateContentContainer !== null) {              const mode = (container instanceof HTMLElement ? container.dataset.shadowMode : void 0);              const shadow = templateContentContainer.attachShadow({ -                mode: (mode === 'open' || mode === 'closed' ? mode : 'open') +                mode: (mode === 'open' || mode === 'closed' ? mode : 'open'),              });              const containerStyles = document.querySelector('#container-styles'); diff --git a/test/database.test.js b/test/database.test.js index 9d57ecab..6eed863a 100644 --- a/test/database.test.js +++ b/test/database.test.js @@ -115,7 +115,7 @@ describe('Database', () => {          const title = testDictionaryIndex.title;          const titles = new Map([ -            [title, {priority: 0, allowSecondarySearches: false}] +            [title, {priority: 0, allowSecondarySearches: false}],          ]);          // Setup database @@ -156,7 +156,7 @@ describe('Database', () => {              {name: 'invalid-dictionary3'},              {name: 'invalid-dictionary4'},              {name: 'invalid-dictionary5'}, -            {name: 'invalid-dictionary6'} +            {name: 'invalid-dictionary6'},          ];          describe.each(invalidDictionaries)('Invalid dictionary: $name', ({name}) => {              test('Has invalid data', async ({expect}) => { @@ -185,7 +185,7 @@ describe('Database', () => {              const title = testDictionaryIndex.title;              const titles = new Map([ -                [title, {priority: 0, allowSecondarySearches: false}] +                [title, {priority: 0, allowSecondarySearches: false}],              ]);              // Setup database @@ -198,7 +198,7 @@ describe('Database', () => {              const {result: importDictionaryResult, errors: importDictionaryErrors} = await dictionaryImporter.importDictionary(                  dictionaryDatabase,                  testDictionarySource, -                {prefixWildcardsSupported: true} +                {prefixWildcardsSupported: true},              );              if (importDictionaryResult) { @@ -309,7 +309,7 @@ describe('Database', () => {          /** @type {{clearMethod: 'purge'|'delete'}[]} */          const cleanupTestCases = [              {clearMethod: 'purge'}, -            {clearMethod: 'delete'} +            {clearMethod: 'delete'},          ];          describe.each(cleanupTestCases)('Testing cleanup method $clearMethod', ({clearMethod}) => {              test('Import data and test', async ({expect}) => { @@ -336,7 +336,7 @@ describe('Database', () => {                              await dictionaryDatabase.deleteDictionary(                                  testDictionaryIndex.title,                                  1000, -                                () => { progressEvent2 = true; } +                                () => { progressEvent2 = true; },                              );                              expect(progressEvent2).toBe(true);                          } @@ -351,7 +351,7 @@ describe('Database', () => {                  /** @type {import('dictionary-database').DictionaryCounts} */                  const countsExpected = {                      counts: [], -                    total: {kanji: 0, kanjiMeta: 0, terms: 0, termMeta: 0, tagMeta: 0, media: 0} +                    total: {kanji: 0, kanjiMeta: 0, terms: 0, termMeta: 0, tagMeta: 0, media: 0},                  };                  expect.soft(counts).toStrictEqual(countsExpected); diff --git a/test/dictionary-data-validate.test.js b/test/dictionary-data-validate.test.js index a8d9f1ab..30f67bf5 100644 --- a/test/dictionary-data-validate.test.js +++ b/test/dictionary-data-validate.test.js @@ -42,7 +42,7 @@ describe('Dictionary validation', () => {          {name: 'invalid-dictionary3', valid: false},          {name: 'invalid-dictionary4', valid: false},          {name: 'invalid-dictionary5', valid: false}, -        {name: 'invalid-dictionary6', valid: false} +        {name: 'invalid-dictionary6', valid: false},      ];      const schemas = dictionaryValidate.getSchemas();      describe.each(testCases)('Test dictionary $name', ({name, valid}) => { diff --git a/test/dictionary-data.test.js b/test/dictionary-data.test.js index bf2d0ace..e55496e4 100644 --- a/test/dictionary-data.test.js +++ b/test/dictionary-data.test.js @@ -50,7 +50,7 @@ describe('Dictionary data', () => {          data,          expected1: expectedResults1[i],          expected2: expectedResults2[i], -        expected3: expectedResults3[i] +        expected3: expectedResults3[i],      }));      describe.each(testCases)('Test %#: $data.name', ({data, expected1, expected2, expected3}) => {          test('Test', async ({window, translator, expect}) => { diff --git a/test/document-util.test.js b/test/document-util.test.js index 0f541e12..8add2b97 100644 --- a/test/document-util.test.js +++ b/test/document-util.test.js @@ -135,7 +135,7 @@ describe('Document utility tests', () => {                          sentenceScanExtent,                          sentence,                          hasImposter, -                        terminateAtNewlines +                        terminateAtNewlines,                      } = parseJson(/** @type {string} */ (testElement.dataset.testData));                      const elementFromPointValue = querySelectorChildOrSelf(testElement, elementFromPointSelector); @@ -174,8 +174,8 @@ describe('Document utility tests', () => {                                       * @param {number} index                                       * @returns {DOMRect}                                       */ -                                    item: function item(index) { return this[index]; } -                                } +                                    item: function item(index) { return this[index]; }, +                                },                              );                              return domRectList;                          }; @@ -186,7 +186,7 @@ describe('Document utility tests', () => {                      const textSourceGenerator = new TextSourceGenerator();                      const source = textSourceGenerator.getRangeFromPoint(0, 0, {                          deepContentScan: false, -                        normalizeCssZoom: true +                        normalizeCssZoom: true,                      });                      switch (resultType) {                          case 'TextSourceRange': @@ -229,7 +229,7 @@ describe('Document utility tests', () => {                          terminateAtNewlines2,                          terminatorMap,                          forwardQuoteMap, -                        backwardQuoteMap +                        backwardQuoteMap,                      ).text;                      expect(sentenceActual).toStrictEqual(sentence); @@ -257,7 +257,7 @@ describe('Document utility tests', () => {                          expectedResultNodeSelector,                          expectedResultNodeIsText,                          expectedResultOffset, -                        expectedResultContent +                        expectedResultContent,                      } = parseJson(/** @type {string} */ (testElement.dataset.testData));                      /** @type {?Node} */ diff --git a/test/dom-text-scanner.test.js b/test/dom-text-scanner.test.js index 4ec3a44d..e9d3405c 100644 --- a/test/dom-text-scanner.test.js +++ b/test/dom-text-scanner.test.js @@ -105,7 +105,7 @@ function createAbsoluteGetComputedStyle(window) {                      result = result.replace(/([-+]?\d(?:\.\d)?(?:[eE][-+]?\d+)?)em/g, replacer);                  }                  return result; -            } +            },          });      };  } @@ -138,8 +138,8 @@ describe('DOMTextScanner', () => {                          node: expectedNodeSelector,                          offset: expectedOffset,                          content: expectedContent, -                        remainder: expectedRemainder -                    } +                        remainder: expectedRemainder, +                    },                  } = testDataItem;                  const node = querySelectorTextNode(testElement, nodeSelector); diff --git a/test/eslint-config.test.js b/test/eslint-config.test.js index 6ea6715a..3b93fa98 100644 --- a/test/eslint-config.test.js +++ b/test/eslint-config.test.js @@ -37,7 +37,7 @@ async function getDependencies(scriptPaths) {          target: 'es2022',          format: 'esm',          write: false, -        metafile: true +        metafile: true,      });      const dependencies = Object.keys(v.metafile.inputs);      const stringComparer = new Intl.Collator('en-US'); // Invariant locale @@ -90,35 +90,35 @@ const targets = [      {          name: 'sandbox',          paths: [ -            'ext/js/templates/template-renderer-frame-main.js' +            'ext/js/templates/template-renderer-frame-main.js',          ],          /** @type {import('test/eslint-config').MinimalEslintConfigEnv} */          env: { -            webextensions: false -        } +            webextensions: false, +        },      },      {          name: 'worker',          paths: [ -            'ext/js/dictionary/dictionary-worker-main.js' +            'ext/js/dictionary/dictionary-worker-main.js',          ],          /** @type {import('test/eslint-config').MinimalEslintConfigEnv} */          env: {              browser: false, -            worker: true -        } +            worker: true, +        },      },      {          name: 'serviceworker',          paths: [ -            'ext/js/background/background-main.js' +            'ext/js/background/background-main.js',          ],          /** @type {import('test/eslint-config').MinimalEslintConfigEnv} */          env: {              browser: false, -            serviceworker: true -        } -    } +            serviceworker: true, +        }, +    },  ];  describe('Eslint configuration', () => { diff --git a/test/fixtures/anki-template-renderer-test.js b/test/fixtures/anki-template-renderer-test.js index 1e3ec74e..1ad72d7f 100644 --- a/test/fixtures/anki-template-renderer-test.js +++ b/test/fixtures/anki-template-renderer-test.js @@ -38,7 +38,7 @@ export async function createAnkiTemplateRendererTest() {              // It is needed for DOM access for structured content.              void window;              await use(ankiTemplateRenderer); -        } +        },      });      return result;  } diff --git a/test/fixtures/dom-test.js b/test/fixtures/dom-test.js index 364612f6..55353a5d 100644 --- a/test/fixtures/dom-test.js +++ b/test/fixtures/dom-test.js @@ -31,7 +31,7 @@ function prepareWindow(window) {          /** @returns {string} */          get() { return this.textContent; },          /** @param {string} value */ -        set(value) { this.textContent = value; } +        set(value) { this.textContent = value; },      });      // Placeholder for feature detection @@ -51,7 +51,7 @@ export async function setupDomTest(htmlFilePath) {      prepareWindow(window);      return {          window, -        teardown: (global) => environment.teardown(global) +        teardown: (global) => environment.teardown(global),      };  } @@ -73,6 +73,6 @@ export function createDomTest(htmlFilePath) {              } finally {                  await environment.teardown(global);              } -        } +        },      });  } diff --git a/test/fixtures/language-transformer-test.js b/test/fixtures/language-transformer-test.js index 1701b4f9..69cdc230 100644 --- a/test/fixtures/language-transformer-test.js +++ b/test/fixtures/language-transformer-test.js @@ -48,7 +48,7 @@ function hasTermReasons(languageTransformer, source, expectedTerm, expectedCondi              return {                  has: true,                  reasons: trace.map((frame) => frame.transform), -                rules: conditions +                rules: conditions,              };          }      } diff --git a/test/fixtures/translator-test.js b/test/fixtures/translator-test.js index 9f1e87df..5c024472 100644 --- a/test/fixtures/translator-test.js +++ b/test/fixtures/translator-test.js @@ -49,7 +49,7 @@ export async function createTranslatorContext(dictionaryDirectory, dictionaryNam      const {errors} = await dictionaryImporter.importDictionary(          dictionaryDatabase,          testDictionaryData, -        {prefixWildcardsSupported: true} +        {prefixWildcardsSupported: true},      );      expect(errors.length).toEqual(0); @@ -75,7 +75,7 @@ export async function createTranslatorTest(htmlFilePath, dictionaryDirectory, di      const result = test.extend({          window: async ({window}, use) => { await use(window); },          // eslint-disable-next-line no-empty-pattern -        translator: async ({}, use) => { await use(translator); } +        translator: async ({}, use) => { await use(translator); },      });      return result;  } diff --git a/test/handlebars.test.js b/test/handlebars.test.js index 8a566f4c..65e3d996 100644 --- a/test/handlebars.test.js +++ b/test/handlebars.test.js @@ -39,7 +39,7 @@ describe('Handlebars', () => {          const template = '{{~test1~}}';          const data = { -            test1: '<div style="font-size: 4em;">Test</div>' +            test1: '<div style="font-size: 4em;">Test</div>',          };          const instance1 = compile(template); @@ -56,8 +56,8 @@ describe('Handlebars', () => {          const data = {              test1: { -                test2: '<div style="font-size: 4em;">Test</div>' -            } +                test2: '<div style="font-size: 4em;">Test</div>', +            },          };          const instance1 = compile(template); diff --git a/test/hotkey-util.test.js b/test/hotkey-util.test.js index 6eb3f975..82a71a7c 100644 --- a/test/hotkey-util.test.js +++ b/test/hotkey-util.test.js @@ -37,7 +37,7 @@ describe('HotkeyUtil', () => {              {os: 'linux', command: 'Ctrl+Alt+Shift+F1',    expectedCommand: 'Ctrl+Alt+Shift+F1',    expectedInput: {key: 'F1', modifiers: ['ctrl', 'alt', 'shift']}},              {os: 'linux', command: 'MacCtrl+Alt+Shift+F1', expectedCommand: 'Ctrl+Alt+Shift+F1',    expectedInput: {key: 'F1', modifiers: ['ctrl', 'alt', 'shift']}}, -            {os: 'linux', command: 'Command+Alt+Shift+F1', expectedCommand: 'Command+Alt+Shift+F1', expectedInput: {key: 'F1', modifiers: ['meta', 'alt', 'shift']}} +            {os: 'linux', command: 'Command+Alt+Shift+F1', expectedCommand: 'Command+Alt+Shift+F1', expectedInput: {key: 'F1', modifiers: ['meta', 'alt', 'shift']}},          ];          /* eslint-enable @stylistic/no-multi-spaces */ @@ -131,7 +131,7 @@ describe('HotkeyUtil', () => {              {os: 'unknown', key: 'F1',   modifiers: ['meta'], expected: 'Meta + F1'},              {os: 'unknown', key: null,   modifiers: ['mouse1'], expected: 'Mouse 1'},              {os: 'unknown', key: 'KeyF', modifiers: ['mouse1'], expected: 'Mouse 1 + F'}, -            {os: 'unknown', key: 'F1',   modifiers: ['mouse1'], expected: 'Mouse 1 + F1'} +            {os: 'unknown', key: 'F1',   modifiers: ['mouse1'], expected: 'Mouse 1 + F1'},          ];          /* eslint-enable @stylistic/no-multi-spaces */ @@ -148,7 +148,7 @@ describe('HotkeyUtil', () => {          /** @type {{modifiers: import('input').Modifier[], expected: import('input').Modifier[]}[]} */          const data = [              {modifiers: [], expected: []}, -            {modifiers: ['shift', 'alt', 'ctrl', 'mouse4', 'meta', 'mouse1', 'mouse0'], expected: ['meta', 'ctrl', 'alt', 'shift', 'mouse0', 'mouse1', 'mouse4']} +            {modifiers: ['shift', 'alt', 'ctrl', 'mouse4', 'meta', 'mouse1', 'mouse0'], expected: ['meta', 'ctrl', 'alt', 'shift', 'mouse0', 'mouse1', 'mouse4']},          ];          const hotkeyUtil = new HotkeyUtil(); diff --git a/test/japanese-util.test.js b/test/japanese-util.test.js index 63ac5cdf..22fad2f2 100644 --- a/test/japanese-util.test.js +++ b/test/japanese-util.test.js @@ -27,7 +27,7 @@ describe('Japanese utility functions', () => {              ['力方', true],              ['\u53f1\u{20b9f}', true],              ['かたカタ々kata、。?,.?', false], -            ['逸逸', true] +            ['逸逸', true],          ];          test.each(data)('%s -> %o', (characters, expected) => { @@ -44,7 +44,7 @@ describe('Japanese utility functions', () => {          const data = [              ['かたカタ', true],              ['力方々kata、。?,.?', false], -            ['\u53f1\u{20b9f}', false] +            ['\u53f1\u{20b9f}', false],          ];          test.each(data)('%s -> %o', (characters, expected) => { @@ -62,7 +62,7 @@ describe('Japanese utility functions', () => {              ['かたカタ力方々、。?', true],              ['\u53f1\u{20b9f}', true],              ['kata,.?', false], -            ['逸逸', true] +            ['逸逸', true],          ];          test.each(data)('%s -> %o', (characters, expected) => { @@ -87,7 +87,7 @@ describe('Japanese utility functions', () => {              ['kata,.?', false],              ['かたカタ力方々、。?invalid', false],              ['\u53f1\u{20b9f}invalid', false], -            ['kata,.?かた', false] +            ['kata,.?かた', false],          ];          test.each(data)('%s -> %o', (string, expected) => { @@ -109,7 +109,7 @@ describe('Japanese utility functions', () => {              ['かたカタ力方々、。?invalid', true],              ['\u53f1\u{20b9f}invalid', true],              ['kata,.?かた', true], -            ['逸逸', true] +            ['逸逸', true],          ];          test.each(data)('%s -> %o', (string, expected) => { @@ -130,7 +130,7 @@ describe('Japanese utility functions', () => {              ['katakana', 'katakana'],              ['hiragana', 'hiragana'],              ['カーナー', 'かあなあ'], -            ['カーナー', 'かーなー', true] +            ['カーナー', 'かーなー', true],          ];          for (const [string, expected, keepProlongedSoundMarks = false] of data) { @@ -151,7 +151,7 @@ describe('Japanese utility functions', () => {              ['ヒラガナひらがな', 'ヒラガナヒラガナ'],              ['chikaraちからチカラ力', 'chikaraチカラチカラ力'],              ['katakana', 'katakana'], -            ['hiragana', 'hiragana'] +            ['hiragana', 'hiragana'],          ];          test.each(data)('%s -> %o', (string, expected) => { @@ -170,7 +170,7 @@ describe('Japanese utility functions', () => {              ['ヒラガナひらがな', 'hiraganahiragana'],              ['chikaraちからチカラ力', 'chikarachikarachikara力'],              ['katakana', 'katakana'], -            ['hiragana', 'hiragana'] +            ['hiragana', 'hiragana'],          ];          test.each(data)('%s -> %o', (string, expected) => { @@ -184,7 +184,7 @@ describe('Japanese utility functions', () => {              ['0123456789', '0123456789'],              ['abcdefghij', 'abcdefghij'],              ['カタカナ', 'カタカナ'], -            ['ひらがな', 'ひらがな'] +            ['ひらがな', 'ひらがな'],          ];          test.each(data)('%s -> %o', (string, expected) => { @@ -202,7 +202,7 @@ describe('Japanese utility functions', () => {              ['カキ', 'カキ'],              ['ガキ', 'ガキ'],              ['ニホン', 'ニホン'], -            ['ニッポン', 'ニッポン'] +            ['ニッポン', 'ニッポン'],          ];          for (const [string, expected] of data) { @@ -224,7 +224,7 @@ describe('Japanese utility functions', () => {              ['カタカナ', 'カタカナ'],              ['ひらがな', 'ひらがな'],              ['chikara', 'ちから'], -            ['CHIKARA', 'ちから'] +            ['CHIKARA', 'ちから'],          ];          for (const [string, expected] of data) { @@ -246,37 +246,37 @@ describe('Japanese utility functions', () => {                      {text: '有', reading: 'あ'},                      {text: 'り', reading: ''},                      {text: '難', reading: 'がと'}, -                    {text: 'う', reading: ''} -                ] +                    {text: 'う', reading: ''}, +                ],              ],              [                  ['方々', 'かたがた'],                  [ -                    {text: '方々', reading: 'かたがた'} -                ] +                    {text: '方々', reading: 'かたがた'}, +                ],              ],              [                  ['お祝い', 'おいわい'],                  [                      {text: 'お', reading: ''},                      {text: '祝', reading: 'いわ'}, -                    {text: 'い', reading: ''} -                ] +                    {text: 'い', reading: ''}, +                ],              ],              [                  ['美味しい', 'おいしい'],                  [                      {text: '美味', reading: 'おい'}, -                    {text: 'しい', reading: ''} -                ] +                    {text: 'しい', reading: ''}, +                ],              ],              [                  ['食べ物', 'たべもの'],                  [                      {text: '食', reading: 'た'},                      {text: 'べ', reading: ''}, -                    {text: '物', reading: 'もの'} -                ] +                    {text: '物', reading: 'もの'}, +                ],              ],              [                  ['試し切り', 'ためしぎり'], @@ -284,53 +284,53 @@ describe('Japanese utility functions', () => {                      {text: '試', reading: 'ため'},                      {text: 'し', reading: ''},                      {text: '切', reading: 'ぎ'}, -                    {text: 'り', reading: ''} -                ] +                    {text: 'り', reading: ''}, +                ],              ],              // Ambiguous              [                  ['飼い犬', 'かいいぬ'],                  [ -                    {text: '飼い犬', reading: 'かいいぬ'} -                ] +                    {text: '飼い犬', reading: 'かいいぬ'}, +                ],              ],              [                  ['長い間', 'ながいあいだ'],                  [ -                    {text: '長い間', reading: 'ながいあいだ'} -                ] +                    {text: '長い間', reading: 'ながいあいだ'}, +                ],              ],              // Same/empty reading              [                  ['飼い犬', ''],                  [ -                    {text: '飼い犬', reading: ''} -                ] +                    {text: '飼い犬', reading: ''}, +                ],              ],              [                  ['かいいぬ', 'かいいぬ'],                  [ -                    {text: 'かいいぬ', reading: ''} -                ] +                    {text: 'かいいぬ', reading: ''}, +                ],              ],              [                  ['かいぬ', 'かいぬ'],                  [ -                    {text: 'かいぬ', reading: ''} -                ] +                    {text: 'かいぬ', reading: ''}, +                ],              ],              // Misc              [                  ['月', 'か'],                  [ -                    {text: '月', reading: 'か'} -                ] +                    {text: '月', reading: 'か'}, +                ],              ],              [                  ['月', 'カ'],                  [ -                    {text: '月', reading: 'カ'} -                ] +                    {text: '月', reading: 'カ'}, +                ],              ],              // Mismatched kana readings              [ @@ -339,125 +339,125 @@ describe('Japanese utility functions', () => {                      {text: '有', reading: 'ア'},                      {text: 'り', reading: 'リ'},                      {text: '難', reading: 'ガト'}, -                    {text: 'う', reading: 'ウ'} -                ] +                    {text: 'う', reading: 'ウ'}, +                ],              ],              [                  ['ありがとう', 'アリガトウ'],                  [ -                    {text: 'ありがとう', reading: 'アリガトウ'} -                ] +                    {text: 'ありがとう', reading: 'アリガトウ'}, +                ],              ],              // Mismatched kana readings (real examples)              [                  ['カ月', 'かげつ'],                  [                      {text: 'カ', reading: 'か'}, -                    {text: '月', reading: 'げつ'} -                ] +                    {text: '月', reading: 'げつ'}, +                ],              ],              [                  ['序ノ口', 'じょのくち'],                  [                      {text: '序', reading: 'じょ'},                      {text: 'ノ', reading: 'の'}, -                    {text: '口', reading: 'くち'} -                ] +                    {text: '口', reading: 'くち'}, +                ],              ],              [                  ['スズメの涙', 'すずめのなみだ'],                  [                      {text: 'スズメ', reading: 'すずめ'},                      {text: 'の', reading: ''}, -                    {text: '涙', reading: 'なみだ'} -                ] +                    {text: '涙', reading: 'なみだ'}, +                ],              ],              [                  ['二カ所', 'にかしょ'],                  [                      {text: '二', reading: 'に'},                      {text: 'カ', reading: 'か'}, -                    {text: '所', reading: 'しょ'} -                ] +                    {text: '所', reading: 'しょ'}, +                ],              ],              [                  ['八ツ橋', 'やつはし'],                  [                      {text: '八', reading: 'や'},                      {text: 'ツ', reading: 'つ'}, -                    {text: '橋', reading: 'はし'} -                ] +                    {text: '橋', reading: 'はし'}, +                ],              ],              [                  ['八ツ橋', 'やつはし'],                  [                      {text: '八', reading: 'や'},                      {text: 'ツ', reading: 'つ'}, -                    {text: '橋', reading: 'はし'} -                ] +                    {text: '橋', reading: 'はし'}, +                ],              ],              [                  ['一カ月', 'いっかげつ'],                  [                      {text: '一', reading: 'いっ'},                      {text: 'カ', reading: 'か'}, -                    {text: '月', reading: 'げつ'} -                ] +                    {text: '月', reading: 'げつ'}, +                ],              ],              [                  ['一カ所', 'いっかしょ'],                  [                      {text: '一', reading: 'いっ'},                      {text: 'カ', reading: 'か'}, -                    {text: '所', reading: 'しょ'} -                ] +                    {text: '所', reading: 'しょ'}, +                ],              ],              [                  ['カ所', 'かしょ'],                  [                      {text: 'カ', reading: 'か'}, -                    {text: '所', reading: 'しょ'} -                ] +                    {text: '所', reading: 'しょ'}, +                ],              ],              [                  ['数カ月', 'すうかげつ'],                  [                      {text: '数', reading: 'すう'},                      {text: 'カ', reading: 'か'}, -                    {text: '月', reading: 'げつ'} -                ] +                    {text: '月', reading: 'げつ'}, +                ],              ],              [                  ['くノ一', 'くのいち'],                  [                      {text: 'く', reading: ''},                      {text: 'ノ', reading: 'の'}, -                    {text: '一', reading: 'いち'} -                ] +                    {text: '一', reading: 'いち'}, +                ],              ],              [                  ['くノ一', 'くのいち'],                  [                      {text: 'く', reading: ''},                      {text: 'ノ', reading: 'の'}, -                    {text: '一', reading: 'いち'} -                ] +                    {text: '一', reading: 'いち'}, +                ],              ],              [                  ['数カ国', 'すうかこく'],                  [                      {text: '数', reading: 'すう'},                      {text: 'カ', reading: 'か'}, -                    {text: '国', reading: 'こく'} -                ] +                    {text: '国', reading: 'こく'}, +                ],              ],              [                  ['数カ所', 'すうかしょ'],                  [                      {text: '数', reading: 'すう'},                      {text: 'カ', reading: 'か'}, -                    {text: '所', reading: 'しょ'} -                ] +                    {text: '所', reading: 'しょ'}, +                ],              ],              [                  ['壇ノ浦の戦い', 'だんのうらのたたかい'], @@ -467,8 +467,8 @@ describe('Japanese utility functions', () => {                      {text: '浦', reading: 'うら'},                      {text: 'の', reading: ''},                      {text: '戦', reading: 'たたか'}, -                    {text: 'い', reading: ''} -                ] +                    {text: 'い', reading: ''}, +                ],              ],              [                  ['壇ノ浦の戦', 'だんのうらのたたかい'], @@ -477,38 +477,38 @@ describe('Japanese utility functions', () => {                      {text: 'ノ', reading: 'の'},                      {text: '浦', reading: 'うら'},                      {text: 'の', reading: ''}, -                    {text: '戦', reading: 'たたかい'} -                ] +                    {text: '戦', reading: 'たたかい'}, +                ],              ],              [                  ['序ノ口格', 'じょのくちかく'],                  [                      {text: '序', reading: 'じょ'},                      {text: 'ノ', reading: 'の'}, -                    {text: '口格', reading: 'くちかく'} -                ] +                    {text: '口格', reading: 'くちかく'}, +                ],              ],              [                  ['二カ国語', 'にかこくご'],                  [                      {text: '二', reading: 'に'},                      {text: 'カ', reading: 'か'}, -                    {text: '国語', reading: 'こくご'} -                ] +                    {text: '国語', reading: 'こくご'}, +                ],              ],              [                  ['カ国', 'かこく'],                  [                      {text: 'カ', reading: 'か'}, -                    {text: '国', reading: 'こく'} -                ] +                    {text: '国', reading: 'こく'}, +                ],              ],              [                  ['カ国語', 'かこくご'],                  [                      {text: 'カ', reading: 'か'}, -                    {text: '国語', reading: 'こくご'} -                ] +                    {text: '国語', reading: 'こくご'}, +                ],              ],              [                  ['壇ノ浦の合戦', 'だんのうらのかっせん'], @@ -517,46 +517,46 @@ describe('Japanese utility functions', () => {                      {text: 'ノ', reading: 'の'},                      {text: '浦', reading: 'うら'},                      {text: 'の', reading: ''}, -                    {text: '合戦', reading: 'かっせん'} -                ] +                    {text: '合戦', reading: 'かっせん'}, +                ],              ],              [                  ['一タ偏', 'いちたへん'],                  [                      {text: '一', reading: 'いち'},                      {text: 'タ', reading: 'た'}, -                    {text: '偏', reading: 'へん'} -                ] +                    {text: '偏', reading: 'へん'}, +                ],              ],              [                  ['ル又', 'るまた'],                  [                      {text: 'ル', reading: 'る'}, -                    {text: '又', reading: 'また'} -                ] +                    {text: '又', reading: 'また'}, +                ],              ],              [                  ['ノ木偏', 'のぎへん'],                  [                      {text: 'ノ', reading: 'の'}, -                    {text: '木偏', reading: 'ぎへん'} -                ] +                    {text: '木偏', reading: 'ぎへん'}, +                ],              ],              [                  ['一ノ貝', 'いちのかい'],                  [                      {text: '一', reading: 'いち'},                      {text: 'ノ', reading: 'の'}, -                    {text: '貝', reading: 'かい'} -                ] +                    {text: '貝', reading: 'かい'}, +                ],              ],              [                  ['虎ノ門事件', 'とらのもんじけん'],                  [                      {text: '虎', reading: 'とら'},                      {text: 'ノ', reading: 'の'}, -                    {text: '門事件', reading: 'もんじけん'} -                ] +                    {text: '門事件', reading: 'もんじけん'}, +                ],              ],              [                  ['教育ニ関スル勅語', 'きょういくにかんするちょくご'], @@ -565,96 +565,96 @@ describe('Japanese utility functions', () => {                      {text: 'ニ', reading: 'に'},                      {text: '関', reading: 'かん'},                      {text: 'スル', reading: 'する'}, -                    {text: '勅語', reading: 'ちょくご'} -                ] +                    {text: '勅語', reading: 'ちょくご'}, +                ],              ],              [                  ['二カ年', 'にかねん'],                  [                      {text: '二', reading: 'に'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['三カ年', 'さんかねん'],                  [                      {text: '三', reading: 'さん'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['四カ年', 'よんかねん'],                  [                      {text: '四', reading: 'よん'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['五カ年', 'ごかねん'],                  [                      {text: '五', reading: 'ご'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['六カ年', 'ろっかねん'],                  [                      {text: '六', reading: 'ろっ'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['七カ年', 'ななかねん'],                  [                      {text: '七', reading: 'なな'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['八カ年', 'はちかねん'],                  [                      {text: '八', reading: 'はち'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['九カ年', 'きゅうかねん'],                  [                      {text: '九', reading: 'きゅう'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['十カ年', 'じゅうかねん'],                  [                      {text: '十', reading: 'じゅう'},                      {text: 'カ', reading: 'か'}, -                    {text: '年', reading: 'ねん'} -                ] +                    {text: '年', reading: 'ねん'}, +                ],              ],              [                  ['鏡ノ間', 'かがみのま'],                  [                      {text: '鏡', reading: 'かがみ'},                      {text: 'ノ', reading: 'の'}, -                    {text: '間', reading: 'ま'} -                ] +                    {text: '間', reading: 'ま'}, +                ],              ],              [                  ['鏡ノ間', 'かがみのま'],                  [                      {text: '鏡', reading: 'かがみ'},                      {text: 'ノ', reading: 'の'}, -                    {text: '間', reading: 'ま'} -                ] +                    {text: '間', reading: 'ま'}, +                ],              ],              [                  ['ページ違反', 'ぺーじいはん'], @@ -662,39 +662,39 @@ describe('Japanese utility functions', () => {                      {text: 'ペ', reading: 'ぺ'},                      {text: 'ー', reading: ''},                      {text: 'ジ', reading: 'じ'}, -                    {text: '違反', reading: 'いはん'} -                ] +                    {text: '違反', reading: 'いはん'}, +                ],              ],              // Mismatched kana              [                  ['サボる', 'サボル'],                  [                      {text: 'サボ', reading: ''}, -                    {text: 'る', reading: 'ル'} -                ] +                    {text: 'る', reading: 'ル'}, +                ],              ],              // Reading starts with term, but has remainder characters              [                  ['シック', 'シック・ビルしょうこうぐん'],                  [ -                    {text: 'シック', reading: 'シック・ビルしょうこうぐん'} -                ] +                    {text: 'シック', reading: 'シック・ビルしょうこうぐん'}, +                ],              ],              // Kanji distribution tests              [                  ['逸らす', 'そらす'],                  [                      {text: '逸', reading: 'そ'}, -                    {text: 'らす', reading: ''} -                ] +                    {text: 'らす', reading: ''}, +                ],              ],              [                  ['逸らす', 'そらす'],                  [                      {text: '逸', reading: 'そ'}, -                    {text: 'らす', reading: ''} -                ] -            ] +                    {text: 'らす', reading: ''}, +                ], +            ],          ];          test.each(data)('%o -> %o', (input, expected) => { @@ -711,41 +711,41 @@ describe('Japanese utility functions', () => {                  ['美味しい', 'おいしい', '美味しかた'],                  [                      {text: '美味', reading: 'おい'}, -                    {text: 'しかた', reading: ''} -                ] +                    {text: 'しかた', reading: ''}, +                ],              ],              [                  ['食べる', 'たべる', '食べた'],                  [                      {text: '食', reading: 'た'}, -                    {text: 'べた', reading: ''} -                ] +                    {text: 'べた', reading: ''}, +                ],              ],              [                  ['迄に', 'までに', 'までに'],                  [ -                    {text: 'までに', reading: ''} -                ] +                    {text: 'までに', reading: ''}, +                ],              ],              [                  ['行う', 'おこなう', 'おこなわなかった'],                  [ -                    {text: 'おこなわなかった', reading: ''} -                ] +                    {text: 'おこなわなかった', reading: ''}, +                ],              ],              [                  ['いい', 'いい', 'イイ'],                  [ -                    {text: 'イイ', reading: ''} -                ] +                    {text: 'イイ', reading: ''}, +                ],              ],              [                  ['否か', 'いなか', '否カ'],                  [                      {text: '否', reading: 'いな'}, -                    {text: 'カ', reading: 'か'} -                ] -            ] +                    {text: 'カ', reading: 'か'}, +                ], +            ],          ];          test.each(data)('%o -> %o', (input, expected) => { @@ -794,7 +794,7 @@ describe('Japanese utility functions', () => {              [['っっ', false], 'っ'],              [['っっ', true], ''],              [['っっっ', false], 'っ'], -            [['っっっ', true], ''] +            [['っっっ', true], ''],          ];          test.each(data)('%o -> %o', (input, output) => { @@ -833,7 +833,7 @@ describe('Japanese utility functions', () => {              [[0, 4], false],              [[1, 4], true],              [[2, 4], true], -            [[3, 4], true] +            [[3, 4], true],          ];          test.each(data)('%o -> %o', (input, expected) => { @@ -854,7 +854,7 @@ describe('Japanese utility functions', () => {              ['ちゃんと', ['ちゃ', 'ん', 'と']],              ['とうきょう', ['と', 'う', 'きょ', 'う']],              ['ぎゅう', ['ぎゅ', 'う']], -            ['ディスコ', ['ディ', 'ス', 'コ']] +            ['ディスコ', ['ディ', 'ス', 'コ']],          ];          test.each(data)('%s -> %o', (text, expected) => { diff --git a/test/json-schema.test.js b/test/json-schema.test.js index dba14c54..0b17e7ce 100644 --- a/test/json-schema.test.js +++ b/test/json-schema.test.js @@ -53,28 +53,28 @@ describe('JsonSchema', () => {          const schema = {              allOf: [                  { -                    type: 'number' +                    type: 'number',                  },                  {                      anyOf: [                          {minimum: 10, maximum: 100}, -                        {minimum: -100, maximum: -10} -                    ] +                        {minimum: -100, maximum: -10}, +                    ],                  },                  {                      oneOf: [                          {multipleOf: 3}, -                        {multipleOf: 5} -                    ] +                        {multipleOf: 5}, +                    ],                  },                  {                      not: {                          anyOf: [ -                            {multipleOf: 20} -                        ] -                    } -                } -            ] +                            {multipleOf: 20}, +                        ], +                    }, +                }, +            ],          };          /** @@ -115,7 +115,7 @@ describe('JsonSchema', () => {              // String tests              {                  schema: { -                    type: 'string' +                    type: 'string',                  },                  inputs: [                      {expected: false, value: null}, @@ -123,97 +123,97 @@ describe('JsonSchema', () => {                      {expected: false, value: 0},                      {expected: false, value: {}},                      {expected: false, value: []}, -                    {expected: true,  value: ''} -                ] +                    {expected: true,  value: ''}, +                ],              },              {                  schema: {                      type: 'string', -                    minLength: 2 +                    minLength: 2,                  },                  inputs: [                      {expected: false, value: ''},                      {expected: false,  value: '1'},                      {expected: true,  value: '12'}, -                    {expected: true,  value: '123'} -                ] +                    {expected: true,  value: '123'}, +                ],              },              {                  schema: {                      type: 'string', -                    maxLength: 2 +                    maxLength: 2,                  },                  inputs: [                      {expected: true,  value: ''},                      {expected: true,  value: '1'},                      {expected: true,  value: '12'}, -                    {expected: false, value: '123'} -                ] +                    {expected: false, value: '123'}, +                ],              },              {                  schema: {                      type: 'string', -                    pattern: 'test' +                    pattern: 'test',                  },                  inputs: [                      {expected: false, value: ''},                      {expected: true,  value: 'test'},                      {expected: false, value: 'TEST'},                      {expected: true,  value: 'ABCtestDEF'}, -                    {expected: false, value: 'ABCTESTDEF'} -                ] +                    {expected: false, value: 'ABCTESTDEF'}, +                ],              },              {                  schema: {                      type: 'string', -                    pattern: '^test$' +                    pattern: '^test$',                  },                  inputs: [                      {expected: false, value: ''},                      {expected: true,  value: 'test'},                      {expected: false, value: 'TEST'},                      {expected: false, value: 'ABCtestDEF'}, -                    {expected: false, value: 'ABCTESTDEF'} -                ] +                    {expected: false, value: 'ABCTESTDEF'}, +                ],              },              {                  schema: {                      type: 'string',                      pattern: '^test$', -                    patternFlags: 'i' +                    patternFlags: 'i',                  },                  inputs: [                      {expected: false, value: ''},                      {expected: true,  value: 'test'},                      {expected: true,  value: 'TEST'},                      {expected: false, value: 'ABCtestDEF'}, -                    {expected: false, value: 'ABCTESTDEF'} -                ] +                    {expected: false, value: 'ABCTESTDEF'}, +                ],              },              {                  schema: {                      type: 'string', -                    pattern: '*' +                    pattern: '*',                  },                  inputs: [ -                    {expected: false, value: ''} -                ] +                    {expected: false, value: ''}, +                ],              },              {                  schema: {                      type: 'string',                      pattern: '.', -                    patternFlags: '?' +                    patternFlags: '?',                  },                  inputs: [ -                    {expected: false, value: ''} -                ] +                    {expected: false, value: ''}, +                ],              },              // Const tests              {                  schema: { -                    const: 32 +                    const: 32,                  },                  inputs: [                      {expected: true,  value: 32}, @@ -221,12 +221,12 @@ describe('JsonSchema', () => {                      {expected: false, value: '32'},                      {expected: false, value: null},                      {expected: false, value: {a: 'b'}}, -                    {expected: false, value: [1, 2, 3]} -                ] +                    {expected: false, value: [1, 2, 3]}, +                ],              },              {                  schema: { -                    const: '32' +                    const: '32',                  },                  inputs: [                      {expected: false, value: 32}, @@ -234,12 +234,12 @@ describe('JsonSchema', () => {                      {expected: true,  value: '32'},                      {expected: false, value: null},                      {expected: false, value: {a: 'b'}}, -                    {expected: false, value: [1, 2, 3]} -                ] +                    {expected: false, value: [1, 2, 3]}, +                ],              },              {                  schema: { -                    const: null +                    const: null,                  },                  inputs: [                      {expected: false, value: 32}, @@ -247,12 +247,12 @@ describe('JsonSchema', () => {                      {expected: false, value: '32'},                      {expected: true,  value: null},                      {expected: false, value: {a: 'b'}}, -                    {expected: false, value: [1, 2, 3]} -                ] +                    {expected: false, value: [1, 2, 3]}, +                ],              },              {                  schema: { -                    const: {a: 'b'} +                    const: {a: 'b'},                  },                  inputs: [                      {expected: false, value: 32}, @@ -260,12 +260,12 @@ describe('JsonSchema', () => {                      {expected: false, value: '32'},                      {expected: false, value: null},                      {expected: false, value: {a: 'b'}}, -                    {expected: false, value: [1, 2, 3]} -                ] +                    {expected: false, value: [1, 2, 3]}, +                ],              },              {                  schema: { -                    const: [1, 2, 3] +                    const: [1, 2, 3],                  },                  inputs: [                      {expected: false, value: 32}, @@ -273,15 +273,15 @@ describe('JsonSchema', () => {                      {expected: false,  value: '32'},                      {expected: false, value: null},                      {expected: false, value: {a: 'b'}}, -                    {expected: false, value: [1, 2, 3]} -                ] +                    {expected: false, value: [1, 2, 3]}, +                ],              },              // Array contains tests              {                  schema: {                      type: 'array', -                    contains: {const: 32} +                    contains: {const: 32},                  },                  inputs: [                      {expected: false, value: []}, @@ -290,119 +290,119 @@ describe('JsonSchema', () => {                      {expected: true,  value: [1, 32, 1]},                      {expected: false, value: [33]},                      {expected: false, value: [1, 33]}, -                    {expected: false, value: [1, 33, 1]} -                ] +                    {expected: false, value: [1, 33, 1]}, +                ],              },              // Number limits tests              {                  schema: {                      type: 'number', -                    minimum: 0 +                    minimum: 0,                  },                  inputs: [                      {expected: false, value: -1},                      {expected: true,  value: 0}, -                    {expected: true,  value: 1} -                ] +                    {expected: true,  value: 1}, +                ],              },              {                  schema: {                      type: 'number', -                    exclusiveMinimum: 0 +                    exclusiveMinimum: 0,                  },                  inputs: [                      {expected: false, value: -1},                      {expected: false, value: 0}, -                    {expected: true,  value: 1} -                ] +                    {expected: true,  value: 1}, +                ],              },              {                  schema: {                      type: 'number', -                    maximum: 0 +                    maximum: 0,                  },                  inputs: [                      {expected: true,  value: -1},                      {expected: true,  value: 0}, -                    {expected: false, value: 1} -                ] +                    {expected: false, value: 1}, +                ],              },              {                  schema: {                      type: 'number', -                    exclusiveMaximum: 0 +                    exclusiveMaximum: 0,                  },                  inputs: [                      {expected: true,  value: -1},                      {expected: false, value: 0}, -                    {expected: false, value: 1} -                ] +                    {expected: false, value: 1}, +                ],              },              // Integer limits tests              {                  schema: {                      type: 'integer', -                    minimum: 0 +                    minimum: 0,                  },                  inputs: [                      {expected: false, value: -1},                      {expected: true,  value: 0}, -                    {expected: true,  value: 1} -                ] +                    {expected: true,  value: 1}, +                ],              },              {                  schema: {                      type: 'integer', -                    exclusiveMinimum: 0 +                    exclusiveMinimum: 0,                  },                  inputs: [                      {expected: false, value: -1},                      {expected: false, value: 0}, -                    {expected: true,  value: 1} -                ] +                    {expected: true,  value: 1}, +                ],              },              {                  schema: {                      type: 'integer', -                    maximum: 0 +                    maximum: 0,                  },                  inputs: [                      {expected: true,  value: -1},                      {expected: true,  value: 0}, -                    {expected: false, value: 1} -                ] +                    {expected: false, value: 1}, +                ],              },              {                  schema: {                      type: 'integer', -                    exclusiveMaximum: 0 +                    exclusiveMaximum: 0,                  },                  inputs: [                      {expected: true,  value: -1},                      {expected: false, value: 0}, -                    {expected: false, value: 1} -                ] +                    {expected: false, value: 1}, +                ],              },              {                  schema: {                      type: 'integer', -                    multipleOf: 2 +                    multipleOf: 2,                  },                  inputs: [                      {expected: true,  value: -2},                      {expected: false, value: -1},                      {expected: true,  value: 0},                      {expected: false, value: 1}, -                    {expected: true,  value: 2} -                ] +                    {expected: true,  value: 2}, +                ],              },              // Numeric type tests              {                  schema: { -                    type: 'number' +                    type: 'number',                  },                  inputs: [                      {expected: true,  value: 0}, @@ -411,12 +411,12 @@ describe('JsonSchema', () => {                      {expected: false, value: '0'},                      {expected: false, value: null},                      {expected: false, value: []}, -                    {expected: false, value: {}} -                ] +                    {expected: false, value: {}}, +                ],              },              {                  schema: { -                    type: 'integer' +                    type: 'integer',                  },                  inputs: [                      {expected: true,  value: 0}, @@ -425,8 +425,8 @@ describe('JsonSchema', () => {                      {expected: false, value: '0'},                      {expected: false, value: null},                      {expected: false, value: []}, -                    {expected: false, value: {}} -                ] +                    {expected: false, value: {}}, +                ],              },              // Reference tests @@ -434,10 +434,10 @@ describe('JsonSchema', () => {                  schema: {                      definitions: {                          example: { -                            type: 'number' -                        } +                            type: 'number', +                        },                      }, -                    $ref: '#/definitions/example' +                    $ref: '#/definitions/example',                  },                  inputs: [                      {expected: true,  value: 0}, @@ -446,17 +446,17 @@ describe('JsonSchema', () => {                      {expected: false, value: '0'},                      {expected: false, value: null},                      {expected: false, value: []}, -                    {expected: false, value: {}} -                ] +                    {expected: false, value: {}}, +                ],              },              {                  schema: {                      definitions: {                          example: { -                            type: 'integer' -                        } +                            type: 'integer', +                        },                      }, -                    $ref: '#/definitions/example' +                    $ref: '#/definitions/example',                  },                  inputs: [                      {expected: true,  value: 0}, @@ -465,8 +465,8 @@ describe('JsonSchema', () => {                      {expected: false, value: '0'},                      {expected: false, value: null},                      {expected: false, value: []}, -                    {expected: false, value: {}} -                ] +                    {expected: false, value: {}}, +                ],              },              {                  schema: { @@ -476,12 +476,12 @@ describe('JsonSchema', () => {                              additionalProperties: false,                              properties: {                                  test: { -                                    $ref: '#/definitions/example' -                                } -                            } -                        } +                                    $ref: '#/definitions/example', +                                }, +                            }, +                        },                      }, -                    $ref: '#/definitions/example' +                    $ref: '#/definitions/example',                  },                  inputs: [                      {expected: false, value: 0}, @@ -499,9 +499,9 @@ describe('JsonSchema', () => {                      {expected: false, value: {test: []}},                      {expected: true,  value: {test: {}}},                      {expected: true,  value: {test: {test: {}}}}, -                    {expected: true,  value: {test: {test: {test: {}}}}} -                ] -            } +                    {expected: true,  value: {test: {test: {test: {}}}}}, +                ], +            },          ];          /* eslint-enable @stylistic/no-multi-spaces */ @@ -524,49 +524,49 @@ describe('JsonSchema', () => {                      properties: {                          test: {                              type: 'string', -                            default: 'default' -                        } +                            default: 'default', +                        },                      }, -                    additionalProperties: false +                    additionalProperties: false,                  },                  inputs: [                      [                          void 0, -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          null, -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          0, -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          '', -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          [], -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          {}, -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          {test: 'value'}, -                        {test: 'value'} +                        {test: 'value'},                      ],                      [                          {test2: 'value2'}, -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          {test: 'value', test2: 'value2'}, -                        {test: 'value'} -                    ] -                ] +                        {test: 'value'}, +                    ], +                ],              },              // Test value defaulting on objects with additionalProperties=true @@ -577,29 +577,29 @@ describe('JsonSchema', () => {                      properties: {                          test: {                              type: 'string', -                            default: 'default' -                        } +                            default: 'default', +                        },                      }, -                    additionalProperties: true +                    additionalProperties: true,                  },                  inputs: [                      [                          {}, -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          {test: 'value'}, -                        {test: 'value'} +                        {test: 'value'},                      ],                      [                          {test2: 'value2'}, -                        {test: 'default', test2: 'value2'} +                        {test: 'default', test2: 'value2'},                      ],                      [                          {test: 'value', test2: 'value2'}, -                        {test: 'value', test2: 'value2'} -                    ] -                ] +                        {test: 'value', test2: 'value2'}, +                    ], +                ],              },              // Test value defaulting on objects with additionalProperties={schema} @@ -610,48 +610,48 @@ describe('JsonSchema', () => {                      properties: {                          test: {                              type: 'string', -                            default: 'default' -                        } +                            default: 'default', +                        },                      },                      additionalProperties: {                          type: 'number', -                        default: 10 -                    } +                        default: 10, +                    },                  },                  inputs: [                      [                          {}, -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          {test: 'value'}, -                        {test: 'value'} +                        {test: 'value'},                      ],                      [                          {test2: 'value2'}, -                        {test: 'default', test2: 10} +                        {test: 'default', test2: 10},                      ],                      [                          {test: 'value', test2: 'value2'}, -                        {test: 'value', test2: 10} +                        {test: 'value', test2: 10},                      ],                      [                          {test2: 2}, -                        {test: 'default', test2: 2} +                        {test: 'default', test2: 2},                      ],                      [                          {test: 'value', test2: 2}, -                        {test: 'value', test2: 2} +                        {test: 'value', test2: 2},                      ],                      [                          {test: 'value', test2: 2, test3: null}, -                        {test: 'value', test2: 2, test3: 10} +                        {test: 'value', test2: 2, test3: 10},                      ],                      [                          {test: 'value', test2: 2, test3: void 0}, -                        {test: 'value', test2: 2, test3: 10} -                    ] -                ] +                        {test: 'value', test2: 2, test3: 10}, +                    ], +                ],              },              // Test value defaulting where hasOwnProperty is false @@ -662,24 +662,24 @@ describe('JsonSchema', () => {                      properties: {                          test: {                              type: 'string', -                            default: 'default' -                        } -                    } +                            default: 'default', +                        }, +                    },                  },                  inputs: [                      [                          {}, -                        {test: 'default'} +                        {test: 'default'},                      ],                      [                          {test: 'value'}, -                        {test: 'value'} +                        {test: 'value'},                      ],                      [                          Object.create({test: 'value'}), -                        {test: 'default'} -                    ] -                ] +                        {test: 'default'}, +                    ], +                ],              },              {                  schema: { @@ -688,24 +688,24 @@ describe('JsonSchema', () => {                      properties: {                          toString: /** @type {import('ext/json-schema').SchemaObject} */ ({                              type: 'string', -                            default: 'default' -                        }) -                    } +                            default: 'default', +                        }), +                    },                  },                  inputs: [                      [                          {}, -                        {toString: 'default'} +                        {toString: 'default'},                      ],                      [                          {toString: 'value'}, -                        {toString: 'value'} +                        {toString: 'value'},                      ],                      [                          Object.create({toString: 'value'}), -                        {toString: 'default'} -                    ] -                ] +                        {toString: 'default'}, +                    ], +                ],              },              // Test enum @@ -717,28 +717,28 @@ describe('JsonSchema', () => {                          test: {                              type: 'string',                              default: 'value1', -                            enum: ['value1', 'value2', 'value3'] -                        } -                    } +                            enum: ['value1', 'value2', 'value3'], +                        }, +                    },                  },                  inputs: [                      [                          {test: 'value1'}, -                        {test: 'value1'} +                        {test: 'value1'},                      ],                      [                          {test: 'value2'}, -                        {test: 'value2'} +                        {test: 'value2'},                      ],                      [                          {test: 'value3'}, -                        {test: 'value3'} +                        {test: 'value3'},                      ],                      [                          {test: 'value4'}, -                        {test: 'value1'} -                    ] -                ] +                        {test: 'value1'}, +                    ], +                ],              },              // Test valid vs invalid default @@ -750,16 +750,16 @@ describe('JsonSchema', () => {                          test: {                              type: 'integer',                              default: 2, -                            minimum: 1 -                        } -                    } +                            minimum: 1, +                        }, +                    },                  },                  inputs: [                      [                          {test: -1}, -                        {test: 2} -                    ] -                ] +                        {test: 2}, +                    ], +                ],              },              {                  schema: { @@ -769,16 +769,16 @@ describe('JsonSchema', () => {                          test: {                              type: 'integer',                              default: 1, -                            minimum: 2 -                        } -                    } +                            minimum: 2, +                        }, +                    },                  },                  inputs: [                      [                          {test: -1}, -                        {test: -1} -                    ] -                ] +                        {test: -1}, +                    ], +                ],              },              // Test references @@ -787,29 +787,29 @@ describe('JsonSchema', () => {                      definitions: {                          example: {                              type: 'number', -                            default: 0 -                        } +                            default: 0, +                        },                      }, -                    $ref: '#/definitions/example' +                    $ref: '#/definitions/example',                  },                  inputs: [                      [                          1, -                        1 +                        1,                      ],                      [                          null, -                        0 +                        0,                      ],                      [                          'test', -                        0 +                        0,                      ],                      [                          {test: 'value'}, -                        0 -                    ] -                ] +                        0, +                    ], +                ],              },              {                  schema: { @@ -819,44 +819,44 @@ describe('JsonSchema', () => {                              additionalProperties: false,                              properties: {                                  test: { -                                    $ref: '#/definitions/example' -                                } -                            } -                        } +                                    $ref: '#/definitions/example', +                                }, +                            }, +                        },                      }, -                    $ref: '#/definitions/example' +                    $ref: '#/definitions/example',                  },                  inputs: [                      [                          1, -                        {} +                        {},                      ],                      [                          null, -                        {} +                        {},                      ],                      [                          'test', -                        {} +                        {},                      ],                      [                          {}, -                        {} +                        {},                      ],                      [                          {test: {}}, -                        {test: {}} +                        {test: {}},                      ],                      [                          {test: 'value'}, -                        {test: {}} +                        {test: {}},                      ],                      [                          {test: {test: {}}}, -                        {test: {test: {}}} -                    ] -                ] -            } +                        {test: {test: {}}}, +                    ], +                ], +            },          ];          describe.each(data)('Schema %#', ({schema, inputs}) => { @@ -880,17 +880,17 @@ describe('JsonSchema', () => {                      properties: {                          test: {                              type: 'string', -                            default: 'default' -                        } -                    } +                            default: 'default', +                        }, +                    },                  },                  tests: [                      {error: false, value: {test: 'default'}, action: (value) => { value.test = 'string'; }},                      {error: true,  value: {test: 'default'}, action: (value) => { value.test = null; }},                      {error: true,  value: {test: 'default'}, action: (value) => { delete value.test; }},                      {error: true,  value: {test: 'default'}, action: (value) => { value.test2 = 'string'; }}, -                    {error: false, value: {test: 'default'}, action: (value) => { delete value.test2; }} -                ] +                    {error: false, value: {test: 'default'}, action: (value) => { delete value.test2; }}, +                ],              },              {                  schema: { @@ -900,17 +900,17 @@ describe('JsonSchema', () => {                      properties: {                          test: {                              type: 'string', -                            default: 'default' -                        } -                    } +                            default: 'default', +                        }, +                    },                  },                  tests: [                      {error: false, value: {test: 'default'}, action: (value) => { value.test = 'string'; }},                      {error: true,  value: {test: 'default'}, action: (value) => { value.test = null; }},                      {error: true,  value: {test: 'default'}, action: (value) => { delete value.test; }},                      {error: false, value: {test: 'default'}, action: (value) => { value.test2 = 'string'; }}, -                    {error: false, value: {test: 'default'}, action: (value) => { delete value.test2; }} -                ] +                    {error: false, value: {test: 'default'}, action: (value) => { delete value.test2; }}, +                ],              },              {                  schema: { @@ -930,13 +930,13 @@ describe('JsonSchema', () => {                                      properties: {                                          test3: {                                              type: 'string', -                                            default: 'default' -                                        } -                                    } -                                } -                            } -                        } -                    } +                                            default: 'default', +                                        }, +                                    }, +                                }, +                            }, +                        }, +                    },                  },                  tests: [                      {error: false, action: (value) => { value.test1.test2.test3 = 'string'; }}, @@ -945,8 +945,8 @@ describe('JsonSchema', () => {                      {error: true,  action: (value) => { value.test1.test2 = null; }},                      {error: true,  action: (value) => { value.test1 = null; }},                      {error: true,  action: (value) => { value.test4 = 'string'; }}, -                    {error: false, action: (value) => { delete value.test4; }} -                ] +                    {error: false, action: (value) => { delete value.test4; }}, +                ],              },              // Array tests @@ -955,8 +955,8 @@ describe('JsonSchema', () => {                      type: 'array',                      items: {                          type: 'string', -                        default: 'default' -                    } +                        default: 'default', +                    },                  },                  tests: [                      {error: false, value: ['default'], action: (value) => { value[0] = 'string'; }}, @@ -970,9 +970,9 @@ describe('JsonSchema', () => {                              value[1] = 'string';                              if (value.length !== 2) { throw new Error(`Invalid length; expected=2; actual=${value.length}`); }                              if (typeof value.push !== 'function') { throw new Error(`Invalid push; expected=function; actual=${typeof value.push}`); } -                        } -                    } -                ] +                        }, +                    }, +                ],              },              // Reference tests @@ -984,12 +984,12 @@ describe('JsonSchema', () => {                              additionalProperties: false,                              properties: {                                  test: { -                                    $ref: '#/definitions/example' -                                } -                            } -                        } +                                    $ref: '#/definitions/example', +                                }, +                            }, +                        },                      }, -                    $ref: '#/definitions/example' +                    $ref: '#/definitions/example',                  },                  tests: [                      {error: false, value: {}, action: (value) => { value.test = {}; }}, @@ -998,9 +998,9 @@ describe('JsonSchema', () => {                      {error: true,  value: {}, action: (value) => { value.test = null; }},                      {error: true,  value: {}, action: (value) => { value.test = 'string'; }},                      {error: true,  value: {}, action: (value) => { value.test = {}; value.test.test = 'string'; }}, -                    {error: true,  value: {}, action: (value) => { value.test = {test: 'string'}; }} -                ] -            } +                    {error: true,  value: {}, action: (value) => { value.test = {test: 'string'}; }}, +                ], +            },          ];          /* eslint-enable @stylistic/no-multi-spaces */ diff --git a/test/json.test.js b/test/json.test.js index aa12dc09..885c4695 100644 --- a/test/json.test.js +++ b/test/json.test.js @@ -49,7 +49,7 @@ function createAjv() {      return new Ajv({          meta: true,          strictTuples: false, -        allowUnionTypes: true +        allowUnionTypes: true,      });  } @@ -69,7 +69,7 @@ function createValidatorFunctionFromTypeScript(path, type, jsconfigType) {          additionalProperties: false,          minify: false,          expose: 'none', -        strictTuples: true +        strictTuples: true,      };      const schema = createGenerator(config).createSchema(config.type);      const ajv = createAjv(); @@ -105,7 +105,7 @@ describe.concurrent('JSON validation', () => {          'playwright',          'test-results',          'dev/lib', -        'test/playwright' +        'test/playwright',      ]);      const existingJsonFiles = getAllFiles(rootDir, (path, isDirectory) => { diff --git a/test/language-transformer-cycles.test.js b/test/language-transformer-cycles.test.js index ab14eaa4..2a5cba6c 100644 --- a/test/language-transformer-cycles.test.js +++ b/test/language-transformer-cycles.test.js @@ -133,7 +133,7 @@ describe.each(languagesWithTransforms)('Cycles Test $iso', ({languageTransforms}                  if (                      !LanguageTransformer.conditionsMatch(                          languageTransformer.getConditionFlagsFromConditionTypes(ruleNames), -                        languageTransformer.getConditionFlagsFromConditionTypes(conditionsIn) +                        languageTransformer.getConditionFlagsFromConditionTypes(conditionsIn),                      ) ||                      !text.endsWith(suffixIn) ||                      (text.length - suffixIn.length + suffixOut.length) <= 0 @@ -145,7 +145,7 @@ describe.each(languagesWithTransforms)('Cycles Test $iso', ({languageTransforms}                      text.substring(0, text.length - suffixIn.length) + suffixOut,                      conditionsOut,                      ruleNode, -                    deinflectionNode +                    deinflectionNode,                  );                  // Cycle check diff --git a/test/language/albanian-transforms.test.js b/test/language/albanian-transforms.test.js index f99307c4..24fa5cde 100644 --- a/test/language/albanian-transforms.test.js +++ b/test/language/albanian-transforms.test.js @@ -124,8 +124,8 @@ const tests = [              {term: 'kujtohem', source: 'kujtohuni', rule: 'v', reasons: ['imperative second-person plural present']},              {term: 'kthej', source: 'kthye', rule: 'v', reasons: ['aorist third-person singular indicative']}, -            {term: 'shkëlqej', source: 'shkëlqyer', rule: 'v', reasons: ['participle']} -        ] +            {term: 'shkëlqej', source: 'shkëlqyer', rule: 'v', reasons: ['participle']}, +        ],      },      {          category: 'nouns', @@ -136,9 +136,9 @@ const tests = [              {term: 'gëzoj', source: 'gëzim', rule: 'v', reasons: ['nominalization']},              {term: 'zbuloj', source: 'zbulim', rule: 'v', reasons: ['nominalization']},              {term: 'përkthej', source: 'përkthim', rule: 'v', reasons: ['nominalization']}, -            {term: 'lëviz', source: 'lëvizje', rule: 'v', reasons: ['nominalization']} -        ] -    } +            {term: 'lëviz', source: 'lëvizje', rule: 'v', reasons: ['nominalization']}, +        ], +    },  ];  /* eslint-enable @stylistic/no-multi-spaces */ diff --git a/test/language/english-transforms.test.js b/test/language/english-transforms.test.js index 9ae48ce1..9109f679 100644 --- a/test/language/english-transforms.test.js +++ b/test/language/english-transforms.test.js @@ -37,8 +37,8 @@ const tests = [              {term: 'slip', source: 'slippy',  rule: 'ns', reasons: ['-y']},              {term: 'star', source: 'starry',  rule: 'ns', reasons: ['-y']},              {term: 'gas', source: 'gassy',  rule: 'ns', reasons: ['-y']}, -            {term: 'wit', source: 'witty',  rule: 'ns', reasons: ['-y']} -        ] +            {term: 'wit', source: 'witty',  rule: 'ns', reasons: ['-y']}, +        ],      },      {          category: 'verbs', @@ -95,8 +95,8 @@ const tests = [              {term: 'slip', source: 'slippy',  rule: 'v', reasons: ['-y']},              {term: 'blur', source: 'blurry',  rule: 'v', reasons: ['-y']},              {term: 'chat', source: 'chatty',  rule: 'v', reasons: ['-y']}, -            {term: 'learn', source: 'unlearn',  rule: 'v', reasons: ['un-']} -        ] +            {term: 'learn', source: 'unlearn',  rule: 'v', reasons: ['un-']}, +        ],      },      {          category: 'phrasal verbs', @@ -106,15 +106,15 @@ const tests = [              {term: 'look up', source: 'looking up',  rule: 'v_phr', reasons: ['ing']},              {term: 'look up', source: 'looked up',  rule: 'v_phr', reasons: ['past']},              {term: 'look up', source: 'looks up',  rule: 'v_phr', reasons: ['3rd pers. sing. pres']}, -            {term: 'look up', source: 'looked something up',  rule: 'v_phr', reasons: ['past', 'interposed object']} -        ] +            {term: 'look up', source: 'looked something up',  rule: 'v_phr', reasons: ['past', 'interposed object']}, +        ],      },      {          category: 'adverbs',          valid: true,          tests: [ -            {term: 'interestingly', source: 'uninterestingly',  rule: 'adj', reasons: ['un-']} -        ] +            {term: 'interestingly', source: 'uninterestingly',  rule: 'adj', reasons: ['un-']}, +        ],      },      {          category: 'adjectives', @@ -141,9 +141,9 @@ const tests = [              {term: 'hot', source: 'hottest',  rule: 'adj', reasons: ['superlative']},              {term: 'quick', source: 'quickly',  rule: 'adj', reasons: ['adverb']},              {term: 'happy', source: 'happily',  rule: 'adj', reasons: ['adverb']}, -            {term: 'humble', source: 'humbly',  rule: 'adj', reasons: ['adverb']} -        ] -    } +            {term: 'humble', source: 'humbly',  rule: 'adj', reasons: ['adverb']}, +        ], +    },  ];  /* eslint-enable @stylistic/no-multi-spaces */ diff --git a/test/language/japanese-transforms.test.js b/test/language/japanese-transforms.test.js index c1fdb865..64d935d5 100644 --- a/test/language/japanese-transforms.test.js +++ b/test/language/japanese-transforms.test.js @@ -41,8 +41,8 @@ const tests = [              {term: '愛しい', source: '愛しき',                 rule: 'adj-i', reasons: ['-ki']},              {term: '愛しい', source: '愛しげ',                 rule: 'adj-i', reasons: ['-ge']},              {term: '愛しい', source: '愛し気',                 rule: 'adj-i', reasons: ['-ge']}, -            {term: '愛しい', source: '愛しがる',                 rule: 'adj-i', reasons: ['-garu']} -        ] +            {term: '愛しい', source: '愛しがる',                 rule: 'adj-i', reasons: ['-garu']}, +        ],      },      {          category: 'ichidan verbs', @@ -96,8 +96,8 @@ const tests = [              {term: '食べる', source: '食べておる',       rule: 'v1', reasons: ['-te', 'progressive or perfect']},              {term: '食べる', source: '食べてる',         rule: 'v1', reasons: ['-te', 'progressive or perfect']},              {term: '食べる', source: '食べとる',         rule: 'v1', reasons: ['-te', 'progressive or perfect']}, -            {term: '食べる', source: '食べてしまう',     rule: 'v1', reasons: ['-te', '-shimau']} -        ] +            {term: '食べる', source: '食べてしまう',     rule: 'v1', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-u verbs', @@ -151,8 +151,8 @@ const tests = [              {term: '買う', source: '買っておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '買う', source: '買ってる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '買う', source: '買っとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '買う', source: '買ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '買う', source: '買ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-ku verbs', @@ -206,8 +206,8 @@ const tests = [              {term: '行く', source: '行っておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '行く', source: '行ってる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '行く', source: '行っとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '行く', source: '行ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '行く', source: '行ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-gu verbs', @@ -260,8 +260,8 @@ const tests = [              {term: '泳ぐ', source: '泳いでいる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '泳ぐ', source: '泳いでおる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '泳ぐ', source: '泳いでる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '泳ぐ', source: '泳いでしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '泳ぐ', source: '泳いでしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-su verbs', @@ -315,8 +315,8 @@ const tests = [              {term: '話す', source: '話しておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '話す', source: '話してる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '話す', source: '話しとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '話す', source: '話してしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '話す', source: '話してしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-tsu verbs', @@ -370,8 +370,8 @@ const tests = [              {term: '待つ', source: '待っておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '待つ', source: '待ってる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '待つ', source: '待っとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '待つ', source: '待ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '待つ', source: '待ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-nu verbs', @@ -424,8 +424,8 @@ const tests = [              {term: '死ぬ', source: '死んでいる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '死ぬ', source: '死んでおる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '死ぬ', source: '死んでる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '死ぬ', source: '死んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '死ぬ', source: '死んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-bu verbs', @@ -478,8 +478,8 @@ const tests = [              {term: '遊ぶ', source: '遊んでいる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '遊ぶ', source: '遊んでおる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '遊ぶ', source: '遊んでる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '遊ぶ', source: '遊んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '遊ぶ', source: '遊んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-mu verbs', @@ -532,8 +532,8 @@ const tests = [              {term: '飲む', source: '飲んでいる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '飲む', source: '飲んでおる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '飲む', source: '飲んでる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '飲む', source: '飲んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '飲む', source: '飲んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: 'godan verbs', @@ -587,8 +587,8 @@ const tests = [              {term: '作る', source: '作っておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '作る', source: '作ってる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},              {term: '作る', source: '作っとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, -            {term: '作る', source: '作ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']} -        ] +            {term: '作る', source: '作ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']}, +        ],      },      {          category: 'irregular verbs', @@ -853,8 +853,8 @@ const tests = [              {term: 'くる', source: 'きておる',       rule: 'vk', reasons: ['-te', 'progressive or perfect']},              {term: 'くる', source: 'きてる',         rule: 'vk', reasons: ['-te', 'progressive or perfect']},              {term: 'くる', source: 'きとる',         rule: 'vk', reasons: ['-te', 'progressive or perfect']}, -            {term: 'くる', source: 'きてしまう',     rule: 'vk', reasons: ['-te', '-shimau']} -        ] +            {term: 'くる', source: 'きてしまう',     rule: 'vk', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-zuru verbs', @@ -915,8 +915,8 @@ const tests = [              {term: '論ずる', source: '論じておる',       rule: 'vz', reasons: ['-te', 'progressive or perfect']},              {term: '論ずる', source: '論じてる',         rule: 'vz', reasons: ['-te', 'progressive or perfect']},              {term: '論ずる', source: '論じとる',         rule: 'vz', reasons: ['-te', 'progressive or perfect']}, -            {term: '論ずる', source: '論じてしまう',     rule: 'vz', reasons: ['-te', '-shimau']} -        ] +            {term: '論ずる', source: '論じてしまう',     rule: 'vz', reasons: ['-te', '-shimau']}, +        ],      },      {          category: '-e verbs', @@ -967,8 +967,8 @@ const tests = [              {term: 'うまい',     source: 'うめぇ',     rule: 'adj-i', reasons: ['-e']},              {term: 'でかい',     source: 'でけぇ',     rule: 'adj-i', reasons: ['-e']},              {term: 'まずい',     source: 'まっぜぇ',   rule: 'adj-i', reasons: ['-e']}, -            {term: 'あかい',     source: 'あけぇ',     rule: 'adj-i', reasons: ['-e']} -        ] +            {term: 'あかい',     source: 'あけぇ',     rule: 'adj-i', reasons: ['-e']}, +        ],      },      {          category: 'irregular verbs', @@ -1008,8 +1008,8 @@ const tests = [              {term: 'くる', source: 'くられない',     rule: 'vk', reasons: null},              {term: 'くる', source: 'くられない',     rule: 'vk', reasons: null},              {term: 'くる', source: 'くさせない',     rule: 'vk', reasons: null}, -            {term: 'くる', source: 'くさせられない', rule: 'vk', reasons: null} -        ] +            {term: 'くる', source: 'くさせられない', rule: 'vk', reasons: null}, +        ],      },      {          category: 'uncommon irregular verbs', @@ -1074,8 +1074,8 @@ const tests = [              {term: '沿う', source: '沿うたり', rule: 'v5', reasons: ['-tari']},              {term: '添う', source: '添うたり', rule: 'v5', reasons: ['-tari']},              {term: '副う', source: '副うたり', rule: 'v5', reasons: ['-tari']}, -            {term: '厭う', source: '厭うたり', rule: 'v5', reasons: ['-tari']} -        ] +            {term: '厭う', source: '厭うたり', rule: 'v5', reasons: ['-tari']}, +        ],      },      {          category: 'combinations', @@ -1084,8 +1084,8 @@ const tests = [              {term: '抱き抱える', source: '抱き抱えていなければ', rule: 'v1', reasons: ['-te', 'progressive or perfect', 'negative', '-ba']},              {term: '抱きかかえる', source: '抱きかかえていなければ', rule: 'v1', reasons: ['-te', 'progressive or perfect', 'negative', '-ba']},              {term: '打ち込む', source: '打ち込んでいませんでした', rule: 'v5', reasons: ['-te', 'progressive or perfect', 'polite', 'negative', 'past']}, -            {term: '食べる', source: '食べさせられたくなかった', rule: 'v1', reasons: ['causative', 'potential or passive', '-tai', 'negative', 'past']} -        ] +            {term: '食べる', source: '食べさせられたくなかった', rule: 'v1', reasons: ['causative', 'potential or passive', '-tai', 'negative', 'past']}, +        ],      },      {          category: 'kawaii', @@ -1093,15 +1093,15 @@ const tests = [          tests: [              {term: 'かわいい', source: 'かわいげ',   rule: 'adj-i', reasons: ['-ge']},              {term: '可愛い',   source: '可愛げ',   rule: 'adj-i', reasons: ['-ge']}, -            {term: '可愛い',   source: '可愛気',   rule: 'adj-i', reasons: ['-ge']} -        ] +            {term: '可愛い',   source: '可愛気',   rule: 'adj-i', reasons: ['-ge']}, +        ],      },      {          category: 'incorrect -te rule chain',          valid: false,          tests: [ -            {term: '食べる', source: '食べて', rule: null, reasons: ['-te', 'progressive or perfect', 'masu stem']} -        ] +            {term: '食べる', source: '食べて', rule: null, reasons: ['-te', 'progressive or perfect', 'masu stem']}, +        ],      },      // Kansai-ben      { @@ -1111,8 +1111,8 @@ const tests = [              {term: '宜しい', source: '宜しゅう', rule: null, reasons: ['adv', 'kansai-ben']},              {term: 'よろしい', source: 'よろしゅう', rule: null, reasons: ['adv', 'kansai-ben']},              {term: '良い', source: '良う', rule: null, reasons: ['adv', 'kansai-ben']}, -            {term: 'よい', source: 'よう', rule: null, reasons: ['adv', 'kansai-ben']} -        ] +            {term: 'よい', source: 'よう', rule: null, reasons: ['adv', 'kansai-ben']}, +        ],      },      {          category: '-te form of kansai-ben adjectives', @@ -1121,8 +1121,8 @@ const tests = [              {term: 'よろしい', source: 'よろしゅうて', rule: null, reasons: ['-te', 'kansai-ben']},              {term: '宜しい', source: '宜しゅうて', rule: null, reasons: ['-te', 'kansai-ben']},              {term: 'よい', source: 'ようて', rule: null, reasons: ['-te', 'kansai-ben']}, -            {term: '良い', source: '良うて', rule: null, reasons: ['-te', 'kansai-ben']} -        ] +            {term: '良い', source: '良うて', rule: null, reasons: ['-te', 'kansai-ben']}, +        ],      },      {          category: 'Negative form of kansai-ben adjectives', @@ -1131,16 +1131,16 @@ const tests = [              {term: 'よろしい', source: 'よろしゅうない', rule: null, reasons: ['negative', 'kansai-ben']},              {term: '宜しい', source: '宜しゅうない', rule: null, reasons: ['negative', 'kansai-ben']},              {term: 'よい', source: 'ようない', rule: null, reasons: ['negative', 'kansai-ben']}, -            {term: '良い', source: '良うない', rule: null, reasons: ['negative', 'kansai-ben']} -        ] +            {term: '良い', source: '良うない', rule: null, reasons: ['negative', 'kansai-ben']}, +        ],      },      {          category: 'Negative form of kansai-ben verbs',          valid: true,          tests: [              {term: '食べる', source: '食べへん', rule: null, reasons: ['negative', 'kansai-ben']}, -            {term: '食べる', source: '食べへんかった', rule: null, reasons: ['negative', 'past', 'kansai-ben']} -        ] +            {term: '食べる', source: '食べへんかった', rule: null, reasons: ['negative', 'past', 'kansai-ben']}, +        ],      },      {          category: '-te form of kansai-ben verbs', @@ -1148,8 +1148,8 @@ const tests = [          tests: [              {term: '買う', source: '買うて', rule: null, reasons: ['-te', 'kansai-ben']},              {term: 'かう', source: 'こうて', rule: null, reasons: ['-te', 'kansai-ben']}, -            {term: 'はう', source: 'ほうて', rule: null, reasons: ['-te', 'kansai-ben']} -        ] +            {term: 'はう', source: 'ほうて', rule: null, reasons: ['-te', 'kansai-ben']}, +        ],      },      {          category: 'past form of kansai-ben terms', @@ -1157,8 +1157,8 @@ const tests = [          tests: [              {term: '買う', source: '買うた', rule: null, reasons: ['past', 'kansai-ben']},              {term: 'かう', source: 'こうた', rule: null, reasons: ['past', 'kansai-ben']}, -            {term: 'はう', source: 'ほうた', rule: null, reasons: ['past', 'kansai-ben']} -        ] +            {term: 'はう', source: 'ほうた', rule: null, reasons: ['past', 'kansai-ben']}, +        ],      },      {          category: '-tara form of kansai-ben terms', @@ -1166,9 +1166,9 @@ const tests = [          tests: [              {term: '買う', source: '買うたら', rule: null, reasons: ['-tara', 'kansai-ben']},              {term: 'かう', source: 'こうたら', rule: null, reasons: ['-tara', 'kansai-ben']}, -            {term: 'はう', source: 'ほうたら', rule: null, reasons: ['-tara', 'kansai-ben']} -        ] -    } +            {term: 'はう', source: 'ほうたら', rule: null, reasons: ['-tara', 'kansai-ben']}, +        ], +    },  ];  /* eslint-enable @stylistic/no-multi-spaces */ diff --git a/test/language/latin-transforms.test.js b/test/language/latin-transforms.test.js index 238d8eaf..c3c65476 100644 --- a/test/language/latin-transforms.test.js +++ b/test/language/latin-transforms.test.js @@ -28,8 +28,8 @@ const tests = [          tests: [              {term: 'fluvius',   source: 'fluvii',    rule: 'n',   reasons: ['plural']},              {term: 'magnus',    source: 'magni',     rule: 'adj', reasons: ['plural']}, -            {term: 'insula',    source: 'insulae',   rule: 'n',   reasons: ['plural']} -        ] +            {term: 'insula',    source: 'insulae',   rule: 'n',   reasons: ['plural']}, +        ],      },      {          category: 'adjective', @@ -37,16 +37,16 @@ const tests = [          tests: [              {term: 'magnus',    source: 'magna',    rule: 'adj',  reasons: ['feminine']},              {term: 'Graecus',   source: 'Graecum',  rule: 'adj',  reasons: ['neuter']}, -            {term: 'primus',    source: 'prima',    rule: 'adj',  reasons: ['neuter', 'plural']} -        ] +            {term: 'primus',    source: 'prima',    rule: 'adj',  reasons: ['neuter', 'plural']}, +        ],      },      {          category: 'ablative',          valid: true,          tests: [ -            {term: 'vocabulum', source: 'vocabulo', rule: 'n',    reasons: ['ablative']} -        ] -    } +            {term: 'vocabulum', source: 'vocabulo', rule: 'n',    reasons: ['ablative']}, +        ], +    },  ];  /* eslint-enable @stylistic/no-multi-spaces */ diff --git a/test/language/spanish-transforms.test.js b/test/language/spanish-transforms.test.js index 7a6ab729..0af2587a 100644 --- a/test/language/spanish-transforms.test.js +++ b/test/language/spanish-transforms.test.js @@ -34,15 +34,15 @@ const tests = [              {term: 'sí', source: 'síes', rule: 'ns', reasons: ['plural']},              {term: 'zigzag', source: 'zigzags', rule: 'ns', reasons: ['plural']},              {term: 'luz', source: 'luces', rule: 'ns', reasons: ['plural']}, -            {term: 'canción', source: 'canciones', rule: 'ns', reasons: ['plural']} -        ] +            {term: 'canción', source: 'canciones', rule: 'ns', reasons: ['plural']}, +        ],      },      {          category: 'feminine adjectives',          valid: true,          tests: [ -            {term: 'rojo', source: 'roja', rule: 'adj', reasons: ['feminine adjective']} -        ] +            {term: 'rojo', source: 'roja', rule: 'adj', reasons: ['feminine adjective']}, +        ],      },      {          category: 'present indicative verbs', @@ -90,9 +90,9 @@ const tests = [              {term: 'ser', source: 'soy', rule: 'v', reasons: ['present indicative']},              {term: 'estar', source: 'estoy', rule: 'v', reasons: ['present indicative']},              {term: 'ir', source: 'voy', rule: 'v', reasons: ['present indicative']}, -            {term: 'haber', source: 'he', rule: 'v', reasons: ['present indicative']} -        ] -    } +            {term: 'haber', source: 'he', rule: 'v', reasons: ['present indicative']}, +        ], +    },  ];  const languageTransformer = new LanguageTransformer(); diff --git a/test/mocks/common.js b/test/mocks/common.js index 339e3ea0..3309e9e6 100644 --- a/test/mocks/common.js +++ b/test/mocks/common.js @@ -28,8 +28,8 @@ export const chrome = {      runtime: {          getURL: (path) => {              return pathToFileURL(join(extDir, path.replace(/^\//, ''))).href; -        } -    } +        }, +    },  };  /** @type {import('test/mocks').FetchMock} */ @@ -47,6 +47,6 @@ export async function fetch(url) {          status: 200,          statusText: 'OK',          text: async () => content.toString('utf8'), -        json: async () => parseJson(content.toString('utf8')) +        json: async () => parseJson(content.toString('utf8')),      };  } diff --git a/test/object-property-accessor.test.js b/test/object-property-accessor.test.js index ce72553c..50f285c0 100644 --- a/test/object-property-accessor.test.js +++ b/test/object-property-accessor.test.js @@ -28,13 +28,13 @@ function createTestObject() {          value1: {              value2: {},              value3: [], -            value4: null +            value4: null,          },          value5: [              {},              [], -            null -        ] +            null, +        ],      };  } @@ -51,7 +51,7 @@ describe('ObjectPropertyAccessor', () => {              [['value5'], (object) => object.value5],              [['value5', 0], (object) => object.value5[0]],              [['value5', 1], (object) => object.value5[1]], -            [['value5', 2], (object) => object.value5[2]] +            [['value5', 2], (object) => object.value5[2]],          ];          for (const [pathArray, getExpected] of data) { @@ -87,7 +87,7 @@ describe('ObjectPropertyAccessor', () => {              [['value5', 2, 'invalid'], 'Invalid path: value5[2].invalid'],              [['value5', 2, 0], 'Invalid path: value5[2][0]'],              [['value5', 2, 0, 'invalid'], 'Invalid path: value5[2][0]'], -            [['value5', 2.5], 'Invalid index'] +            [['value5', 2.5], 'Invalid index'],          ];          for (const [pathArray, message] of data) { @@ -107,7 +107,7 @@ describe('ObjectPropertyAccessor', () => {              ['value5', 0],              ['value5', 1],              ['value5', 2], -            ['value5'] +            ['value5'],          ];          for (const pathArray of data) { @@ -137,7 +137,7 @@ describe('ObjectPropertyAccessor', () => {              [['value5', 2, 'invalid'], 'Invalid path: value5[2].invalid'],              [['value5', 2, 0], 'Invalid path: value5[2][0]'],              [['value5', 2, 0, 'invalid'], 'Invalid path: value5[2][0]'], -            [['value5', 2.5], 'Invalid index'] +            [['value5', 2.5], 'Invalid index'],          ];          for (const [pathArray, message] of data) { @@ -160,7 +160,7 @@ describe('ObjectPropertyAccessor', () => {              [['value1', 'value3'], (object) => !hasOwn(object.value1, 'value3')],              [['value1', 'value4'], (object) => !hasOwn(object.value1, 'value4')],              [['value1'], (object) => !hasOwn(object, 'value1')], -            [['value5'], (object) => !hasOwn(object, 'value5')] +            [['value5'], (object) => !hasOwn(object, 'value5')],          ];          for (const [pathArray, validate] of data) { @@ -189,7 +189,7 @@ describe('ObjectPropertyAccessor', () => {              [['value5', 2.5], 'Invalid index'],              [['value5', 0], 'Invalid type'],              [['value5', 1], 'Invalid type'], -            [['value5', 2], 'Invalid type'] +            [['value5', 2], 'Invalid type'],          ];          for (const [pathArray, message] of data) { @@ -211,7 +211,7 @@ describe('ObjectPropertyAccessor', () => {              [['value5', 0], true],              [['value5', 1], true],              [['value5', 2], true], -            [['value5'], false] +            [['value5'], false],          ];          for (const [pathArray1, compareValues1] of data) { @@ -242,7 +242,7 @@ describe('ObjectPropertyAccessor', () => {              [['0'], [], false, 'Invalid path 2'],              [[], ['0'], false, 'Invalid path 1'],              [[0], ['0'], false, 'Invalid path 1: [0]'], -            [['0'], [0], false, 'Invalid path 2: [0]'] +            [['0'], [0], false, 'Invalid path 2: [0]'],          ];          for (const [pathArray1, pathArray2, checkRevert, message] of data) { @@ -285,7 +285,7 @@ describe('ObjectPropertyAccessor', () => {              [['part1', 'part2', '3'], 'part1.part2["3"]'],              [['part1', 'part2', '3part'], 'part1.part2["3part"]'],              [['part1', 'part2', '3part', 'part4'], 'part1.part2["3part"].part4'], -            [['part1', 'part2', '3part', '4part'], 'part1.part2["3part"]["4part"]'] +            [['part1', 'part2', '3part', '4part'], 'part1.part2["3part"]["4part"]'],          ];          for (const [pathArray, expected] of data) { @@ -297,7 +297,7 @@ describe('ObjectPropertyAccessor', () => {          /** @type {[pathArray: unknown[], message: string][]} */          const data = [              [[1.5], 'Invalid index'], -            [[null], 'Invalid type: object'] +            [[null], 'Invalid type: object'],          ];          for (const [pathArray, message] of data) { @@ -323,7 +323,7 @@ describe('ObjectPropertyAccessor', () => {              ['part1.part2["3part"].part4', ['part1', 'part2', '3part', 'part4']],              ['part1.part2[\'3part\'].part4', ['part1', 'part2', '3part', 'part4']],              ['part1.part2["3part"]["4part"]', ['part1', 'part2', '3part', '4part']], -            ['part1.part2[\'3part\'][\'4part\']', ['part1', 'part2', '3part', '4part']] +            ['part1.part2[\'3part\'][\'4part\']', ['part1', 'part2', '3part', '4part']],          ];          for (const [pathString, expected] of data) { @@ -355,7 +355,7 @@ describe('ObjectPropertyAccessor', () => {              ['part1[""', 'Path not terminated correctly'],              ['part1[\'\'', 'Path not terminated correctly'],              ['part1[0', 'Path not terminated correctly'], -            ['part1[0].', 'Path not terminated correctly'] +            ['part1[0].', 'Path not terminated correctly'],          ];          for (const [pathString, message] of data) { @@ -376,7 +376,7 @@ describe('ObjectPropertyAccessor', () => {              [[0], null, false],              ['string', 0, false],              ['string', 'length', false], -            ['string', null, false] +            ['string', null, false],          ];          for (const [object, property, expected] of data) { @@ -398,7 +398,7 @@ describe('ObjectPropertyAccessor', () => {              [[0], null, false],              ['string', 0, false],              ['string', 'length', false], -            ['string', null, false] +            ['string', null, false],          ];          for (const [object, property, expected] of data) { diff --git a/test/options-util.test.js b/test/options-util.test.js index 4b4c3df9..a849fa32 100644 --- a/test/options-util.test.js +++ b/test/options-util.test.js @@ -69,7 +69,7 @@ function createProfileOptionsTestData1() {              showPitchAccentGraph: false,              showIframePopupsInRootFrame: false,              useSecurePopupFrameUrl: true, -            usePopupShadowDom: true +            usePopupShadowDom: true,          },          audio: {              enabled: true, @@ -77,7 +77,7 @@ function createProfileOptionsTestData1() {              volume: 100,              autoPlay: false,              customSourceUrl: 'http://localhost/audio.mp3?term={expression}&reading={reading}', -            textToSpeechVoice: 'example-voice' +            textToSpeechVoice: 'example-voice',          },          scanning: {              middleMouse: true, @@ -94,7 +94,7 @@ function createProfileOptionsTestData1() {              enableOnPopupExpressions: false,              enableOnSearchPage: true,              enableSearchTags: false, -            layoutAwareScan: false +            layoutAwareScan: false,          },          translation: {              convertHalfWidthCharacters: 'false', @@ -102,21 +102,21 @@ function createProfileOptionsTestData1() {              convertAlphabeticCharacters: 'false',              convertHiraganaToKatakana: 'false',              convertKatakanaToHiragana: 'variant', -            collapseEmphaticSequences: 'false' +            collapseEmphaticSequences: 'false',          },          dictionaries: {              'Test Dictionary': {                  priority: 0,                  enabled: true, -                allowSecondarySearches: false -            } +                allowSecondarySearches: false, +            },          },          parsing: {              enableScanningParser: true,              enableMecabParser: false,              selectedParser: null,              termSpacing: true, -            readingMode: 'hiragana' +            readingMode: 'hiragana',          },          anki: {              enable: false, @@ -127,8 +127,8 @@ function createProfileOptionsTestData1() {              terms: {deck: '', model: '', fields: {}},              kanji: {deck: '', model: '', fields: {}},              duplicateScope: 'collection', -            fieldTemplates: null -        } +            fieldTemplates: null, +        },      };  } @@ -147,48 +147,48 @@ function createOptionsTestData1() {                              {                                  type: 'popupLevel',                                  operator: 'equal', -                                value: 1 +                                value: 1,                              },                              {                                  type: 'popupLevel',                                  operator: 'notEqual', -                                value: 0 +                                value: 0,                              },                              {                                  type: 'popupLevel',                                  operator: 'lessThan', -                                value: 3 +                                value: 3,                              },                              {                                  type: 'popupLevel',                                  operator: 'greaterThan', -                                value: 0 +                                value: 0,                              },                              {                                  type: 'popupLevel',                                  operator: 'lessThanOrEqual', -                                value: 2 +                                value: 2,                              },                              {                                  type: 'popupLevel',                                  operator: 'greaterThanOrEqual', -                                value: 1 -                            } -                        ] +                                value: 1, +                            }, +                        ],                      },                      {                          conditions: [                              {                                  type: 'url',                                  operator: 'matchDomain', -                                value: 'example.com' +                                value: 'example.com',                              },                              {                                  type: 'url',                                  operator: 'matchRegExp', -                                value: 'example\\.com' -                            } -                        ] +                                value: 'example\\.com', +                            }, +                        ],                      },                      {                          conditions: [ @@ -197,39 +197,39 @@ function createOptionsTestData1() {                                  operator: 'are',                                  value: [                                      'ctrl', -                                    'shift' -                                ] +                                    'shift', +                                ],                              },                              {                                  type: 'modifierKeys',                                  operator: 'areNot',                                  value: [                                      'alt', -                                    'shift' -                                ] +                                    'shift', +                                ],                              },                              {                                  type: 'modifierKeys',                                  operator: 'include', -                                value: 'alt' +                                value: 'alt',                              },                              {                                  type: 'modifierKeys',                                  operator: 'notInclude', -                                value: 'ctrl' -                            } -                        ] -                    } -                ] -            } +                                value: 'ctrl', +                            }, +                        ], +                    }, +                ], +            },          ],          profileCurrent: 0,          version: 2,          global: {              database: { -                prefixWildcardsSupported: false -            } -        } +                prefixWildcardsSupported: false, +            }, +        },      };  } @@ -280,7 +280,7 @@ function createProfileOptionsUpdatedTestData1() {              frequencyDisplayMode: 'split-tags-grouped',              termDisplayMode: 'ruby',              sortFrequencyDictionary: null, -            sortFrequencyDictionaryOrder: 'descending' +            sortFrequencyDictionaryOrder: 'descending',          },          audio: {              enabled: true, @@ -288,21 +288,21 @@ function createProfileOptionsUpdatedTestData1() {                  {                      type: 'jpod101',                      url: '', -                    voice: '' +                    voice: '',                  },                  {                      type: 'text-to-speech',                      url: '', -                    voice: 'example-voice' +                    voice: 'example-voice',                  },                  {                      type: 'custom',                      url: 'http://localhost/audio.mp3?term={term}&reading={reading}', -                    voice: '' -                } +                    voice: '', +                },              ],              volume: 100, -            autoPlay: false +            autoPlay: false,          },          scanning: {              touchInputEnabled: true, @@ -328,7 +328,7 @@ function createProfileOptionsUpdatedTestData1() {                  onWebPages: false,                  onPopupPages: false,                  onSearchPages: false, -                onSearchQuery: false +                onSearchQuery: false,              },              inputs: [                  { @@ -337,7 +337,7 @@ function createProfileOptionsUpdatedTestData1() {                      types: {                          mouse: true,                          touch: false, -                        pen: false +                        pen: false,                      },                      options: {                          showAdvanced: false, @@ -353,8 +353,8 @@ function createProfileOptionsUpdatedTestData1() {                          scanOnPenPress: true,                          scanOnPenRelease: false,                          preventTouchScrolling: true, -                        preventPenScrolling: true -                    } +                        preventPenScrolling: true, +                    },                  },                  {                      include: 'mouse2', @@ -362,7 +362,7 @@ function createProfileOptionsUpdatedTestData1() {                      types: {                          mouse: true,                          touch: false, -                        pen: false +                        pen: false,                      },                      options: {                          showAdvanced: false, @@ -378,8 +378,8 @@ function createProfileOptionsUpdatedTestData1() {                          scanOnPenPress: true,                          scanOnPenRelease: false,                          preventTouchScrolling: true, -                        preventPenScrolling: true -                    } +                        preventPenScrolling: true, +                    },                  },                  {                      include: '', @@ -387,7 +387,7 @@ function createProfileOptionsUpdatedTestData1() {                      types: {                          mouse: false,                          touch: true, -                        pen: true +                        pen: true,                      },                      options: {                          showAdvanced: false, @@ -403,17 +403,17 @@ function createProfileOptionsUpdatedTestData1() {                          scanOnPenPress: true,                          scanOnPenRelease: false,                          preventTouchScrolling: true, -                        preventPenScrolling: true -                    } -                } -            ] +                        preventPenScrolling: true, +                    }, +                }, +            ],          },          translation: {              searchResolution: 'letter',              textReplacements: {                  searchOriginal: true, -                groups: [] -            } +                groups: [], +            },          },          dictionaries: [              { @@ -423,15 +423,15 @@ function createProfileOptionsUpdatedTestData1() {                  allowSecondarySearches: false,                  definitionsCollapsible: 'not-collapsible',                  partsOfSpeechFilter: true, -                useDeinflections: true -            } +                useDeinflections: true, +            },          ],          parsing: {              enableScanningParser: true,              enableMecabParser: false,              selectedParser: null,              termSpacing: true, -            readingMode: 'hiragana' +            readingMode: 'hiragana',          },          anki: {              enable: false, @@ -449,7 +449,7 @@ function createProfileOptionsUpdatedTestData1() {              suspendNewCards: false,              noteGuiMode: 'browse',              apiKey: '', -            downloadTimeout: 0 +            downloadTimeout: 0,          },          sentenceParsing: {              scanExtent: 200, @@ -470,8 +470,8 @@ function createProfileOptionsUpdatedTestData1() {                  {enabled: true, character1: '︒', character2: null, includeCharacterAtStart: false, includeCharacterAtEnd: true},                  {enabled: true, character1: '︕', character2: null, includeCharacterAtStart: false, includeCharacterAtEnd: true},                  {enabled: true, character1: '︖', character2: null, includeCharacterAtStart: false, includeCharacterAtEnd: true}, -                {enabled: true, character1: '︙', character2: null, includeCharacterAtStart: false, includeCharacterAtEnd: true} -            ] +                {enabled: true, character1: '︙', character2: null, includeCharacterAtStart: false, includeCharacterAtEnd: true}, +            ],          },          inputs: {              /* eslint-disable @stylistic/no-multi-spaces */ @@ -493,8 +493,8 @@ function createProfileOptionsUpdatedTestData1() {                  {action: 'viewNotes',         argument: '',  key: 'KeyV',      modifiers: ['alt'],  scopes: ['popup', 'search'], enabled: true},                  {action: 'copyHostSelection', argument: '',  key: 'KeyC',      modifiers: ['ctrl'], scopes: ['popup'], enabled: true},                  {action: 'profilePrevious',   argument: '',  key: 'Minus',     modifiers: ['alt'],  scopes: ['popup', 'search'], enabled: true}, -                {action: 'profileNext',       argument: '',  key: 'Equal',     modifiers: ['alt'],  scopes: ['popup', 'search'], enabled: true} -            ] +                {action: 'profileNext',       argument: '',  key: 'Equal',     modifiers: ['alt'],  scopes: ['popup', 'search'], enabled: true}, +            ],              /* eslint-enable @stylistic/no-multi-spaces */          },          popupWindow: { @@ -505,17 +505,17 @@ function createProfileOptionsUpdatedTestData1() {              useLeft: false,              useTop: false,              windowType: 'popup', -            windowState: 'normal' +            windowState: 'normal',          },          clipboard: {              enableBackgroundMonitor: false,              enableSearchPageMonitor: false,              autoSearchContent: true, -            maximumSearchLength: 1000 +            maximumSearchLength: 1000,          },          accessibility: { -            forceGoogleDocsHtmlRendering: false -        } +            forceGoogleDocsHtmlRendering: false, +        },      };  } @@ -534,83 +534,83 @@ function createOptionsUpdatedTestData1() {                              {                                  type: 'popupLevel',                                  operator: 'equal', -                                value: '1' +                                value: '1',                              },                              {                                  type: 'popupLevel',                                  operator: 'notEqual', -                                value: '0' +                                value: '0',                              },                              {                                  type: 'popupLevel',                                  operator: 'lessThan', -                                value: '3' +                                value: '3',                              },                              {                                  type: 'popupLevel',                                  operator: 'greaterThan', -                                value: '0' +                                value: '0',                              },                              {                                  type: 'popupLevel',                                  operator: 'lessThanOrEqual', -                                value: '2' +                                value: '2',                              },                              {                                  type: 'popupLevel',                                  operator: 'greaterThanOrEqual', -                                value: '1' -                            } -                        ] +                                value: '1', +                            }, +                        ],                      },                      {                          conditions: [                              {                                  type: 'url',                                  operator: 'matchDomain', -                                value: 'example.com' +                                value: 'example.com',                              },                              {                                  type: 'url',                                  operator: 'matchRegExp', -                                value: 'example\\.com' -                            } -                        ] +                                value: 'example\\.com', +                            }, +                        ],                      },                      {                          conditions: [                              {                                  type: 'modifierKeys',                                  operator: 'are', -                                value: 'ctrl, shift' +                                value: 'ctrl, shift',                              },                              {                                  type: 'modifierKeys',                                  operator: 'areNot', -                                value: 'alt, shift' +                                value: 'alt, shift',                              },                              {                                  type: 'modifierKeys',                                  operator: 'include', -                                value: 'alt' +                                value: 'alt',                              },                              {                                  type: 'modifierKeys',                                  operator: 'notInclude', -                                value: 'ctrl' -                            } -                        ] -                    } -                ] -            } +                                value: 'ctrl', +                            }, +                        ], +                    }, +                ], +            },          ],          profileCurrent: 0,          version: 37,          global: {              database: { -                prefixWildcardsSupported: false -            } -        } +                prefixWildcardsSupported: false, +            }, +        },      };  } @@ -668,7 +668,7 @@ describe('OptionsUtil', () => {              },              (options) => {                  options.profiles[0].options.audio.autoPlay = void 0; -            } +            },          ];          test.each(data)('default-test-%#', async (modify) => { @@ -704,7 +704,7 @@ describe('OptionsUtil', () => {              if (match !== null) {                  updates.push({                      version: Number.parseInt(match[1], 10), -                    changes: loadDataFile(path.join(templatesDirPath, match[0])) +                    changes: loadDataFile(path.join(templatesDirPath, match[0])),                  });              }          } @@ -742,7 +742,7 @@ describe('OptionsUtil', () => {  {{/inline}}  <<<UPDATE-ADDITIONS>>> -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // Non-standard marker format              { @@ -761,7 +761,7 @@ describe('OptionsUtil', () => {  {{/inline}}  {{~> (lookup . "marker2") ~}} -<<<UPDATE-ADDITIONS>>>`.trimStart() +<<<UPDATE-ADDITIONS>>>`.trimStart(),              },              // Empty test              { @@ -772,7 +772,7 @@ describe('OptionsUtil', () => {                  expected: `  <<<UPDATE-ADDITIONS>>> -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // Definition tags update              { @@ -845,7 +845,7 @@ describe('OptionsUtil', () => {  <<<UPDATE-ADDITIONS>>>  {{~> (lookup . "marker") ~}} -`.trimStart() +`.trimStart(),              },              // Glossary and glossary-brief update              { @@ -985,7 +985,7 @@ describe('OptionsUtil', () => {  {{/inline}}  <<<UPDATE-ADDITIONS>>> -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // formatGlossary update              { @@ -1016,7 +1016,7 @@ describe('OptionsUtil', () => {  {{/inline}}  <<<UPDATE-ADDITIONS>>> -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // hasMedia/getMedia update              { @@ -1069,7 +1069,7 @@ describe('OptionsUtil', () => {  {{/inline}}  <<<UPDATE-ADDITIONS>>> -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // hasMedia/getMedia update              { @@ -1237,7 +1237,7 @@ describe('OptionsUtil', () => {  {{! End Pitch Accents }}  <<<UPDATE-ADDITIONS>>> -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // Block helper update: furigana and furiganaPlain              { @@ -1325,7 +1325,7 @@ describe('OptionsUtil', () => {      {{~/if~}}  {{/inline}} -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // Block helper update: formatGlossary              { @@ -1399,7 +1399,7 @@ describe('OptionsUtil', () => {      {{~set "previousDictionary" dictionary~}}  {{/inline}} -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // Block helper update: set and get              { @@ -1501,7 +1501,7 @@ describe('OptionsUtil', () => {      {{~/scope~}}  {{/inline}} -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // Block helper update: hasMedia and getMedia              { @@ -1583,7 +1583,7 @@ describe('OptionsUtil', () => {      {{~/if~}}  {{/inline}} -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              // Block helper update: pronunciation              { @@ -1601,7 +1601,7 @@ describe('OptionsUtil', () => {      {{~pronunciation format=format reading=reading downstepPosition=position nasalPositions=nasalPositions devoicePositions=devoicePositions~}}  {{/inline}} -{{~> (lookup . "marker") ~}}`.trimStart() +{{~> (lookup . "marker") ~}}`.trimStart(),              },              {                  oldVersion: 21, @@ -1695,7 +1695,7 @@ describe('OptionsUtil', () => {  {{~#*inline "pitch-accent-categories"~}}      {{~#each (pitchCategories @root)~}}{{~.~}}{{~#unless @last~}},{{~/unless~}}{{~/each~}} -{{~/inline~}}`.trimStart() +{{~/inline~}}`.trimStart(),              },              {                  oldVersion: 24, @@ -1722,7 +1722,7 @@ describe('OptionsUtil', () => {          {{~/if~}}      {{~/if~}}  {{/inline}} -`.trimStart() +`.trimStart(),              },              {                  oldVersion: 32, @@ -1785,8 +1785,8 @@ describe('OptionsUtil', () => {  {{#*inline "selection-text"}}      {{~#if (hasMedia "selectionText")}}{{{getMedia "selectionText"}}}{{/if~}}  {{/inline}} -`.trimStart() -            } +`.trimStart(), +            },          ];          const updatesPattern = /<<<UPDATE-ADDITIONS>>>/g; diff --git a/test/playwright/integration.spec.js b/test/playwright/integration.spec.js index bdbe80e3..b9f51700 100644 --- a/test/playwright/integration.spec.js +++ b/test/playwright/integration.spec.js @@ -25,7 +25,7 @@ import {      mockAnkiRouteHandler,      root,      test, -    writeToClipboardFromPage +    writeToClipboardFromPage,  } from './playwright-util.js';  test.beforeEach(async ({context}) => { @@ -71,7 +71,7 @@ test('anki add', async ({context, page, extensionId}) => {      await page.locator('input[id="dictionary-import-file-input"]').setInputFiles({          name: 'valid-dictionary1.zip',          mimeType: 'application/x-zip', -        buffer: Buffer.from(dictionary) +        buffer: Buffer.from(dictionary),      });      await expect(page.locator('id=dictionaries')).toHaveText('Dictionaries (1 installed, 1 enabled)', {timeout: 5 * 60 * 1000}); diff --git a/test/playwright/playwright-util.js b/test/playwright/playwright-util.js index bebbf08c..d8ecafa2 100644 --- a/test/playwright/playwright-util.js +++ b/test/playwright/playwright-util.js @@ -32,8 +32,8 @@ export const test = base.extend({              args: [                  '--headless=new',                  `--disable-extensions-except=${pathToExtension}`, -                `--load-extension=${pathToExtension}` -            ] +                `--load-extension=${pathToExtension}`, +            ],          });          await use(context);          await context.close(); @@ -46,7 +46,7 @@ export const test = base.extend({          const extensionId = background.url().split('/')[2];          await use(extensionId); -    } +    },  });  export const expect = test.expect; @@ -59,7 +59,7 @@ export function getMockModelFields() {          ['Word', '{expression}'],          ['Reading', '{furigana-plain}'],          ['Sentence', '{clipboard-text}'], -        ['Audio', '{audio}'] +        ['Audio', '{audio}'],      ]);  } @@ -78,7 +78,7 @@ export async function mockAnkiRouteHandler(route) {          const responseJson = {              status: 200,              contentType: 'text/json', -            body: JSON.stringify(body) +            body: JSON.stringify(body),          };          await route.fulfill(responseJson);      } catch { @@ -108,7 +108,7 @@ export function getExpectedAddNoteBody() {                      Word: '読む',                      Reading: '読[よ]む',                      Audio: '[sound:mock_audio.mp3]', -                    Sentence: '読むの例文' +                    Sentence: '読むの例文',                  },                  tags: ['yomitan'],                  deckName: 'Mock Deck', @@ -119,11 +119,11 @@ export function getExpectedAddNoteBody() {                      duplicateScopeOptions: {                          deckName: null,                          checkChildren: false, -                        checkAllModels: false -                    } -                } -            } -        } +                        checkAllModels: false, +                    }, +                }, +            }, +        },      };  } diff --git a/test/profile-conditions-util.test.js b/test/profile-conditions-util.test.js index 590e5873..e85a6997 100644 --- a/test/profile-conditions-util.test.js +++ b/test/profile-conditions-util.test.js @@ -26,26 +26,26 @@ describe('Profile conditions utilities', () => {              // Empty              {                  context: {index: 0}, -                expected: {index: 0, flags: []} +                expected: {index: 0, flags: []},              },              // Domain normalization              {                  context: {depth: 0, url: ''}, -                expected: {depth: 0, url: '', flags: []} +                expected: {depth: 0, url: '', flags: []},              },              {                  context: {depth: 0, url: 'http://example.com/'}, -                expected: {depth: 0, url: 'http://example.com/', domain: 'example.com', flags: []} +                expected: {depth: 0, url: 'http://example.com/', domain: 'example.com', flags: []},              },              {                  context: {depth: 0, url: 'http://example.com:1234/'}, -                expected: {depth: 0, url: 'http://example.com:1234/', domain: 'example.com', flags: []} +                expected: {depth: 0, url: 'http://example.com:1234/', domain: 'example.com', flags: []},              },              {                  context: {depth: 0, url: 'http://user@example.com:1234/'}, -                expected: {depth: 0, url: 'http://user@example.com:1234/', domain: 'example.com', flags: []} -            } +                expected: {depth: 0, url: 'http://user@example.com:1234/', domain: 'example.com', flags: []}, +            },          ];          test.each(data)('normalize-context-test-%#', ({context, expected}) => { @@ -63,27 +63,27 @@ describe('Profile conditions utilities', () => {                  conditionGroups: [],                  expectedSchema: {},                  inputs: [ -                    {expected: true, context: {depth: 0, url: 'http://example.com/'}} -                ] +                    {expected: true, context: {depth: 0, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [ -                    {conditions: []} +                    {conditions: []},                  ],                  expectedSchema: {},                  inputs: [ -                    {expected: true, context: {depth: 0, url: 'http://example.com/'}} -                ] +                    {expected: true, context: {depth: 0, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [                      {conditions: []}, -                    {conditions: []} +                    {conditions: []},                  ],                  expectedSchema: {},                  inputs: [ -                    {expected: true, context: {depth: 0, url: 'http://example.com/'}} -                ] +                    {expected: true, context: {depth: 0, url: 'http://example.com/'}}, +                ],              },              // popupLevel tests @@ -94,22 +94,22 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'equal', -                                value: '0' -                            } -                        ] -                    } +                                value: '0', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: { -                        depth: {const: 0} +                        depth: {const: 0},                      }, -                    required: ['depth'] +                    required: ['depth'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/'}},                      {expected: false, context: {depth: 1, url: 'http://example.com/'}}, -                    {expected: false, context: {depth: -1, url: 'http://example.com/'}} -                ] +                    {expected: false, context: {depth: -1, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [ @@ -118,28 +118,28 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'notEqual', -                                value: '0' -                            } -                        ] -                    } +                                value: '0', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      not: {                          anyOf: [                              {                                  properties: { -                                    depth: {const: 0} +                                    depth: {const: 0},                                  }, -                                required: ['depth'] -                            } -                        ] -                    } +                                required: ['depth'], +                            }, +                        ], +                    },                  },                  inputs: [                      {expected: false, context: {depth: 0, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 1, url: 'http://example.com/'}}, -                    {expected: true,  context: {depth: -1, url: 'http://example.com/'}} -                ] +                    {expected: true,  context: {depth: -1, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [ @@ -148,25 +148,25 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'lessThan', -                                value: '0' -                            } -                        ] -                    } +                                value: '0', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          depth: {                              type: 'number', -                            exclusiveMaximum: 0 -                        } +                            exclusiveMaximum: 0, +                        },                      }, -                    required: ['depth'] +                    required: ['depth'],                  },                  inputs: [                      {expected: false, context: {depth: 0, url: 'http://example.com/'}},                      {expected: false, context: {depth: 1, url: 'http://example.com/'}}, -                    {expected: true,  context: {depth: -1, url: 'http://example.com/'}} -                ] +                    {expected: true,  context: {depth: -1, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [ @@ -175,25 +175,25 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'greaterThan', -                                value: '0' -                            } -                        ] -                    } +                                value: '0', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          depth: {                              type: 'number', -                            exclusiveMinimum: 0 -                        } +                            exclusiveMinimum: 0, +                        },                      }, -                    required: ['depth'] +                    required: ['depth'],                  },                  inputs: [                      {expected: false, context: {depth: 0, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 1, url: 'http://example.com/'}}, -                    {expected: false, context: {depth: -1, url: 'http://example.com/'}} -                ] +                    {expected: false, context: {depth: -1, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [ @@ -202,25 +202,25 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'lessThanOrEqual', -                                value: '0' -                            } -                        ] -                    } +                                value: '0', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          depth: {                              type: 'number', -                            maximum: 0 -                        } +                            maximum: 0, +                        },                      }, -                    required: ['depth'] +                    required: ['depth'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/'}},                      {expected: false, context: {depth: 1, url: 'http://example.com/'}}, -                    {expected: true,  context: {depth: -1, url: 'http://example.com/'}} -                ] +                    {expected: true,  context: {depth: -1, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [ @@ -229,25 +229,25 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'greaterThanOrEqual', -                                value: '0' -                            } -                        ] -                    } +                                value: '0', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          depth: {                              type: 'number', -                            minimum: 0 -                        } +                            minimum: 0, +                        },                      }, -                    required: ['depth'] +                    required: ['depth'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 1, url: 'http://example.com/'}}, -                    {expected: false, context: {depth: -1, url: 'http://example.com/'}} -                ] +                    {expected: false, context: {depth: -1, url: 'http://example.com/'}}, +                ],              },              // Url tests @@ -258,28 +258,28 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'url',                                  operator: 'matchDomain', -                                value: 'example.com' -                            } -                        ] -                    } +                                value: 'example.com', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          domain: {                              oneOf: [ -                                {const: 'example.com'} -                            ] -                        } +                                {const: 'example.com'}, +                            ], +                        },                      }, -                    required: ['domain'] +                    required: ['domain'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/'}},                      {expected: false, context: {depth: 0, url: 'http://example1.com/'}},                      {expected: false, context: {depth: 0, url: 'http://example2.com/'}},                      {expected: true,  context: {depth: 0, url: 'http://example.com:1234/'}}, -                    {expected: true,  context: {depth: 0, url: 'http://user@example.com:1234/'}} -                ] +                    {expected: true,  context: {depth: 0, url: 'http://user@example.com:1234/'}}, +                ],              },              {                  conditionGroups: [ @@ -288,10 +288,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'url',                                  operator: 'matchDomain', -                                value: 'example.com, example1.com, example2.com' -                            } -                        ] -                    } +                                value: 'example.com, example1.com, example2.com', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: { @@ -299,11 +299,11 @@ describe('Profile conditions utilities', () => {                              oneOf: [                                  {const: 'example.com'},                                  {const: 'example1.com'}, -                                {const: 'example2.com'} -                            ] -                        } +                                {const: 'example2.com'}, +                            ], +                        },                      }, -                    required: ['domain'] +                    required: ['domain'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/'}}, @@ -311,8 +311,8 @@ describe('Profile conditions utilities', () => {                      {expected: true,  context: {depth: 0, url: 'http://example2.com/'}},                      {expected: false, context: {depth: 0, url: 'http://example3.com/'}},                      {expected: true,  context: {depth: 0, url: 'http://example.com:1234/'}}, -                    {expected: true,  context: {depth: 0, url: 'http://user@example.com:1234/'}} -                ] +                    {expected: true,  context: {depth: 0, url: 'http://user@example.com:1234/'}}, +                ],              },              {                  conditionGroups: [ @@ -321,20 +321,20 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'url',                                  operator: 'matchRegExp', -                                value: '^http://example\\d?\\.com/[\\w\\W]*$' -                            } -                        ] -                    } +                                value: '^http://example\\d?\\.com/[\\w\\W]*$', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          url: {                              type: 'string',                              pattern: '^http://example\\d?\\.com/[\\w\\W]*$', -                            patternFlags: 'i' -                        } +                            patternFlags: 'i', +                        },                      }, -                    required: ['url'] +                    required: ['url'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/'}}, @@ -344,8 +344,8 @@ describe('Profile conditions utilities', () => {                      {expected: true,  context: {depth: 0, url: 'http://example.com/example'}},                      {expected: false, context: {depth: 0, url: 'http://example.com:1234/'}},                      {expected: false, context: {depth: 0, url: 'http://user@example.com:1234/'}}, -                    {expected: false, context: {depth: 0, url: 'http://example-1.com/'}} -                ] +                    {expected: false, context: {depth: 0, url: 'http://example-1.com/'}}, +                ],              },              // modifierKeys tests @@ -356,27 +356,27 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'modifierKeys',                                  operator: 'are', -                                value: '' -                            } -                        ] -                    } +                                value: '', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          modifierKeys: {                              type: 'array',                              maxItems: 0, -                            minItems: 0 -                        } +                            minItems: 0, +                        },                      }, -                    required: ['modifierKeys'] +                    required: ['modifierKeys'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: []}},                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt']}},                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift']}}, -                    {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}} -                ] +                    {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}}, +                ],              },              {                  conditionGroups: [ @@ -385,10 +385,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'modifierKeys',                                  operator: 'are', -                                value: 'alt, shift' -                            } -                        ] -                    } +                                value: 'alt, shift', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: { @@ -398,18 +398,18 @@ describe('Profile conditions utilities', () => {                              minItems: 2,                              allOf: [                                  {contains: {const: 'alt'}}, -                                {contains: {const: 'shift'}} -                            ] -                        } +                                {contains: {const: 'shift'}}, +                            ], +                        },                      }, -                    required: ['modifierKeys'] +                    required: ['modifierKeys'],                  },                  inputs: [                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: []}},                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt']}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift']}}, -                    {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}} -                ] +                    {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}}, +                ],              },              {                  conditionGroups: [ @@ -418,10 +418,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'modifierKeys',                                  operator: 'areNot', -                                value: '' -                            } -                        ] -                    } +                                value: '', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      not: { @@ -431,20 +431,20 @@ describe('Profile conditions utilities', () => {                                      modifierKeys: {                                          type: 'array',                                          maxItems: 0, -                                        minItems: 0 -                                    } +                                        minItems: 0, +                                    },                                  }, -                                required: ['modifierKeys'] -                            } -                        ] -                    } +                                required: ['modifierKeys'], +                            }, +                        ], +                    },                  },                  inputs: [                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: []}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt']}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift']}}, -                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}} -                ] +                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}}, +                ],              },              {                  conditionGroups: [ @@ -453,10 +453,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'modifierKeys',                                  operator: 'areNot', -                                value: 'alt, shift' -                            } -                        ] -                    } +                                value: 'alt, shift', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      not: { @@ -469,21 +469,21 @@ describe('Profile conditions utilities', () => {                                          minItems: 2,                                          allOf: [                                              {contains: {const: 'alt'}}, -                                            {contains: {const: 'shift'}} -                                        ] -                                    } +                                            {contains: {const: 'shift'}}, +                                        ], +                                    },                                  }, -                                required: ['modifierKeys'] -                            } -                        ] -                    } +                                required: ['modifierKeys'], +                            }, +                        ], +                    },                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: []}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt']}},                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift']}}, -                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}} -                ] +                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}}, +                ],              },              {                  conditionGroups: [ @@ -492,26 +492,26 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'modifierKeys',                                  operator: 'include', -                                value: '' -                            } -                        ] -                    } +                                value: '', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          modifierKeys: {                              type: 'array', -                            minItems: 0 -                        } +                            minItems: 0, +                        },                      }, -                    required: ['modifierKeys'] +                    required: ['modifierKeys'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: []}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt']}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift']}}, -                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}} -                ] +                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}}, +                ],              },              {                  conditionGroups: [ @@ -520,10 +520,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'modifierKeys',                                  operator: 'include', -                                value: 'alt, shift' -                            } -                        ] -                    } +                                value: 'alt, shift', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: { @@ -532,18 +532,18 @@ describe('Profile conditions utilities', () => {                              minItems: 2,                              allOf: [                                  {contains: {const: 'alt'}}, -                                {contains: {const: 'shift'}} -                            ] -                        } +                                {contains: {const: 'shift'}}, +                            ], +                        },                      }, -                    required: ['modifierKeys'] +                    required: ['modifierKeys'],                  },                  inputs: [                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: []}},                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt']}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift']}}, -                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}} -                ] +                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}}, +                ],              },              {                  conditionGroups: [ @@ -552,25 +552,25 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'modifierKeys',                                  operator: 'notInclude', -                                value: '' -                            } -                        ] -                    } +                                value: '', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: {                          modifierKeys: { -                            type: 'array' -                        } +                            type: 'array', +                        },                      }, -                    required: ['modifierKeys'] +                    required: ['modifierKeys'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: []}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt']}},                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift']}}, -                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}} -                ] +                    {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}}, +                ],              },              {                  conditionGroups: [ @@ -579,10 +579,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'modifierKeys',                                  operator: 'notInclude', -                                value: 'alt, shift' -                            } -                        ] -                    } +                                value: 'alt, shift', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      properties: { @@ -591,19 +591,19 @@ describe('Profile conditions utilities', () => {                              not: {                                  anyOf: [                                      {contains: {const: 'alt'}}, -                                    {contains: {const: 'shift'}} -                                ] -                            } -                        } +                                    {contains: {const: 'shift'}}, +                                ], +                            }, +                        },                      }, -                    required: ['modifierKeys'] +                    required: ['modifierKeys'],                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: 'http://example.com/', modifierKeys: []}},                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt']}},                      {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift']}}, -                    {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}} -                ] +                    {expected: false, context: {depth: 0, url: 'http://example.com/', modifierKeys: ['alt', 'shift', 'ctrl']}}, +                ],              },              // Flags tests @@ -614,10 +614,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'flags',                                  operator: 'are', -                                value: '' -                            } -                        ] -                    } +                                value: '', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      required: ['flags'], @@ -625,9 +625,9 @@ describe('Profile conditions utilities', () => {                          flags: {                              type: 'array',                              maxItems: 0, -                            minItems: 0 -                        } -                    } +                            minItems: 0, +                        }, +                    },                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: ''}}, @@ -636,8 +636,8 @@ describe('Profile conditions utilities', () => {                      // @ts-expect-error - Ignore type for string flag for testing purposes                      {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2']}},                      // @ts-expect-error - Ignore type for string flag for testing purposes -                    {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}} -                ] +                    {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}}, +                ],              },              {                  conditionGroups: [ @@ -646,10 +646,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'flags',                                  operator: 'are', -                                value: 'clipboard, test2' -                            } -                        ] -                    } +                                value: 'clipboard, test2', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      required: ['flags'], @@ -660,10 +660,10 @@ describe('Profile conditions utilities', () => {                              minItems: 2,                              allOf: [                                  {contains: {const: 'clipboard'}}, -                                {contains: {const: 'test2'}} -                            ] -                        } -                    } +                                {contains: {const: 'test2'}}, +                            ], +                        }, +                    },                  },                  inputs: [                      {expected: false, context: {depth: 0, url: ''}}, @@ -672,8 +672,8 @@ describe('Profile conditions utilities', () => {                      // @ts-expect-error - Ignore type for string flag for testing purposes                      {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2']}},                      // @ts-expect-error - Ignore type for string flag for testing purposes -                    {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}} -                ] +                    {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}}, +                ],              },              {                  conditionGroups: [ @@ -682,10 +682,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'flags',                                  operator: 'areNot', -                                value: '' -                            } -                        ] -                    } +                                value: '', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      not: { @@ -696,12 +696,12 @@ describe('Profile conditions utilities', () => {                                      flags: {                                          type: 'array',                                          maxItems: 0, -                                        minItems: 0 -                                    } -                                } -                            } -                        ] -                    } +                                        minItems: 0, +                                    }, +                                }, +                            }, +                        ], +                    },                  },                  inputs: [                      {expected: false, context: {depth: 0, url: ''}}, @@ -710,8 +710,8 @@ describe('Profile conditions utilities', () => {                      // @ts-expect-error - Ignore type for string flag for testing purposes                      {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2']}},                      // @ts-expect-error - Ignore type for string flag for testing purposes -                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}} -                ] +                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}}, +                ],              },              {                  conditionGroups: [ @@ -720,10 +720,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'flags',                                  operator: 'areNot', -                                value: 'clipboard, test2' -                            } -                        ] -                    } +                                value: 'clipboard, test2', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      not: { @@ -737,13 +737,13 @@ describe('Profile conditions utilities', () => {                                          minItems: 2,                                          allOf: [                                              {contains: {const: 'clipboard'}}, -                                            {contains: {const: 'test2'}} -                                        ] -                                    } -                                } -                            } -                        ] -                    } +                                            {contains: {const: 'test2'}}, +                                        ], +                                    }, +                                }, +                            }, +                        ], +                    },                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: ''}}, @@ -752,8 +752,8 @@ describe('Profile conditions utilities', () => {                      // @ts-expect-error - Ignore type for string flag for testing purposes                      {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2']}},                      // @ts-expect-error - Ignore type for string flag for testing purposes -                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}} -                ] +                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}}, +                ],              },              {                  conditionGroups: [ @@ -762,19 +762,19 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'flags',                                  operator: 'include', -                                value: '' -                            } -                        ] -                    } +                                value: '', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      required: ['flags'],                      properties: {                          flags: {                              type: 'array', -                            minItems: 0 -                        } -                    } +                            minItems: 0, +                        }, +                    },                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: ''}}, @@ -783,8 +783,8 @@ describe('Profile conditions utilities', () => {                      // @ts-expect-error - Ignore type for string flag for testing purposes                      {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2']}},                      // @ts-expect-error - Ignore type for string flag for testing purposes -                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}} -                ] +                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}}, +                ],              },              {                  conditionGroups: [ @@ -793,10 +793,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'flags',                                  operator: 'include', -                                value: 'clipboard, test2' -                            } -                        ] -                    } +                                value: 'clipboard, test2', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      required: ['flags'], @@ -806,10 +806,10 @@ describe('Profile conditions utilities', () => {                              minItems: 2,                              allOf: [                                  {contains: {const: 'clipboard'}}, -                                {contains: {const: 'test2'}} -                            ] -                        } -                    } +                                {contains: {const: 'test2'}}, +                            ], +                        }, +                    },                  },                  inputs: [                      {expected: false, context: {depth: 0, url: ''}}, @@ -818,8 +818,8 @@ describe('Profile conditions utilities', () => {                      // @ts-expect-error - Ignore type for string flag for testing purposes                      {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2']}},                      // @ts-expect-error - Ignore type for string flag for testing purposes -                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}} -                ] +                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}}, +                ],              },              {                  conditionGroups: [ @@ -828,18 +828,18 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'flags',                                  operator: 'notInclude', -                                value: '' -                            } -                        ] -                    } +                                value: '', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      required: ['flags'],                      properties: {                          flags: { -                            type: 'array' -                        } -                    } +                            type: 'array', +                        }, +                    },                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: ''}}, @@ -848,8 +848,8 @@ describe('Profile conditions utilities', () => {                      // @ts-expect-error - Ignore type for string flag for testing purposes                      {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2']}},                      // @ts-expect-error - Ignore type for string flag for testing purposes -                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}} -                ] +                    {expected: true,  context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}}, +                ],              },              {                  conditionGroups: [ @@ -858,10 +858,10 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'flags',                                  operator: 'notInclude', -                                value: 'clipboard, test2' -                            } -                        ] -                    } +                                value: 'clipboard, test2', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      required: ['flags'], @@ -871,11 +871,11 @@ describe('Profile conditions utilities', () => {                              not: {                                  anyOf: [                                      {contains: {const: 'clipboard'}}, -                                    {contains: {const: 'test2'}} -                                ] -                            } -                        } -                    } +                                    {contains: {const: 'test2'}}, +                                ], +                            }, +                        }, +                    },                  },                  inputs: [                      {expected: true,  context: {depth: 0, url: ''}}, @@ -884,8 +884,8 @@ describe('Profile conditions utilities', () => {                      // @ts-expect-error - Ignore type for string flag for testing purposes                      {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2']}},                      // @ts-expect-error - Ignore type for string flag for testing purposes -                    {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}} -                ] +                    {expected: false, context: {depth: 0, url: '', flags: ['clipboard', 'test2', 'test3']}}, +                ],              },              // Multiple conditions tests @@ -896,15 +896,15 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'greaterThan', -                                value: '0' +                                value: '0',                              },                              {                                  type: 'popupLevel',                                  operator: 'lessThan', -                                value: '3' -                            } -                        ] -                    } +                                value: '3', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      allOf: [ @@ -912,21 +912,21 @@ describe('Profile conditions utilities', () => {                              properties: {                                  depth: {                                      type: 'number', -                                    exclusiveMinimum: 0 -                                } +                                    exclusiveMinimum: 0, +                                },                              }, -                            required: ['depth'] +                            required: ['depth'],                          },                          {                              properties: {                                  depth: {                                      type: 'number', -                                    exclusiveMaximum: 3 -                                } +                                    exclusiveMaximum: 3, +                                },                              }, -                            required: ['depth'] -                        } -                    ] +                            required: ['depth'], +                        }, +                    ],                  },                  inputs: [                      {expected: false, context: {depth: -2, url: 'http://example.com/'}}, @@ -934,8 +934,8 @@ describe('Profile conditions utilities', () => {                      {expected: false, context: {depth: 0, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 1, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 2, url: 'http://example.com/'}}, -                    {expected: false, context: {depth: 3, url: 'http://example.com/'}} -                ] +                    {expected: false, context: {depth: 3, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [ @@ -944,24 +944,24 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'greaterThan', -                                value: '0' +                                value: '0',                              },                              {                                  type: 'popupLevel',                                  operator: 'lessThan', -                                value: '3' -                            } -                        ] +                                value: '3', +                            }, +                        ],                      },                      {                          conditions: [                              {                                  type: 'popupLevel',                                  operator: 'equal', -                                value: '0' -                            } -                        ] -                    } +                                value: '0', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      anyOf: [ @@ -971,29 +971,29 @@ describe('Profile conditions utilities', () => {                                      properties: {                                          depth: {                                              type: 'number', -                                            exclusiveMinimum: 0 -                                        } +                                            exclusiveMinimum: 0, +                                        },                                      }, -                                    required: ['depth'] +                                    required: ['depth'],                                  },                                  {                                      properties: {                                          depth: {                                              type: 'number', -                                            exclusiveMaximum: 3 -                                        } +                                            exclusiveMaximum: 3, +                                        },                                      }, -                                    required: ['depth'] -                                } -                            ] +                                    required: ['depth'], +                                }, +                            ],                          },                          {                              properties: { -                                depth: {const: 0} +                                depth: {const: 0},                              }, -                            required: ['depth'] -                        } -                    ] +                            required: ['depth'], +                        }, +                    ],                  },                  inputs: [                      {expected: false, context: {depth: -2, url: 'http://example.com/'}}, @@ -1001,8 +1001,8 @@ describe('Profile conditions utilities', () => {                      {expected: true,  context: {depth: 0, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 1, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 2, url: 'http://example.com/'}}, -                    {expected: false, context: {depth: 3, url: 'http://example.com/'}} -                ] +                    {expected: false, context: {depth: 3, url: 'http://example.com/'}}, +                ],              },              {                  conditionGroups: [ @@ -1011,29 +1011,29 @@ describe('Profile conditions utilities', () => {                              {                                  type: 'popupLevel',                                  operator: 'greaterThan', -                                value: '0' +                                value: '0',                              },                              {                                  type: 'popupLevel',                                  operator: 'lessThan', -                                value: '3' -                            } -                        ] +                                value: '3', +                            }, +                        ],                      },                      {                          conditions: [                              {                                  type: 'popupLevel',                                  operator: 'lessThanOrEqual', -                                value: '0' +                                value: '0',                              },                              {                                  type: 'popupLevel',                                  operator: 'greaterThanOrEqual', -                                value: '-1' -                            } -                        ] -                    } +                                value: '-1', +                            }, +                        ], +                    },                  ],                  expectedSchema: {                      anyOf: [ @@ -1043,21 +1043,21 @@ describe('Profile conditions utilities', () => {                                      properties: {                                          depth: {                                              type: 'number', -                                            exclusiveMinimum: 0 -                                        } +                                            exclusiveMinimum: 0, +                                        },                                      }, -                                    required: ['depth'] +                                    required: ['depth'],                                  },                                  {                                      properties: {                                          depth: {                                              type: 'number', -                                            exclusiveMaximum: 3 -                                        } +                                            exclusiveMaximum: 3, +                                        },                                      }, -                                    required: ['depth'] -                                } -                            ] +                                    required: ['depth'], +                                }, +                            ],                          },                          {                              allOf: [ @@ -1065,23 +1065,23 @@ describe('Profile conditions utilities', () => {                                      properties: {                                          depth: {                                              type: 'number', -                                            maximum: 0 -                                        } +                                            maximum: 0, +                                        },                                      }, -                                    required: ['depth'] +                                    required: ['depth'],                                  },                                  {                                      properties: {                                          depth: {                                              type: 'number', -                                            minimum: -1 -                                        } +                                            minimum: -1, +                                        },                                      }, -                                    required: ['depth'] -                                } -                            ] -                        } -                    ] +                                    required: ['depth'], +                                }, +                            ], +                        }, +                    ],                  },                  inputs: [                      {expected: false, context: {depth: -2, url: 'http://example.com/'}}, @@ -1089,9 +1089,9 @@ describe('Profile conditions utilities', () => {                      {expected: true,  context: {depth: 0, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 1, url: 'http://example.com/'}},                      {expected: true,  context: {depth: 2, url: 'http://example.com/'}}, -                    {expected: false, context: {depth: 3, url: 'http://example.com/'}} -                ] -            } +                    {expected: false, context: {depth: 3, url: 'http://example.com/'}}, +                ], +            },          ];          /* eslint-enable @stylistic/no-multi-spaces */ diff --git a/test/search-display-controller.test.js b/test/search-display-controller.test.js index 277a51c3..51442781 100644 --- a/test/search-display-controller.test.js +++ b/test/search-display-controller.test.js @@ -66,7 +66,7 @@ describe('Keyboard Event Handling', () => {      const validKeypressEvents = [          new KeyboardEvent('keydown', {key: 'a', ctrlKey: false, metaKey: false, altKey: false}),          new KeyboardEvent('keydown', {key: 'Backspace'}), -        new KeyboardEvent('keydown', {key: 'Backspace', ctrlKey: true, metaKey: false, altKey: false}) +        new KeyboardEvent('keydown', {key: 'Backspace', ctrlKey: true, metaKey: false, altKey: false}),      ];      const invalidKeypressEvents = [ @@ -79,7 +79,7 @@ describe('Keyboard Event Handling', () => {          new KeyboardEvent('keydown', {key: 'a', ctrlKey: false, metaKey: false, altKey: true}),          new KeyboardEvent('keydown', {key: 'Backspace', ctrlKey: false, metaKey: true, altKey: false}),          new KeyboardEvent('keydown', {key: 'Backspace', ctrlKey: false, metaKey: false, altKey: true}), -        new KeyboardEvent('keydown', {key: 'ArrowDown'}) +        new KeyboardEvent('keydown', {key: 'ArrowDown'}),      ];      test('should test that onKeyDown function focuses input for valid keys', () => { diff --git a/test/utilities/anki.js b/test/utilities/anki.js index 550d0c0b..6471015a 100644 --- a/test/utilities/anki.js +++ b/test/utilities/anki.js @@ -53,9 +53,9 @@ export function createTestAnkiNoteData(dictionaryEntry, mode) {              sentence: {text: '', offset: 0},              documentTitle: 'title',              query: 'query', -            fullQuery: 'fullQuery' +            fullQuery: 'fullQuery',          }, -        media: {} +        media: {},      };      return createAnkiNoteData(marker, data);  } @@ -91,11 +91,11 @@ export async function getTemplateRenderResults(dictionaryEntries, mode, template              url: 'url:',              sentence: {                  text: `${clozePrefix}${source}${clozeSuffix}`, -                offset: clozePrefix.length +                offset: clozePrefix.length,              },              documentTitle: 'title',              query: 'query', -            fullQuery: 'fullQuery' +            fullQuery: 'fullQuery',          };          /** @type {import('anki-note-builder').CreateNoteDetails} */          const details = { @@ -113,7 +113,7 @@ export async function getTemplateRenderResults(dictionaryEntries, mode, template              glossaryLayoutMode: 'default',              compactTags: false,              requirements: [], -            mediaOptions: null +            mediaOptions: null,          };          const {note: {fields: noteFields}, errors} = await ankiNoteBuilder.createNote(details);          for (const error of errors) { diff --git a/test/utilities/translator.js b/test/utilities/translator.js index e9c08443..e288c8df 100644 --- a/test/utilities/translator.js +++ b/test/utilities/translator.js @@ -78,7 +78,7 @@ export function createFindKanjiOptions(dictionaryName, optionsPresets, optionsAr      return {          enabledDictionaryMap, -        removeNonJapaneseCharacters: !!preset.removeNonJapaneseCharacters +        removeNonJapaneseCharacters: !!preset.removeNonJapaneseCharacters,      };  } @@ -126,7 +126,7 @@ export function createFindTermsOptions(dictionaryName, optionsPresets, optionsAr          removeNonJapaneseCharacters,          excludeDictionaryDefinitions,          searchResolution, -        language +        language,      } = preset;      return { @@ -140,6 +140,6 @@ export function createFindTermsOptions(dictionaryName, optionsPresets, optionsAr          enabledDictionaryMap,          excludeDictionaryDefinitions: Array.isArray(excludeDictionaryDefinitions) ? new Set(excludeDictionaryDefinitions) : null,          searchResolution: typeof searchResolution !== 'undefined' ? searchResolution : 'letter', -        language: typeof language !== 'undefined' ? language : 'ja' +        language: typeof language !== 'undefined' ? language : 'ja',      };  } |