spiegel-keyman/developer/js/tests/test-package-compiler.ts
2019-09-02 08:44:54 +10:00

41 lines
1.3 KiB
TypeScript

import 'mocha';
import * as fs from 'fs';
import {assert} from 'chai';
import KmpCompiler from '../dist/package-compiler/kmp-compiler';
import {makePathToFixture} from './helpers';
describe('KmpCompiler', function () {
const MODELS = [
'example.qaa.sencoten',
];
let kmpCompiler = new KmpCompiler();
for (let modelID of MODELS) {
let kpsPath = makePathToFixture(modelID, `${modelID}.model.kps`);
let kmpJsonPath = makePathToFixture(modelID, `${modelID}.model.kmp.json`);
let kmpJsonFixture = JSON.parse(fs.readFileSync(kmpJsonPath, 'utf-8'));
//
// Test just the transform from kps to kmp.json
//
it(`should transform ${modelID}.model.kps to kmp.json`, function () {
let source = fs.readFileSync(kpsPath, 'utf-8');
let kmpJson: KmpJsonFile;
assert.doesNotThrow(() => {
kmpJson = kmpCompiler.transformKpsToKmpObject(source);
});
// Test that the kmp.json data is identical
assert.deepEqual(kmpJson, kmpJsonFixture);
// This was used when building initial test data
//fs.writeFileSync(kmpJsonPath, JSON.stringify(kmpJson), 'utf-8');
});
// TODO: end-to-end test to build .model.kmp file; however, this depends on building model and kmp.json first
//let kmpPath = makePathToFixture(modelID, `${modelID}.model.kmp`);
}
});