remove-defineproperty-webpack-plugin
Version:
remove defineproperty for IE8 compatible.
88 lines (77 loc) • 2.53 kB
JavaScript
var path = require("path");
var builder = require("../builder");
var runner = require("../runner");
var entryDir = path.resolve(__dirname, "./modifyvar");
describe("modify export var", () => {
var ctx;
beforeEach(() => {
ctx = {};
});
test("modify var in function", () => {
var entry = path.resolve(entryDir, "./function.js");
return builder(entry)
.then(script => runner(script, ctx))
.then(result => {
expect(result.a).toBe(1);
expect(result.getValue().a).toBe(1);
expect(result.b).toBe(undefined);
expect(result.getValue().b).toBe(undefined);
result.modifyTo2();
expect(result.a).toBe(2);
expect(result.getValue().a).toBe(2);
expect(result.b).toBe(2);
expect(result.getValue().b).toBe(2);
result.modifyATo3();
expect(result.a).toBe(3);
expect(result.getValue().a).toBe(3);
result.modifyBTo3();
expect(result.b).toBe(3);
expect(result.getValue().b).toBe(3);
result.modifyFuncTo([1,2,3]);
expect(result.modifyATo3).toEqual([1,2,3]);
expect(result.modifyBTo3).toEqual([1,2,3]);
});
});
test("modify var in condition", () => {
var entry = path.resolve(entryDir, "./condition.js");
return builder(entry)
.then(script => runner(script, ctx))
.then(result => {
expect(result.a).toBe(2);
expect(result.getValue()).toBe(2);
for(var i = 3; i <= 9; i++){
result["modifyTo" + i]();
expect(result.a).toBe(i);
expect(result.getValue()).toBe(i);
}
});
});
test("modify var in unary", () => {
var entry = path.resolve(entryDir, "./unary.js");
return builder(entry)
.then(script => runner(script, ctx))
.then(result => {
expect(result.a).toBe(1);
expect(result.getValue()).toBe(1);
for(var i = 2; i <= 6; i++){
result["modifyTo" + i]();
expect(result.a).toBe(i);
expect(result.getValue()).toBe(i);
}
});
});
test("modify var with alias", () => {
var entry = path.resolve(entryDir, "./alias.js");
return builder(entry)
.then(script => runner(script, ctx))
.then(result => {
expect(result.newA).toBe(2);
expect(result.getValue()).toBe(2);
for(var i = 3; i <= 4; i++){
result["modifyTo" + i]();
expect(result.newA).toBe(i);
expect(result.getValue()).toBe(i);
}
});
});
});