Skip to content

Commit

Permalink
Web: Add tests for roundtripping USFM via USX
Browse files Browse the repository at this point in the history
  • Loading branch information
kavitharaju committed Oct 19, 2024
1 parent 0afce59 commit 6689d2b
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 4 deletions.
24 changes: 20 additions & 4 deletions web-usfm-parser/test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import {USFMParser} from './src/index.js';
import { readFile } from 'fs/promises';
import { DOMParser } from 'xmldom';

(async () => {
await USFMParser.init("tree-sitter-usfm.wasm", "tree-sitter.wasm");
Expand All @@ -12,15 +13,30 @@ import { readFile } from 'fs/promises';
// const output2 = usfmParser.usfm;
// console.log({ output2 });

const filePath = "../tests/usfmjsTests/missing_verses/origin.usfm";
// const filePath = "../tests/usfmjsTests/missing_verses/origin.usfm";
// const content = await readFile(filePath, 'utf-8'); // Specify encoding
// console.log(content);

// await USFMParser.init("tree-sitter-usfm.wasm", "tree-sitter.wasm");
// const usfmParser = new USFMParser(content);
// const output = usfmParser.toUSJ(null, null, true);
// console.log({output})

const filePath = "../tests/usfmjsTests/missing_verses/origin.xml";
const content = await readFile(filePath, 'utf-8'); // Specify encoding
console.log(content);
console.log("*************************");

const doc = new DOMParser().parseFromString(content);
const usfmParser = new USFMParser(null, null, doc);
console.log(usfmParser.usfm)
console.log("*************************");

await USFMParser.init("tree-sitter-usfm.wasm", "tree-sitter.wasm");
const usfmParser = new USFMParser(content);
const output = usfmParser.toUSJ(null, null, true);
console.log({output})

console.log("*************************");



})();

23 changes: 23 additions & 0 deletions web-usfm-parser/test/test_usx_conversion.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,29 @@ describe("Ensure all markers are in USX", () => {

});

describe("Test USFM-USX-USFM roundtripping", () => {
allUsfmFiles.forEach(function(value) {
if (isValidUsfm[value]) {
it(`Roundtrip ${value} via USX`, async (inputUsfmPath=value) => {
const testParser = await initialiseParser(inputUsfmPath)
assert(testParser instanceof USFMParser)
const usx = testParser.toUSX();
assert(usx.nodeType === 1);

const testParser2 = new USFMParser(null, null, usx);
const generatedUSFM = testParser2.usfm.trim();
assert.strictEqual(typeof generatedUSFM, 'string');
assert(generatedUSFM.startsWith("\\id"));

const inputMarkers = findAllMarkers(testParser.usfm)
const finalMarkers = findAllMarkers(generatedUSFM)
assert.deepStrictEqual(inputMarkers, finalMarkers, `Markers in input and generated USFMs differ`)

});
}
});

});

// describe("Compare generated USX with testsuite sample", () => {

Expand Down

0 comments on commit 6689d2b

Please sign in to comment.