@informalsystems/quint
Version:
Core tool for the Quint specification language
43 lines • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const mocha_1 = require("mocha");
const chai_1 = require("chai");
const either_1 = require("@sweet-monads/either");
const path_1 = require("path");
const sourceResolver_1 = require("../../src/parsing/sourceResolver");
const fs_1 = require("fs");
const eol_1 = require("eol");
const basename = (0, path_1.resolve)(__dirname, '../../testFixture');
// read a Quint file from the test data directory
function readQuint(name) {
const p = (0, path_1.resolve)(__dirname, '../../testFixture', name + '.qnt');
const content = (0, fs_1.readFileSync)(p).toString('utf8');
return (0, eol_1.lf)(content);
}
(0, mocha_1.describe)('resolve sources from files', () => {
(0, mocha_1.it)('resolves relative path on same dir', () => {
const expected = readQuint('./_0001emptyModule');
const r = (0, sourceResolver_1.fileSourceResolver)();
const result = r.load(r.lookupPath(basename, './_0001emptyModule.qnt'));
chai_1.assert.deepEqual(result, (0, either_1.right)(expected));
});
(0, mocha_1.it)('resolves relative path on parent dir', () => {
const expected = readQuint('./_0001emptyModule');
const r = (0, sourceResolver_1.fileSourceResolver)();
const result = r.load(r.lookupPath(basename, '../testFixture/_0001emptyModule.qnt'));
chai_1.assert.deepEqual(result, (0, either_1.right)(expected));
});
(0, mocha_1.it)('errors on non-existant', () => {
const r = (0, sourceResolver_1.fileSourceResolver)();
const result = r.load(r.lookupPath(basename, 'does-not-exist'));
const filenameInError = (0, path_1.resolve)(basename, 'does-not-exist');
chai_1.assert.deepEqual(result, (0, either_1.left)(`ENOENT: no such file or directory, open '${filenameInError}'`));
});
(0, mocha_1.it)('stemname', () => {
const r = (0, sourceResolver_1.fileSourceResolver)();
const result = r.stempath(r.lookupPath(`${basename}/testFixture`, './_0001emptyModule.qnt'));
const expected = (0, path_1.resolve)(basename, 'testFixture');
chai_1.assert.deepEqual(result, expected);
});
});
//# sourceMappingURL=sourceResolver.test.js.map