diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/database.test.js | 29 | ||||
-rw-r--r-- | test/dictionary-data-validate.test.js | 15 | ||||
-rw-r--r-- | test/fixtures/translator-test.js | 7 | ||||
-rw-r--r-- | test/playwright/integration.spec.js | 7 |
4 files changed, 25 insertions, 33 deletions
diff --git a/test/database.test.js b/test/database.test.js index 5dbc1040..a930d68d 100644 --- a/test/database.test.js +++ b/test/database.test.js @@ -21,8 +21,8 @@ import {readFileSync} from 'node:fs'; import {fileURLToPath} from 'node:url'; import {join, dirname as pathDirname} from 'path'; import {beforeEach, describe, test, vi} from 'vitest'; +import {createDictionaryArchiveData, getDictionaryArchiveIndex} from '../dev/dictionary-archive-util.js'; import {parseJson} from '../dev/json.js'; -import {createDictionaryArchive} from '../dev/util.js'; import {DictionaryDatabase} from '../ext/js/dictionary/dictionary-database.js'; import {DictionaryImporter} from '../ext/js/dictionary/dictionary-importer.js'; import {DictionaryImporterMediaLoader} from './mocks/dictionary-importer-media-loader.js'; @@ -34,11 +34,11 @@ vi.stubGlobal('IDBKeyRange', IDBKeyRange); /** * @param {string} dictionary * @param {string} [dictionaryName] - * @returns {import('jszip')} + * @returns {Promise<ArrayBuffer>} */ -function createTestDictionaryArchive(dictionary, dictionaryName) { +async function createTestDictionaryArchiveData(dictionary, dictionaryName) { const dictionaryDirectory = join(dirname, 'data', 'dictionaries', dictionary); - return createDictionaryArchive(dictionaryDirectory, dictionaryName); + return await createDictionaryArchiveData(dictionaryDirectory, dictionaryName); } /** @@ -110,10 +110,8 @@ describe('Database', () => { }); test('Database invalid usage', async ({expect}) => { // Load dictionary data - const testDictionary = createTestDictionaryArchive('valid-dictionary1'); - const testDictionarySource = await testDictionary.generateAsync({type: 'arraybuffer'}); - /** @type {import('dictionary-data').Index} */ - const testDictionaryIndex = parseJson(await testDictionary.files['index.json'].async('string')); + const testDictionarySource = await createTestDictionaryArchiveData('valid-dictionary1'); + const testDictionaryIndex = await getDictionaryArchiveIndex(testDictionarySource); const title = testDictionaryIndex.title; const titles = new Map([ @@ -165,8 +163,7 @@ describe('Database', () => { const dictionaryDatabase = new DictionaryDatabase(); await dictionaryDatabase.prepare(); - const testDictionary = createTestDictionaryArchive(name); - const testDictionarySource = await testDictionary.generateAsync({type: 'arraybuffer'}); + const testDictionarySource = await createTestDictionaryArchiveData(name); /** @type {import('dictionary-importer').ImportDetails} */ const detaultImportDetails = {prefixWildcardsSupported: false}; @@ -183,10 +180,8 @@ describe('Database', () => { const fakeImportDate = testData.expectedSummary.importDate; // Load dictionary data - const testDictionary = createTestDictionaryArchive('valid-dictionary1'); - const testDictionarySource = await testDictionary.generateAsync({type: 'arraybuffer'}); - /** @type {import('dictionary-data').Index} */ - const testDictionaryIndex = parseJson(await testDictionary.files['index.json'].async('string')); + const testDictionarySource = await createTestDictionaryArchiveData('valid-dictionary1'); + const testDictionaryIndex = await getDictionaryArchiveIndex(testDictionarySource); const title = testDictionaryIndex.title; const titles = new Map([ @@ -315,10 +310,8 @@ describe('Database', () => { describe.each(cleanupTestCases)('Testing cleanup method $clearMethod', ({clearMethod}) => { test('Import data and test', async ({expect}) => { // Load dictionary data - const testDictionary = createTestDictionaryArchive('valid-dictionary1'); - const testDictionarySource = await testDictionary.generateAsync({type: 'arraybuffer'}); - /** @type {import('dictionary-data').Index} */ - const testDictionaryIndex = parseJson(await testDictionary.files['index.json'].async('string')); + const testDictionarySource = await createTestDictionaryArchiveData('valid-dictionary1'); + const testDictionaryIndex = await getDictionaryArchiveIndex(testDictionarySource); // Setup database const dictionaryDatabase = new DictionaryDatabase(); diff --git a/test/dictionary-data-validate.test.js b/test/dictionary-data-validate.test.js index b09e4ae0..a8d9f1ab 100644 --- a/test/dictionary-data-validate.test.js +++ b/test/dictionary-data-validate.test.js @@ -19,19 +19,19 @@ import {fileURLToPath} from 'node:url'; import path from 'path'; import {describe, it} from 'vitest'; +import {createDictionaryArchiveData} from '../dev/dictionary-archive-util.js'; import * as dictionaryValidate from '../dev/dictionary-validate.js'; -import {createDictionaryArchive} from '../dev/util.js'; const dirname = path.dirname(fileURLToPath(import.meta.url)); /** * @param {string} dictionary * @param {string} [dictionaryName] - * @returns {import('jszip')} + * @returns {Promise<ArrayBuffer>} */ -function createTestDictionaryArchive(dictionary, dictionaryName) { +async function createTestDictionaryArchiveData(dictionary, dictionaryName) { const dictionaryDirectory = path.join(dirname, 'data', 'dictionaries', dictionary); - return createDictionaryArchive(dictionaryDirectory, dictionaryName); + return await createDictionaryArchiveData(dictionaryDirectory, dictionaryName); } describe('Dictionary validation', () => { @@ -47,11 +47,12 @@ describe('Dictionary validation', () => { const schemas = dictionaryValidate.getSchemas(); describe.each(testCases)('Test dictionary $name', ({name, valid}) => { it(`should be ${valid ? 'valid' : 'invalid'}`, async ({expect}) => { - const archive = createTestDictionaryArchive(name); + const archive = await createTestDictionaryArchiveData(name); + const promise = dictionaryValidate.validateDictionary(null, archive, schemas); await ( valid ? - expect(dictionaryValidate.validateDictionary(null, archive, schemas)).resolves.not.toThrow() : - expect(dictionaryValidate.validateDictionary(null, archive, schemas)).rejects.toThrow() + expect(promise).resolves.not.toThrow() : + expect(promise).rejects.toThrow() ); }); }); diff --git a/test/fixtures/translator-test.js b/test/fixtures/translator-test.js index 95218830..ff3782a7 100644 --- a/test/fixtures/translator-test.js +++ b/test/fixtures/translator-test.js @@ -21,8 +21,8 @@ import {readFileSync} from 'fs'; import {fileURLToPath} from 'node:url'; import {dirname, join} from 'path'; import {expect, vi} from 'vitest'; +import {createDictionaryArchiveData} from '../../dev/dictionary-archive-util.js'; import {parseJson} from '../../dev/json.js'; -import {createDictionaryArchive} from '../../dev/util.js'; import {DictionaryDatabase} from '../../ext/js/dictionary/dictionary-database.js'; import {DictionaryImporter} from '../../ext/js/dictionary/dictionary-importer.js'; import {Translator} from '../../ext/js/language/translator.js'; @@ -45,8 +45,7 @@ vi.stubGlobal('chrome', chrome); */ export async function createTranslatorContext(dictionaryDirectory, dictionaryName) { // Dictionary - const testDictionary = createDictionaryArchive(dictionaryDirectory, dictionaryName); - const testDictionaryContent = await testDictionary.generateAsync({type: 'arraybuffer'}); + const testDictionaryData = await createDictionaryArchiveData(dictionaryDirectory, dictionaryName); // Setup database const dictionaryImporterMediaLoader = new DictionaryImporterMediaLoader(); @@ -56,7 +55,7 @@ export async function createTranslatorContext(dictionaryDirectory, dictionaryNam const {errors} = await dictionaryImporter.importDictionary( dictionaryDatabase, - testDictionaryContent, + testDictionaryData, {prefixWildcardsSupported: true} ); diff --git a/test/playwright/integration.spec.js b/test/playwright/integration.spec.js index 8e641397..bdbe80e3 100644 --- a/test/playwright/integration.spec.js +++ b/test/playwright/integration.spec.js @@ -16,7 +16,7 @@ */ import path from 'path'; -import {createDictionaryArchive} from '../../dev/util.js'; +import {createDictionaryArchiveData} from '../../dev/dictionary-archive-util.js'; import {deferPromise} from '../../ext/js/core/utilities.js'; import { expect, @@ -67,12 +67,11 @@ test('anki add', async ({context, page, extensionId}) => { await page.goto(`chrome-extension://${extensionId}/settings.html`); // Load in test dictionary - const dictionary = createDictionaryArchive(path.join(root, 'test/data/dictionaries/valid-dictionary1'), 'valid-dictionary1'); - const testDictionarySource = await dictionary.generateAsync({type: 'arraybuffer'}); + const dictionary = await createDictionaryArchiveData(path.join(root, 'test/data/dictionaries/valid-dictionary1'), 'valid-dictionary1'); await page.locator('input[id="dictionary-import-file-input"]').setInputFiles({ name: 'valid-dictionary1.zip', mimeType: 'application/x-zip', - buffer: Buffer.from(testDictionarySource) + buffer: Buffer.from(dictionary) }); await expect(page.locator('id=dictionaries')).toHaveText('Dictionaries (1 installed, 1 enabled)', {timeout: 5 * 60 * 1000}); |