UNPKG

@informalsystems/quint

Version:

Core tool for the Quint specification language

43 lines 2.24 kB
"use strict"; 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