slv-utils
Version:
Utilities for working with SLV and DAT files.
67 lines (59 loc) • 1.88 kB
JavaScript
/*global describe it*/
;
/*
testing of conversion of SLV into different formats
from /cases/?/model.slv and compare with /cases/?/master/?
*/
const { expect } = require('chai');
const fs = require('fs');
const path = require('path');
const { slvParse, slvjs2heta } = require('../src');
const cases = require('./slv-cases');
describe('SLV exports', () => {
cases.forEach((x) => {
describe('test ' + x.name, () => {
// common obj
let slv // SLV content
, slvjs // slvjs to compare
, slvjsActual // parsed SLV
, hetajs // Heta JSON to compare
, hetajsActual // conversion to Heta JSON
, heta; // Heta to compare
// source file
slv = fs.readFileSync(
path.resolve(__dirname, x.sourcePath),
'utf8'
);
// slvjs file
let slvjsStr = fs.readFileSync(
path.resolve(__dirname, x.slvjsPath),
'utf8'
);
slvjs = JSON.parse(slvjsStr);
// hetajs file
let hetajsStr = x.hetajsPath && fs.readFileSync(
path.resolve(__dirname, x.hetajsPath),
'utf8'
);
hetajs = hetajsStr && JSON.parse(hetajsStr);
// heta file
heta = x.hetaPath && fs.readFileSync(
path.resolve(__dirname, x.hetaPath),
'utf8'
);
it('parsing to slvjs', () => {
slvjsActual = slvParse.parse(slv);
expect(slvjsActual).to.be.deep.equal(slvjs);
});
hetajs && it('convert to Heta JSON module', () => {
let hetajsActualString = slvjs2heta(slvjsActual, true);
hetajsActual = JSON.parse(hetajsActualString);
expect(hetajsActual).to.be.deep.equal(hetajs);
});
heta && it('convert to Heta module', () => {
let hetaActual = slvjs2heta(slvjsActual, false, true);
expect(hetaActual).to.be.equal(heta);
});
});
});
});