From 3d1972bd4f4a0d05e00ec0d1bb3e710c8c580721 Mon Sep 17 00:00:00 2001 From: Sabine Date: Fri, 11 Jul 2025 10:40:07 +0200 Subject: [PATCH] feat(developer): add tests for validate() --- .../test/data/Test_additionalTags.keylayout | 601 ++++++++++++++++++ .../test/data/Test_missingTags.keylayout | 595 +++++++++++++++++ .../test/data/Test_noActionWhen.keylayout | 598 +++++++++++++++++ .../test/data/Test_unknownTags.keylayout | 598 +++++++++++++++++ .../kmc-convert/test/kmn-file-reader.tests.ts | 42 ++ 5 files changed, 2434 insertions(+) create mode 100644 developer/src/kmc-convert/test/data/Test_additionalTags.keylayout create mode 100644 developer/src/kmc-convert/test/data/Test_missingTags.keylayout create mode 100644 developer/src/kmc-convert/test/data/Test_noActionWhen.keylayout create mode 100644 developer/src/kmc-convert/test/data/Test_unknownTags.keylayout diff --git a/developer/src/kmc-convert/test/data/Test_additionalTags.keylayout b/developer/src/kmc-convert/test/data/Test_additionalTags.keylayout new file mode 100644 index 0000000000..990b60a23a --- /dev/null +++ b/developer/src/kmc-convert/test/data/Test_additionalTags.keylayout @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/developer/src/kmc-convert/test/data/Test_missingTags.keylayout b/developer/src/kmc-convert/test/data/Test_missingTags.keylayout new file mode 100644 index 0000000000..271eeda562 --- /dev/null +++ b/developer/src/kmc-convert/test/data/Test_missingTags.keylayout @@ -0,0 +1,595 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/developer/src/kmc-convert/test/data/Test_noActionWhen.keylayout b/developer/src/kmc-convert/test/data/Test_noActionWhen.keylayout new file mode 100644 index 0000000000..61d87537ad --- /dev/null +++ b/developer/src/kmc-convert/test/data/Test_noActionWhen.keylayout @@ -0,0 +1,598 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/developer/src/kmc-convert/test/data/Test_unknownTags.keylayout b/developer/src/kmc-convert/test/data/Test_unknownTags.keylayout new file mode 100644 index 0000000000..e34ee30794 --- /dev/null +++ b/developer/src/kmc-convert/test/data/Test_unknownTags.keylayout @@ -0,0 +1,598 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/developer/src/kmc-convert/test/kmn-file-reader.tests.ts b/developer/src/kmc-convert/test/kmn-file-reader.tests.ts index 61be6c667a..5624d65685 100644 --- a/developer/src/kmc-convert/test/kmn-file-reader.tests.ts +++ b/developer/src/kmc-convert/test/kmn-file-reader.tests.ts @@ -11,6 +11,7 @@ import 'mocha'; import { assert } from 'chai'; import { compilerTestCallbacks, makePathToFixture } from './helpers/index.js'; import { KeylayoutFileReader } from '../src/keylayout-to-kmn/keylayout-file-reader.js'; +import { KeylayoutXMLSourceFile } from '../../common/web/utils/src/types/keylayout/keylayout-xml.js'; describe('KeylayoutFileReader', function () { @@ -18,6 +19,47 @@ describe('KeylayoutFileReader', function () { compilerTestCallbacks.clear(); }); + describe("validate() ", function () { + + it('validate() should return true on correct inputfile', async function () { + const sut_r = new KeylayoutFileReader(compilerTestCallbacks); + const inputFilename = makePathToFixture('../data/Test.keylayout'); + const result: KeylayoutXMLSourceFile = sut_r.read(inputFilename); + const validated = sut_r.validate(result); + assert.isTrue(validated); + }); + + it('validate() should return false on inputfile with unknown tags', async function () { + const sut_r = new KeylayoutFileReader(compilerTestCallbacks); + const inputFilename = makePathToFixture('../data/Test_unknownTags.keylayout'); + const result: KeylayoutXMLSourceFile = sut_r.read(inputFilename); + const validated = sut_r.validate(result); + assert.isFalse(validated); + }); + + it('validate() should return false on inputfile with additional tags', async function () { + const sut_r = new KeylayoutFileReader(compilerTestCallbacks); + const inputFilename = makePathToFixture('../data/Test_additionalTags.keylayout'); + const result: KeylayoutXMLSourceFile = sut_r.read(inputFilename); + const validated = sut_r.validate(result); + assert.isFalse(validated); + }); + it('validate() should return false on inputfile with missing tags', async function () { + const sut_r = new KeylayoutFileReader(compilerTestCallbacks); + const inputFilename = makePathToFixture('../data/Test_missingTags.keylayout'); + const result: KeylayoutXMLSourceFile = sut_r.read(inputFilename); + const validated = sut_r.validate(result); + assert.isFalse(validated); + }); + it('validate() should return false on no entries in action-when', async function () { + const sut_r = new KeylayoutFileReader(compilerTestCallbacks); + const inputFilename = makePathToFixture('../data/Test_noActionWhen.keylayout'); + const result: KeylayoutXMLSourceFile = sut_r.read(inputFilename); + const validated = sut_r.validate(result); + assert.isFalse(validated); + }); + }); + describe("read() ", function () { const sut_r = new KeylayoutFileReader(compilerTestCallbacks);