@momothepug/tsmodule-alias
Version:
Nodejs module loader from Typescript path alias
81 lines (68 loc) • 2.16 kB
text/typescript
import "ts-node";
import "mocha";
import { expect } from "chai";
const rtrim = require("rtrim");
let result = "";
const testHelper = require("./Util");
describe("NodeRegister", () => {
let register;
beforeEach(function() {
register = testHelper.buildNodeRegister(testHelper.paths);
});
afterEach(function() {
register.reset();
});
it("Should stop && resolve alias resolution", () => {
const fakedMod2 = require("@fakes/moredeeply/fakemodule2");
expect(fakedMod2).not.to.be.null;
expect(fakedMod2.plus).to.be.equals("viral");
const fakedMod3 = require("@foooovars/deep/moredeeply/fakemodule2");
expect(fakedMod3).not.to.be.null;
expect(fakedMod3.plus).to.be.equals("viral");
});
/*
it("Should disable alias", () => {
register.reset();
expect(require("@fakes/moredeeply/fakemodule31")).to.be.null;
});*/
it(" Should load a faked module ", () => {
const fakedMod = require("./fake/fakemodule");
expect(fakedMod).not.to.be.null;
expect(fakedMod.foo).to.be.equals("bar");
const fakedMod2 = require("@fakes/moredeeply/fakemodule2");
expect(fakedMod2).not.to.be.null;
expect(fakedMod2.plus).to.be.equals("viral");
let fakedMod3 = null;
try {
fakedMod3 = require("@fakes___x/moredeeply/fakemodule3");
} catch (e) {}
expect(fakedMod3).to.be.null;
});
});
describe("NODE CONTEXT", () => {
let helperObject;
let fakedMod2;
beforeEach(function() {
helperObject = testHelper.buildDependency();
fakedMod2 = require("@fakes/moredeeply/fakemodule2");
});
afterEach(function() {
});
it("Should verify if a module exists", () => {
expect(helperObject.nodeContext.hasNodeModule("<sasasasaasasasass")).to.be
.false;
expect(
helperObject.nodeContext.hasNodeModule("@fakes/moredeeply/fakemodule2")
).to.not.be.false;
});
it("Should remove a module", () => {
expect(
helperObject.nodeContext.removeCachedNodeModule("<sasasasaasasasass")
).to.be.false;
expect(
helperObject.nodeContext.removeCachedNodeModule(
"@fakes/moredeeply/fakemodule2"
)
).to.be.true;
});
});