fuse-box
Version:
Fuse-Box a bundler that does it right
121 lines (104 loc) • 3.72 kB
text/typescript
import { should } from "fuse-test-runner";
import { createOptimisedBundleEnv } from "../../tests/stubs/TestEnvironment";
export class FlatAPItest {
"Should create a simple univeral API"() {
return createOptimisedBundleEnv({
project: {
files: {
"index.js": `exports.something = require("./foo")`,
"foo.js": "module.exports = { result : '1'}",
},
instructions: "index.js",
},
}).then((result) => {
const first = result.window.$fsx.r(0);
should(first).deepEqual({ something: { result: '1' } });
});
}
"Should give directory name"() {
return createOptimisedBundleEnv({
project: {
files: {
"index.js": `exports.out = __dirname`,
},
instructions: "index.js",
},
}).then((result) => {
const first = result.window.$fsx.r(0);
should(first).deepEqual({ out: "." });
});
}
"Should give filename"() {
return createOptimisedBundleEnv({
project: {
files: {
"index.js": `exports.out = __filename`,
},
instructions: "index.js",
},
}).then((result) => {
const first = result.window.$fsx.r(0);
should(first).deepEqual({ out: "index.js" });
});
}
"Should execute an entry point"() {
let random = new Date().getTime().toString();
return createOptimisedBundleEnv({
project: {
files: {
"index.ts": `
window.executed = "${random}";
module.export = {hello : "world" }
`,
},
instructions: "> index.ts",
},
}).then((result) => {
should(result.window.executed).equal(random);
});
}
"Should execute twice without errors"() {
return createOptimisedBundleEnv({
project: {
files: {
"index.js": `exports.something = require("./foo")`,
"foo.js": "module.exports = { result : '1'}",
},
instructions: "> index.js",
},
}).then((result) => {
const first = result.window.$fsx.r(0);
should(first).deepEqual({ something: { result: '1' } });
});
}
"Should bundle a partial function"() {
// gets a module from src/tests/stubs/test_modules/fbjs
return createOptimisedBundleEnv({
stubs: true,
project: {
files: {
"index.js": `exports.something = require("fbjs/lib/emptyFunction")()`
},
instructions: "index.js",
},
}).then((result) => {
const first = result.window.$fsx.r(0);
should(first).deepEqual({ something: "I am empty" });
});
}
"Should bundle a partial require on a scoped repository"() {
// gets a module from src/tests/stubs/test_modules/fbjs
return createOptimisedBundleEnv({
stubs: true,
project: {
files: {
"index.js": `exports.something = require("@bar/animations/browser")`
},
instructions: "index.js",
},
}).then((result) => {
const first = result.window.$fsx.r(0);
should(first).deepEqual({ something: { hello: '@bar/animations/browser' } })
});
}
}