barrelsby-alias
Version:
Barrelsby fork providing an alias builder.
93 lines (90 loc) • 3.23 kB
text/typescript
import * as path from "path";
import {Options} from "../options";
import * as TestUtilities from "../testUtilities";
import * as FileSystem from "./fileSystem";
describe("builder/fileSystem module has a", () => {
describe("buildFileSystemBarrel function that", () => {
describe("when using double quotes", () => {
let output: string;
const options: Options = {
barrelName: "index.ts",
logger: () => void 0,
quoteCharacter: "\"",
rootPath: path.resolve("./"),
};
beforeEach(() => {
const rootDirectory = TestUtilities.mockDirectoryTree();
output = FileSystem.buildFileSystemBarrel(
rootDirectory,
TestUtilities.mockModules(rootDirectory),
options,
);
});
it("should produce the correct output", () => {
TestUtilities.assertMultiLine(
output,
`import * as barrelts from "./barrel";
import * as directory2directory4deeplyNestedts from "./directory2/directory4/deeplyNested";
import * as directory2scriptts from "./directory2/script";
import * as directory3programts from "./directory3/program";
import * as indexts from "./index";
export {barrelts as barrel};
export const directory2 = {
directory4: {
deeplyNested: directory2directory4deeplyNestedts,
},
script: directory2scriptts,
};
export const directory3 = {
program: directory3programts,
};
export {indexts as index};
`);
});
it("should produce output compatible with the recommended tslint ruleset", () => {
TestUtilities.tslint(output, options);
});
});
});
describe("when using single quotes", () => {
let output: string;
const options: Options = {
barrelName: "index.ts",
logger: () => void 0,
quoteCharacter: "'",
rootPath: path.resolve("./"),
};
beforeEach(() => {
const rootDirectory = TestUtilities.mockDirectoryTree();
output = FileSystem.buildFileSystemBarrel(
rootDirectory,
TestUtilities.mockModules(rootDirectory),
options,
);
});
it("should produce the correct output", () => {
TestUtilities.assertMultiLine(
output,
`import * as barrelts from './barrel';
import * as directory2directory4deeplyNestedts from './directory2/directory4/deeplyNested';
import * as directory2scriptts from './directory2/script';
import * as directory3programts from './directory3/program';
import * as indexts from './index';
export {barrelts as barrel};
export const directory2 = {
directory4: {
deeplyNested: directory2directory4deeplyNestedts,
},
script: directory2scriptts,
};
export const directory3 = {
program: directory3programts,
};
export {indexts as index};
`);
});
it("should produce output compatible with the recommended tslint ruleset", () => {
TestUtilities.tslint(output, options);
});
});
});