microvium
Version:
A compact, embeddable scripting engine for microcontrollers for executing small scripts written in a subset of JavaScript.
47 lines (46 loc) • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const lib_1 = require("../lib");
const chai_1 = require("chai");
const utils_1 = require("../lib/utils");
const inputJSON = JSON.stringify({
x: 10,
y: [5, 6]
});
const sourceText = `
const config = JSON.parse(getConfig());
vmExport(0, run);
const assertEqual = vmImport(0);
function run() {
assertEqual(config.x, 10);
assertEqual(config.y.length, 2);
assertEqual(config.y[0], 5);
assertEqual(config.y[1], 6);
}
`;
suite('json-parse', function () {
test('general', () => {
const snapshot = build();
const vm = lib_1.Microvium.restore(snapshot, {
0: assertEqual
});
const run = vm.resolveExport(0);
run();
function assertEqual(a, b) {
chai_1.assert.deepEqual(a, b);
}
function build() {
const vm = lib_1.Microvium.create();
const global = vm.globalThis;
global.parse = (0, utils_1.jsonParse)(vm);
global.vmExport = vm.vmExport;
global.vmImport = vm.vmImport;
global.JSON = vm.newObject();
global.JSON.parse = (0, utils_1.jsonParse)(vm);
global.getConfig = () => inputJSON;
vm.evaluateModule({ sourceText });
return vm.createSnapshot();
}
});
});
//# sourceMappingURL=json-parse.test.js.map