diff --git a/web/src/test/auto/dom/cases/packages/cloudQueries.js b/web/src/test/auto/dom/cases/packages/cloudQueries.spec.mjs similarity index 89% rename from web/src/test/auto/dom/cases/packages/cloudQueries.js rename to web/src/test/auto/dom/cases/packages/cloudQueries.spec.mjs index d9b2af8d49..c76efc21de 100644 --- a/web/src/test/auto/dom/cases/packages/cloudQueries.js +++ b/web/src/test/auto/dom/cases/packages/cloudQueries.spec.mjs @@ -1,9 +1,9 @@ -import { assert } from '/node_modules/chai/chai.js'; -import sinon from '/node_modules/sinon/pkg/sinon-esm.js'; +import { assert } from 'chai'; +import sinon from 'sinon'; -import { CloudQueryEngine } from '/@keymanapp/keyman/build/engine/package-cache/lib/index.mjs'; -import { PathConfiguration } from '/@keymanapp/keyman/build/engine/paths/lib/index.mjs'; -import DOMCloudRequester from '/@keymanapp/keyman/build/engine/package-cache/lib/dom-cloud-requester.mjs'; +import { CloudQueryEngine } from 'keyman/engine/package-cache'; +import { PathConfiguration } from 'keyman/engine/paths'; +import DOMCloudRequester from 'keyman/engine/package-cache/dom-requester'; const pathConfig = new PathConfiguration({ root: '', @@ -114,7 +114,7 @@ describe("Cloud-query interface", () => { } it('sil_euro_latin@no,sv', async () => { - const querier = mockQuery(`base/web/src/test/auto/resources/query-mock-results/sil_euro_latin@no_sv.js.fixture`); + const querier = mockQuery(`resources/query-mock-results/sil_euro_latin@no_sv.js.fixture`); const promise = querier.fetchCloudStubs(['sil_euro_latin@no','sil_euro_latin@sv']); const stubs = await promise; @@ -131,7 +131,7 @@ describe("Cloud-query interface", () => { }); it('sil_cameroon_azerty', async () => { - const querier = mockQuery(`base/web/src/test/auto/resources/query-mock-results/sil_cameroon_azerty.js.fixture`); + const querier = mockQuery('resources/query-mock-results/sil_cameroon_azerty.js.fixture'); const promise = querier.fetchCloudStubs(['sil_cameroon_azerty']); const stubs = await promise; @@ -147,7 +147,7 @@ describe("Cloud-query interface", () => { }); it('@dz', async () => { - const querier = mockQuery(`base/web/src/test/auto/resources/query-mock-results/@dz.js.fixture`); + const querier = mockQuery(`resources/query-mock-results/@dz.js.fixture`); const promise = querier.fetchCloudStubs(['@dz']); const stubs = await promise; diff --git a/web/src/test/auto/dom/cases/packages/domCloudRequester.js b/web/src/test/auto/dom/cases/packages/domCloudRequester.spec.mjs similarity index 85% rename from web/src/test/auto/dom/cases/packages/domCloudRequester.js rename to web/src/test/auto/dom/cases/packages/domCloudRequester.spec.mjs index eb83254c29..1e0e66ad78 100644 --- a/web/src/test/auto/dom/cases/packages/domCloudRequester.js +++ b/web/src/test/auto/dom/cases/packages/domCloudRequester.spec.mjs @@ -1,7 +1,7 @@ -import { assert } from '/node_modules/chai/chai.js'; -import sinon from '/node_modules/sinon/pkg/sinon-esm.js'; +import { assert } from 'chai'; +import sinon from 'sinon'; -import DOMCloudRequester from '/@keymanapp/keyman/build/engine/package-cache/lib/dom-cloud-requester.mjs'; +import DOMCloudRequester from 'keyman/engine/package-cache/dom-requester'; describe("Mocked cloud query results ('canary' testing)", () => { function performMockedRequest(mockedResultsPath) { @@ -33,7 +33,7 @@ describe("Mocked cloud query results ('canary' testing)", () => { } it('sil_euro_latin@no,sv', async () => { - const query = performMockedRequest('base/web/src/test/auto/resources/query-mock-results/sil_euro_latin@no_sv.js.fixture'); + const query = performMockedRequest('resources/query-mock-results/sil_euro_latin@no_sv.js.fixture'); await query.promise; assert.isTrue(query.mockedRegister.called); @@ -53,7 +53,7 @@ describe("Mocked cloud query results ('canary' testing)", () => { }); it('sil_cameroon_azerty', async () => { - const query = performMockedRequest('base/web/src/test/auto/resources/query-mock-results/sil_cameroon_azerty.js.fixture'); + const query = performMockedRequest('resources/query-mock-results/sil_cameroon_azerty.js.fixture'); await query.promise; assert.isTrue(query.mockedRegister.called); @@ -70,7 +70,7 @@ describe("Mocked cloud query results ('canary' testing)", () => { }); it('@dz', async () => { - const query = performMockedRequest('base/web/src/test/auto/resources/query-mock-results/@dz.js.fixture'); + const query = performMockedRequest('resources/query-mock-results/@dz.js.fixture'); await query.promise; assert.isTrue(query.mockedRegister.called); diff --git a/web/src/test/auto/dom/cases/packages/keyboardRequisitioner.js b/web/src/test/auto/dom/cases/packages/keyboardRequisitioner.spec.mjs similarity index 84% rename from web/src/test/auto/dom/cases/packages/keyboardRequisitioner.js rename to web/src/test/auto/dom/cases/packages/keyboardRequisitioner.spec.mjs index 235a0d3227..561fa34462 100644 --- a/web/src/test/auto/dom/cases/packages/keyboardRequisitioner.js +++ b/web/src/test/auto/dom/cases/packages/keyboardRequisitioner.spec.mjs @@ -1,11 +1,11 @@ -import { assert } from '/node_modules/chai/chai.js'; -import sinon from '/node_modules/sinon/pkg/sinon-esm.js'; +import { assert } from 'chai'; +import sinon from 'sinon'; -import { KeyboardHarness, MinimalKeymanGlobal } from '/@keymanapp/keyboard-processor/build/lib/index.mjs'; -import { DOMKeyboardLoader } from '/@keymanapp/keyboard-processor/build/lib/dom-keyboard-loader.mjs'; -import { PathConfiguration } from '/@keymanapp/keyman/build/engine/paths/lib/index.mjs'; -import { KeyboardRequisitioner } from '/@keymanapp/keyman/build/engine/package-cache/lib/index.mjs'; -import DOMCloudRequester from '/@keymanapp/keyman/build/engine/package-cache/lib/dom-cloud-requester.mjs'; +import { KeyboardHarness, MinimalKeymanGlobal } from '@keymanapp/keyboard-processor'; +import { DOMKeyboardLoader } from '@keymanapp/keyboard-processor/dom-keyboard-loader'; +import { PathConfiguration } from 'keyman/engine/paths'; +import { KeyboardRequisitioner } from 'keyman/engine/package-cache'; +import DOMCloudRequester from 'keyman/engine/package-cache/dom-requester'; const pathConfig = new PathConfiguration({ root: '', @@ -69,7 +69,7 @@ describe("KeyboardRequisitioner", function () { // // The edits are minimal and notated within the fixture file. // Path becomes /resources/keyboards/khmer_angkor.js. - mockQuery(keyboardRequisitioner.cloudQueryEngine, `base/web/src/test/auto/resources/query-mock-results/khmer_angkor.hand-edited.js.fixture`); + mockQuery(keyboardRequisitioner.cloudQueryEngine, `resources/query-mock-results/khmer_angkor.hand-edited.js.fixture`); const [stub] = await keyboardRequisitioner.addKeyboardArray(['khmer_angkor']); assert.strictEqual(cache.getStub(stub.KI, stub.KLC), stub); @@ -87,8 +87,9 @@ describe("KeyboardRequisitioner", function () { const cache = keyboardRequisitioner.cache; // Expects the keyboard at resources/keyboards/khmer_angkor.js; this would resolve to - // http://localhost:9876/resources/keyboards/khmer_angkor.js aased on our configured path. - const stubJSON = fixture.load("/keyboards/khmer_angkor.json", true); + // http://localhost:9876/resources/keyboards/khmer_angkor.js based on our configured path. + const fixture = await fetch('resources/stubs/khmer_angkor.json'); + const stubJSON = await fixture.json(); // But we can't be sure that `localhost:9876` is the actual path it will have on EVERYONE's machine. Let's fix it. // We'll make it match the path for the previous test by ensuring a '/' for absolute pathing based on server root. diff --git a/web/src/test/auto/dom/web-test-runner.config.mjs b/web/src/test/auto/dom/web-test-runner.config.mjs index fc35f39f1e..fbc9c09b6e 100644 --- a/web/src/test/auto/dom/web-test-runner.config.mjs +++ b/web/src/test/auto/dom/web-test-runner.config.mjs @@ -46,6 +46,11 @@ export default { name: 'engine/element-wrappers', // Relative, from the containing package.json files: ['src/test/auto/dom/cases/element-wrappers/**/*.spec.mjs'] + }, + { + name: 'engine/package-cache', + // Relative, from the containing package.json + files: ['src/test/auto/dom/cases/packages/**/*.spec.mjs'] } ], middleware: [ diff --git a/web/src/test/auto/resources/query-mock-results/khmer_angkor.hand-edited.js.fixture b/web/src/test/auto/resources/query-mock-results/khmer_angkor.hand-edited.js.fixture index 63456e826c..27290f03e9 100644 --- a/web/src/test/auto/resources/query-mock-results/khmer_angkor.hand-edited.js.fixture +++ b/web/src/test/auto/resources/query-mock-results/khmer_angkor.hand-edited.js.fixture @@ -6,7 +6,7 @@ keyman.register( "device":"any", // Change 1: redirect to /common/test/resources' subfolder. // "keyboardBaseUri":"https://s.keyman.com/keyboard/", - "keyboardBaseUri":"/resources/keyboards/", + "keyboardBaseUri":"common/test/resources/keyboards/", "fontBaseUri":"https://s.keyman.com/font/deploy/", "keyboardid":"khmer_angkor", "keyboardVersion":"current" diff --git a/web/src/test/auto/resources/stubs/khmer_angkor.json b/web/src/test/auto/resources/stubs/khmer_angkor.json new file mode 100644 index 0000000000..7262ac7a36 --- /dev/null +++ b/web/src/test/auto/resources/stubs/khmer_angkor.json @@ -0,0 +1,10 @@ +{ + "id": "khmer_angkor", + "name":"Khmer Angkor", + "languages":{ + "id":"km", + "name": "Khmer", + "region": "Asia" + }, + "filename":"common/test/resources/keyboards/khmer_angkor.js" +} \ No newline at end of file