UNPKG

fuse-box

Version:

Fuse-Box a bundler that does it right

68 lines (55 loc) 2.48 kB
import { should } from "fuse-test-runner"; import { FuseTestEnv, createRealNodeModule } from "./stubs/FuseTestEnv"; import { ExtensionOverrides } from "../core/ExtensionOverrides"; export class ExtensionOverridesTest { "Should create an instance and set overrides if they are valid"() { const extensionOverrides = new ExtensionOverrides(['.foo.ts', '.foo.css']); should(extensionOverrides.overrides).deepEqual(['.foo.ts', '.foo.css']); } "Should create an instance and not set overrides if they are invalid"() { const extensionOverrides = new ExtensionOverrides(['not-valid.ts', '.foo.css']); should(extensionOverrides.overrides).deepEqual(['.foo.css']); } "Should allow adding additional overrides"() { const extensionOverrides = new ExtensionOverrides(['.foo.ts']); should(extensionOverrides.overrides).deepEqual(['.foo.ts']); extensionOverrides.add('.foo.css'); should(extensionOverrides.overrides).deepEqual(['.foo.ts', '.foo.css']); } "Should not update a File's path info if the file does not belong to the project"() { const name = "fuse_test_a"; createRealNodeModule(name, { "package.json": JSON.stringify({ name: name, main: "./index.js" }), "index.js": `module.exports = require("./target.js")`, "target.js": `module.exports = {message : "I should be included"}` "target.foo.js": `module.exports = {message : "I should not be included"}` }); return FuseTestEnv.create({ project: { extensionOverrides: ['.foo.ts'], files: { "index.ts": `module.exports = require("${name}")` } } }).simple().then((env) => env.browser((window) => { should(window.FuseBox.import("./index")).deepEqual({ message: 'I should be included' }); })); } "Should update a File's path info if an override matches"() { return FuseTestEnv.create({ project: { extensionOverrides: ['.foo.ts'], files: { "index.ts": `export {getMessage} from './hello'`, "hello.ts": `export function getMessage() { return 'I should not be included'; }`, "hello.foo.ts": `export function getMessage() { return 'I should be included'; }` } } }).simple().then((env) => env.browser((window) => { should(window.FuseBox.import("./index").getMessage()).equal('I should be included'); })); } }