<NME> index.js
<BEF> "use strict";

require("should");

it("should be able to use global in strict mode", function() {
	(typeof global).should.be.eql("object");
	(global === null).should.be.eql(false)
});

<MSG> migrate should to expect, part 1

used regexps:

([\(\)a-zA-Z0-9\."'/ +{}\[\]=\-,:?_!]+)\.should\.be\.eql
➡️
expect($1).toBe

expect\(([\(\)a-zA-Z0-9\."'/ +{}\[\]=\-,:?_!]+)\)\.toBe\(\[
➡️
expect($1).toEqual([

expect\(([\(\)a-zA-Z0-9\."'/ +{}\[\]=\-,:?_!]+)\)\.toBe\(\{
➡️
expect($1).toEqual({

<DFF> @@ -3,6 +3,6 @@
 require("should");
 
 it("should be able to use global in strict mode", function() {
-	(typeof global).should.be.eql("object");
-	(global === null).should.be.eql(false)
+	expect((typeof global)).toBe("object");
+	expect((global === null)).toBe(false)
 });

{'commit': 'diff --git a/test/ExternalModule.unittest.js b/test/ExternalModule.unittest.js\nindex a193d9842..7f5706f0b 100644\n--- a/test/ExternalModule.unittest.js\n+++ b/test/ExternalModule.unittest.js\n@@ -60,7 +60,7 @@ describe("ExternalModule", () => {\n \t\t\texpect(externalModule.getSource.callCount).toBe(1);\n \t\t\texpect(externalModule.getSourceString.callCount).toBe(1);\n \t\t\texpect(externalModule.getSource.args[0][0]).toBe(expectedString);\n-\t\t\texpect(result).toBe(expectedSource);\n+\t\t\texpect(result).toEqual(expectedSource);\n \t\t});\n \t});\n \n@@ -77,7 +77,7 @@ describe("ExternalModule", () => {\n \t\t\t\tconst result = externalModule.getSource(someSourceString);\n \n \t\t\t\t// check\n-\t\t\t\texpect(result).toBeInstanceOf(OriginalSource);\n+\t\t\t\texpect(result).toEqualInstanceOf(OriginalSource);\n \t\t\t});\n \t\t});\n \t\tdescribe("given it does not use source maps", () => {\n@@ -92,7 +92,7 @@ describe("ExternalModule", () => {\n \t\t\t\tconst result = externalModule.getSource(someSourceString);\n \n \t\t\t\t// check\n-\t\t\t\texpect(result).toBeInstanceOf(RawSource);\n+\t\t\t\texpect(result).toEqualInstanceOf(RawSource);\n \t\t\t});\n \t\t});\n \t});\n@@ -109,7 +109,7 @@ describe("ExternalModule", () => {\n \t\t\t\tconst result = externalModule.getSourceForGlobalVariableExternal(varName, type);\n \n \t\t\t\t// check\n-\t\t\t\texpect(result).toBe(expected);\n+\t\t\t\texpect(result).toEqual(expected);\n \t\t\t});\n \t\t});\n \t\tdescribe("given an single variable name", () => {\n@@ -123,7 +123,7 @@ describe("ExternalModule", () => {\n \t\t\t\tconst result = externalModule.getSourceForGlobalVariableExternal(varName, type);\n \n \t\t\t\t// check\n-\t\t\t\texpect(result).toBe(expected);\n+\t\t\t\texpect(result).toEqual(expected);\n \t\t\t});\n \t\t});\n \t});\n@@ -139,7 +139,7 @@ describe("ExternalModule", () => {\n \t\t\t\tconst result = externalModule.getSourceForCommonJsExternal(varName, type);\n \n \t\t\t\t// check\n-\t\t\t\texpect(result).toBe(expected);\n+\t\t\t\texpect(result).toEqual(expected);\n \t\t\t});\n \t\t});\n \t\tdescribe("given an single variable name", () => {\n@@ -153,7 +153,7 @@ describe("ExternalModule", () => {\n \t\t\t\tconst result = externalModule.getSourceForCommonJsExternal(varName, type);\n \n \t\t\t\t// check\n-\t\t\t\texpect(result).toBe(expected);\n+\t\t\t\texpect(result).toEqual(expected);\n \t\t\t});\n \t\t});\n \t});\n@@ -170,7 +170,7 @@ describe("ExternalModule", () => {\n \t\t\tconst result = externalModule.checkExternalVariable(variableToCheck, request);\n \n \t\t\t// check\n-\t\t\texpect(result).toBe(expected);\n+\t\t\texpect(result).toEqual(expected);\n \t\t});\n \t});\n \n@@ -185,7 +185,7 @@ describe("ExternalModule", () => {\n \t\t\tconst result = externalModule.getSourceForAmdOrUmdExternal(id, optional, request);\n \n \t\t\t// check\n-\t\t\texpect(result).toBe(expected);\n+\t\t\texpect(result).toEqual(expected);\n \t\t});\n \t\tdescribe("given an optinal check is set", () => {\n \t\t\tit("ads a check for the existance of the variable before looking it up", () => {\n@@ -199,7 +199,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_someId__;`;\n \t\t\t\tconst result = externalModule.getSourceForAmdOrUmdExternal(id, optional, request);\n \n \t\t\t\t// check\n-\t\t\t\texpect(result).toBe(expected);\n+\t\t\t\texpect(result).toEqual(expected);\n \t\t\t});\n \t\t});\n \t});\n@@ -214,7 +214,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE_someId__;`;\n \t\t\tconst result = externalModule.getSourceForDefaultCase(optional, request);\n \n \t\t\t// check\n-\t\t\texpect(result).toBe(expected);\n+\t\t\texpect(result).toEqual(expected);\n \t\t});\n \t\tdescribe("given an optinal check is requested", () => {\n \t\t\tit("checks for the existance of the request setting it", () => {\n@@ -227,7 +227,7 @@ module.exports = some/request;`;\n \t\t\t\tconst result = externalModule.getSourceForDefaultCase(optional, request);\n \n \t\t\t\t// check\n-\t\t\t\texpect(result).toBe(expected);\n+\t\t\t\texpect(result).toEqual(expected);\n \t\t\t});\n \t\t});\n \t});\ndiff --git a/test/MultiStats.unittest.js b/test/MultiStats.unittest.js\nindex d802f5f4b..121c77d2a 100644\n--- a/test/MultiStats.unittest.js\n+++ b/test/MultiStats.unittest.js\n@@ -263,7 +263,7 @@ describe("MultiStats", () => {\n \t\t});\n \n \t\tit("returns string representation", () => {\n-\t\t\texpect(result).toBe(\n+\t\t\texpect(result).toEqual(\n \t\t\t\t"Hash: abc123xyz890\\n" +\n \t\t\t\t"Version: webpack 1.2.3\\n" +\n \t\t\t\t"Child abc123-compilation:\\n" +\ndiff --git a/test/cases/amd/namedModules/index.js b/test/cases/amd/namedModules/index.js\nindex 51313a514..0084e7348 100644\n--- a/test/cases/amd/namedModules/index.js\n+++ b/test/cases/amd/namedModules/index.js\n@@ -16,14 +16,14 @@ define("named4", [], function() {\n \n define(["named1", "named2"], function(named1, named2) {\n \tit("should load the named modules in defined dependencies", function() {\n-\t\tnamed1.should.be.eql("named1");\n-\t\tnamed2.should.be.eql("named2");\n+\t\texpect(named1).toBe("named1");\n+\t\texpect(named2).toBe("named2");\n \t});\n \n \tit("should load the named modules in require dependencies", function(done) {\n \t\trequire(["named3", "named4"], function (named3, named4) {\n-\t\t\tnamed3.should.be.eql("named3");\n-\t\t\tnamed4.should.be.eql("named4");\n+\t\t\texpect(named3).toBe("named3");\n+\t\t\texpect(named4).toBe("named4");\n \t\t\tdone();\n \t\t});\n \t});\ndiff --git a/test/cases/amd/namedModulesConstArrayDep/index.js b/test/cases/amd/namedModulesConstArrayDep/index.js\nindex e6dc0eb10..e8b0995cd 100644\n--- a/test/cases/amd/namedModulesConstArrayDep/index.js\n+++ b/test/cases/amd/namedModulesConstArrayDep/index.js\n@@ -16,14 +16,14 @@ define("named4", [], function() {\n \n define("named1,named2".split(","), function(named1, named2) {\n \tit("should load the named modules in const array defined dependencies", function() {\n-\t\tnamed1.should.be.eql("named1");\n-\t\tnamed2.should.be.eql("named2");\n+\t\texpect(named1).toBe("named1");\n+\t\texpect(named2).toBe("named2");\n \t});\n \n \tit("should load the named modules in const array require dependencies", function(done) {\n \t\trequire("named3,named4".split(","), function (named3, named4) {\n-\t\t\tnamed3.should.be.eql("named3");\n-\t\t\tnamed4.should.be.eql("named4");\n+\t\t\texpect(named3).toBe("named3");\n+\t\t\texpect(named4).toBe("named4");\n \t\t\tdone();\n \t\t});\n \t});\ndiff --git a/test/cases/chunks/circular-correctness/index.js b/test/cases/chunks/circular-correctness/index.js\nindex 5db11228d..e9878a8d5 100644\n--- a/test/cases/chunks/circular-correctness/index.js\n+++ b/test/cases/chunks/circular-correctness/index.js\n@@ -2,7 +2,7 @@ it("should handle circular chunks correctly", function(done) {\n \timport(/* webpackChunkName: "a" */"./module-a").then(function(result) {\n \t\treturn result.default();\n \t}).then(function(result2) {\n-\t\tresult2.default().should.be.eql("x");\n+\t\texpect(result2.default()).toBe("x");\n \t\tdone();\n \t}).catch(function(e) {\n \t\tdone(e);\ndiff --git a/test/cases/chunks/context-weak/index.js b/test/cases/chunks/context-weak/index.js\nindex dbcdef64c..192a7c830 100644\n--- a/test/cases/chunks/context-weak/index.js\n+++ b/test/cases/chunks/context-weak/index.js\n@@ -7,12 +7,12 @@ it("should not bundle context requires with asyncMode === \'weak\'", function() {\n \n it("should find module with asyncMode === \'weak\' when required elsewhere", function() {\n \tvar contextRequire = require.context(".", false, /.+/, "weak");\n-\tcontextRequire("./three").should.be.eql(3);\n+\texpect(contextRequire("./three")).toBe(3);\n \trequire("./three"); // in a real app would be served as a separate chunk\n });\n \n it("should find module with asyncMode === \'weak\' when required elsewhere (recursive)", function() {\n \tvar contextRequire = require.context(".", true, /.+/, "weak");\n-\tcontextRequire("./dir/four").should.be.eql(4);\n+\texpect(contextRequire("./dir/four")).toBe(4);\n \trequire("./dir/four"); // in a real app would be served as a separate chunk\n });\ndiff --git a/test/cases/chunks/context/index.js b/test/cases/chunks/context/index.js\nindex 37a6e7ac1..7658b1a0e 100644\n--- a/test/cases/chunks/context/index.js\n+++ b/test/cases/chunks/context/index.js\n@@ -1,9 +1,9 @@\n it("should also work in a chunk", function(done) {\n \trequire.ensure([], function(require) {\n \t\tvar contextRequire = require.context(".", false, /two/);\n-\t\tcontextRequire("./two").should.be.eql(2);\n+\t\texpect(contextRequire("./two")).toBe(2);\n \t\tvar tw = "tw";\n-\t\trequire("." + "/" + tw + "o").should.be.eql(2);\n+\t\texpect(require("." + "/" + tw + "o")).toBe(2);\n \t\tdone();\n \t});\n });\ndiff --git a/test/cases/chunks/import-context/index.js b/test/cases/chunks/import-context/index.js\nindex ae1da48a9..b6feb3586 100644\n--- a/test/cases/chunks/import-context/index.js\n+++ b/test/cases/chunks/import-context/index.js\n@@ -2,11 +2,11 @@ function testCase(load, done) {\n \tload("two", 2, function() {\n \t\tvar sync = true;\n \t\tload("one", 1, function() {\n-\t\t\tsync.should.be.eql(false);\n+\t\t\texpect(sync).toBe(false);\n \t\t\tload("three", 3, function() {\n \t\t\t\tvar sync = true;\n \t\t\t\tload("two", 2, function() {\n-\t\t\t\t\tsync.should.be.eql(true);\n+\t\t\t\t\texpect(sync).toBe(true);\n \t\t\t\t\tdone();\n \t\t\t\t});\n \t\t\t\tPromise.resolve().then(function() {}).then(function() {}).then(function() {\n@@ -23,7 +23,7 @@ function testCase(load, done) {\n it("should be able to use expressions in import", function(done) {\n \tfunction load(name, expected, callback) {\n \t\timport("./dir/" + name).then(function(result) {\n-\t\t\tresult.should.be.eql({ default: expected });\n+\t\t\texpect(result).toEqual({ default: expected });\n \t\t\tcallback();\n \t\t}).catch(function(err) {\n \t\t\tdone(err);\ndiff --git a/test/cases/chunks/import/index.js b/test/cases/chunks/import/index.js\nindex 8dd0f33ba..cf1293edd 100644\n--- a/test/cases/chunks/import/index.js\n+++ b/test/cases/chunks/import/index.js\n@@ -1,6 +1,6 @@\n it("should be able to use import", function(done) {\n \timport("./two").then(function(two) {\n-\t\ttwo.should.be.eql({ default: 2 });\n+\t\texpect(two).toEqual({ default: 2 });\n \t\tdone();\n \t}).catch(function(err) {\n \t\tdone(err);\ndiff --git a/test/cases/chunks/inline-options/index.js b/test/cases/chunks/inline-options/index.js\nindex f5249e659..09e5bf89f 100644\n--- a/test/cases/chunks/inline-options/index.js\n+++ b/test/cases/chunks/inline-options/index.js\n@@ -106,16 +106,16 @@ function testChunkLoading(load, expectedSyncInitial, expectedSyncRequested) {\n \tvar sync = false;\n \tvar syncInitial = true;\n \tvar p = Promise.all([load("a"), load("b")]).then(function() {\n-\t\tsyncInitial.should.be.eql(expectedSyncInitial);\n+\t\texpect(syncInitial).toBe(expectedSyncInitial);\n \t\tsync = true;\n \t\tvar p = Promise.all([\n \t\t\tload("a").then(function(a) {\n-\t\t\t\ta.should.be.eql({ default: "a" });\n-\t\t\t\tsync.should.be.eql(true);\n+\t\t\t\texpect(a).toEqual({ default: "a" });\n+\t\t\t\texpect(sync).toBe(true);\n \t\t\t}),\n \t\t\tload("c").then(function(c) {\n-\t\t\t\tc.should.be.eql({ default: "c" });\n-\t\t\t\tsync.should.be.eql(expectedSyncRequested);\n+\t\t\t\texpect(c).toEqual({ default: "c" });\n+\t\t\t\texpect(sync).toBe(expectedSyncRequested);\n \t\t\t})\n \t\t]);\n \t\tPromise.resolve().then(function(){}).then(function(){}).then(function(){}).then(function(){\ndiff --git a/test/cases/chunks/issue-2443/index.js b/test/cases/chunks/issue-2443/index.js\nindex 299e99d7f..a70e5e03e 100644\n--- a/test/cases/chunks/issue-2443/index.js\n+++ b/test/cases/chunks/issue-2443/index.js\n@@ -1,7 +1,7 @@\n it("should be able to use expressions in import (directory)", function(done) {\n \tfunction load(name, expected, callback) {\n \t\timport("./dir/" + name + "/file.js").then(function(result) {\n-\t\t\tresult.should.be.eql({ default: expected });\n+\t\t\texpect(result).toEqual({ default: expected });\n \t\t\tcallback();\n \t\t}).catch(function(err) {\n \t\t\tdone(err);\ndiff --git a/test/cases/chunks/parsing/index.js b/test/cases/chunks/parsing/index.js\nindex edefaf296..474fcfc60 100644\n--- a/test/cases/chunks/parsing/index.js\n+++ b/test/cases/chunks/parsing/index.js\n@@ -2,11 +2,11 @@ var should = require("should");\n \n it("should handle bound function expressions", function(done) {\n \trequire.ensure([], function(require) {\n-\t\tthis.should.be.eql({ test: true });\n+\t\texpect(this).toEqual({ test: true });\n \t\trequire("./empty?test");\n \t\tprocess.nextTick.should.have.type("function"); // check if injection still works\n \t\trequire.ensure([], function(require) {\n-\t\t\tthis.should.be.eql({ test: true });\n+\t\t\texpect(this).toEqual({ test: true });\n \t\t\tdone();\n \t\t}.bind(this));\n \t}.bind({test: true}));\n@@ -21,7 +21,7 @@ it("should handle require.ensure without function expression", function(done) {\n \n it("should parse expression in require.ensure, which isn\'t a function expression", function(done) {\n \trequire.ensure([], (function() {\n-\t\trequire("./empty?require.ensure:test").should.be.eql({});\n+\t\texpect(require("./empty?require.ensure:test")).toEqual({});\n \t\treturn function f() {\n \t\t\tdone();\n \t\t};\n@@ -36,7 +36,7 @@ it("should accept a require.include call", function(done) {\n \t});\n \tsetImmediate(function() {\n \t\tshould.strictEqual(value, "require.include");\n-\t\tvalue.should.be.eql("require.include");\n+\t\texpect(value).toBe("require.include");\n \t\tdone();\n \t});\n });\ndiff --git a/test/cases/chunks/runtime/duplicate.js b/test/cases/chunks/runtime/duplicate.js\nindex 9867c8106..354829318 100644\n--- a/test/cases/chunks/runtime/duplicate.js\n+++ b/test/cases/chunks/runtime/duplicate.js\n@@ -1,3 +1,3 @@\n require.ensure(["./a"], function(require) {\n-\trequire("./a").should.be.eql("a");\n-})\n\\ No newline at end of file\n+\texpect(require("./a")).toBe("a");\n+})\ndiff --git a/test/cases/chunks/runtime/duplicate2.js b/test/cases/chunks/runtime/duplicate2.js\nindex e6ab3c768..37b0f6b4d 100644\n--- a/test/cases/chunks/runtime/duplicate2.js\n+++ b/test/cases/chunks/runtime/duplicate2.js\n@@ -1,3 +1,3 @@\n require.ensure(["./b"], function(require) {\n-\trequire("./b").should.be.eql("a");\n-})\n\\ No newline at end of file\n+\texpect(require("./b")).toBe("a");\n+})\ndiff --git a/test/cases/chunks/runtime/index.js b/test/cases/chunks/runtime/index.js\nindex 30b8e1dfa..a07031653 100644\n--- a/test/cases/chunks/runtime/index.js\n+++ b/test/cases/chunks/runtime/index.js\n@@ -21,7 +21,7 @@ it("should not load a chunk which is included in a already loaded one", function\n \tvar asyncFlag = false;\n \trequire.ensure(["./empty?x", "./empty?y", "./empty?z"], function(require) {\n \t\ttry {\n-\t\t\tasyncFlag.should.be.eql(true);\n+\t\t\texpect(asyncFlag).toBe(true);\n \t\t\tloadChunk();\n \t\t} catch(e) {\n \t\t\tdone(e);\n@@ -34,7 +34,7 @@ it("should not load a chunk which is included in a already loaded one", function\n \t\tvar sync = true;\n \t\trequire.ensure(["./empty?x", "./empty?y"], function(require) {\n \t\t\ttry {\n-\t\t\t\tsync.should.be.eql(true);\n+\t\t\t\texpect(sync).toBe(true);\n \t\t\t\tdone();\n \t\t\t} catch(e) {\n \t\t\t\tdone(e);\ndiff --git a/test/cases/chunks/weak-dependencies-context/index.js b/test/cases/chunks/weak-dependencies-context/index.js\nindex 96477ab2f..76ebfcc5d 100644\n--- a/test/cases/chunks/weak-dependencies-context/index.js\n+++ b/test/cases/chunks/weak-dependencies-context/index.js\n@@ -18,7 +18,7 @@ it("should not include a module with a weak dependency using context", function(\n \tresolveWeakB.should.exist;\n \tresolveWeakC.should.exist;\n \n-\ta.should.be.eql(false);\n-\tb.should.be.eql(false);\n-\tc.should.be.eql(true);\n+\texpect(a).toBe(false);\n+\texpect(b).toBe(false);\n+\texpect(c).toBe(true);\n });\ndiff --git a/test/cases/chunks/weak-dependencies/index.js b/test/cases/chunks/weak-dependencies/index.js\nindex bde0c7db0..d293d17f5 100644\n--- a/test/cases/chunks/weak-dependencies/index.js\n+++ b/test/cases/chunks/weak-dependencies/index.js\n@@ -5,9 +5,9 @@ it("should not include a module with a weak dependency", function() {\n \tvar d = !!__webpack_modules__[require.resolveWeak("./d")];\n \trequire(["./c"]);\n \trequire("./d");\n-\t\n-\ta.should.be.eql(false);\n-\tb.should.be.eql(true);\n-\tc.should.be.eql(false);\n-\td.should.be.eql(true);\n-});\n\\ No newline at end of file\n+\n+\texpect(a).toBe(false);\n+\texpect(b).toBe(true);\n+\texpect(c).toBe(false);\n+\texpect(d).toBe(true);\n+});\ndiff --git a/test/cases/chunks/weird-reference-to-entry/index.js b/test/cases/chunks/weird-reference-to-entry/index.js\nindex ea307b7e9..d22953e46 100644\n--- a/test/cases/chunks/weird-reference-to-entry/index.js\n+++ b/test/cases/chunks/weird-reference-to-entry/index.js\n@@ -1,6 +1,6 @@\n it("should handle reference to entry chunk correctly", function(done) {\n \timport(/* webpackChunkName: "main" */"./module-a").then(function(result) {\n-\t\tresult.default.should.be.eql("ok");\n+\t\texpect(result.default).toBe("ok");\n \t\tdone();\n \t}).catch(function(e) {\n \t\tdone(e);\ndiff --git a/test/cases/compile/deduplication-bundle-loader/index.js b/test/cases/compile/deduplication-bundle-loader/index.js\nindex e713c6063..7b5adeae0 100644\n--- a/test/cases/compile/deduplication-bundle-loader/index.js\n+++ b/test/cases/compile/deduplication-bundle-loader/index.js\n@@ -1,12 +1,12 @@\n it("should load a duplicate module with different dependencies correctly", function(done) {\n \tvar a = require("bundle-loader!./a/file");\n \tvar b = require("bundle-loader!./b/file");\n-\t(typeof a).should.be.eql("function");\n-\t(typeof b).should.be.eql("function");\n+\texpect((typeof a)).toBe("function");\n+\texpect((typeof b)).toBe("function");\n \ta(function(ra) {\n-\t\tra.should.be.eql("a");\n+\t\texpect(ra).toBe("a");\n \t\tb(function(rb) {\n-\t\t\trb.should.be.eql("b");\n+\t\t\texpect(rb).toBe("b");\n \t\t\tdone();\n \t\t})\n \t});\ndiff --git a/test/cases/compile/deduplication/index.js b/test/cases/compile/deduplication/index.js\nindex dfe4dba1c..df4bdbee7 100644\n--- a/test/cases/compile/deduplication/index.js\n+++ b/test/cases/compile/deduplication/index.js\n@@ -1,6 +1,6 @@\n it("should load a duplicate module with different dependencies correctly", function() {\n \tvar dedupe1 = require("./dedupe1");\n \tvar dedupe2 = require("./dedupe2");\n-\tdedupe1.should.be.eql("dedupe1");\n-\tdedupe2.should.be.eql("dedupe2");\n+\texpect(dedupe1).toBe("dedupe1");\n+\texpect(dedupe2).toBe("dedupe2");\n });\ndiff --git a/test/cases/concord/inner-modules-and-extensions/index.js b/test/cases/concord/inner-modules-and-extensions/index.js\nindex b35fdaacb..4a2f7000f 100644\n--- a/test/cases/concord/inner-modules-and-extensions/index.js\n+++ b/test/cases/concord/inner-modules-and-extensions/index.js\n@@ -1,12 +1,12 @@\n it("should resolve the alias in package.json", function() {\n-\trequire("app/file").default.should.be.eql("file");\n+\texpect(require("app/file").default).toBe("file");\n });\n \n it("should resolve the alias and extensions in package.json", function() {\n-\trequire("app/file2").default.should.be.eql("correct file2");\n+\texpect(require("app/file2").default).toBe("correct file2");\n });\n \n it("should resolve the alias in package.json", function() {\n-\trequire("thing").default.should.be.eql("the thing");\n+\texpect(require("thing").default).toBe("the thing");\n });\n \ndiff --git a/test/cases/context/issue-3873/index.js b/test/cases/context/issue-3873/index.js\nindex 8135a5a73..01f49fbd7 100644\n--- a/test/cases/context/issue-3873/index.js\n+++ b/test/cases/context/issue-3873/index.js\n@@ -3,5 +3,5 @@ function get(name) {\n }\n \n it("should automatically infer the index.js file", function() {\n-\tget("module").should.be.eql("module");\n+\texpect(get("module")).toBe("module");\n });\ndiff --git a/test/cases/context/issue-524/index.js b/test/cases/context/issue-524/index.js\nindex 8c42102a7..1084ade6c 100644\n--- a/test/cases/context/issue-524/index.js\n+++ b/test/cases/context/issue-524/index.js\n@@ -7,7 +7,7 @@ it("should support an empty context", function() {\n \t(function() {\n \t\tc("");\n \t}).should.throw();\n-\tc.keys().should.be.eql([]);\n+\texpect(c.keys()).toEqual([]);\n });\n \n // This would be a useful testcase, but it requires an (really) empty directory.\n@@ -21,5 +21,5 @@ it("should support an empty context", function() {\n \t(function() {\n \t\tc("");\n \t}).should.throw();\n-\tc.keys().should.be.eql([]);\n+\texpect(c.keys()).toEqual([]);\n });*/\ndiff --git a/test/cases/context/issue-5750/index.js b/test/cases/context/issue-5750/index.js\nindex 09b525ab0..92b55ac84 100644\n--- a/test/cases/context/issue-5750/index.js\n+++ b/test/cases/context/issue-5750/index.js\n@@ -1,4 +1,4 @@\n it("should not use regexps with the g flag", function() {\n-\trequire.context("./folder", true, /a/).keys().length.should.be.eql(1);\n-\trequire.context("./folder", true, /a/g).keys().length.should.be.eql(0);\n+\texpect(require.context("./folder", true, /a/).keys().length).toBe(1);\n+\texpect(require.context("./folder", true, /a/g).keys().length).toBe(0);\n });\ndiff --git a/test/cases/context/issue-801/index.js b/test/cases/context/issue-801/index.js\nindex bacd8cc43..c96532006 100644\n--- a/test/cases/context/issue-801/index.js\n+++ b/test/cases/context/issue-801/index.js\n@@ -1,7 +1,7 @@\n it("should emit valid code for dynamic require string with expr", function() {\n \tvar test = require("./folder/file");\n-\ttest("file").should.be.eql({ a: false, b: false, c: true, d: true });\n-\ttest("file.js").should.be.eql({ a: false, b: false, c: false, d: true });\n-\ttest("./file").should.be.eql({ a: true, b: true, c: false, d: false });\n-\ttest("./file.js").should.be.eql({ a: false, b: false, c: false, d: false });\n-});\n\\ No newline at end of file\n+\texpect(test("file")).toEqual({ a: false, b: false, c: true, d: true });\n+\texpect(test("file.js")).toEqual({ a: false, b: false, c: false, d: true });\n+\texpect(test("./file")).toEqual({ a: true, b: true, c: false, d: false });\n+\texpect(test("./file.js")).toEqual({ a: false, b: false, c: false, d: false });\n+});\ndiff --git a/test/cases/json/data/index.js b/test/cases/json/data/index.js\nindex b4e30016b..e90a26418 100644\n--- a/test/cases/json/data/index.js\n+++ b/test/cases/json/data/index.js\n@@ -1,8 +1,8 @@\n it("should require json via require", function() {\n-\t({ data: require("./a.json") }).should.be.eql({ data: null });\n-\t({ data: require("./b.json") }).should.be.eql({ data: 123 });\n-\t({ data: require("./c.json") }).should.be.eql({ data: [1, 2, 3, 4] });\n-\t({ data: require("./e.json") }).should.be.eql({ data: {\n+\t({ data: require("./a.json") }expect()).toEqual({ data: null });\n+\t({ data: require("./b.json") }expect()).toEqual({ data: 123 });\n+\t({ data: require("./c.json") }expect()).toEqual({ data: [1, 2, 3, 4] });\n+\t({ data: require("./e.json") }expect()).toEqual({ data: {\n \t\t"aa": 1,\n \t\t"bb": 2,\n \t\t"1": "x"\ndiff --git a/test/cases/json/import-by-name/index.js b/test/cases/json/import-by-name/index.js\nindex 589170057..616c028b0 100644\n--- a/test/cases/json/import-by-name/index.js\n+++ b/test/cases/json/import-by-name/index.js\n@@ -5,12 +5,12 @@ import f, { named } from "../data/f.json";\n import g, { named as gnamed } from "../data/g.json";\n \n it("should be possible to import json data", function() {\n-\tc[2].should.be.eql(3);\n-\tObject.keys(d).should.be.eql(["default"]);\n-\taa.should.be.eql(1);\n-\tbb.should.be.eql(2);\n-\tnamed.should.be.eql("named");\n-\t({ f }).should.be.eql({\n+\texpect(c[2]).toBe(3);\n+\texpect(Object.keys(d)).toEqual(["default"]);\n+\texpect(aa).toBe(1);\n+\texpect(bb).toBe(2);\n+\texpect(named).toBe("named");\n+\t({ f }expect()).toEqual({\n \t\tf: {\n \t\t\t__esModule: true,\n \t\t\tdefault: "default",\ndiff --git a/test/cases/json/import-with-default/index.js b/test/cases/json/import-with-default/index.js\nindex e138d294e..b30c71d51 100644\n--- a/test/cases/json/import-with-default/index.js\n+++ b/test/cases/json/import-with-default/index.js\n@@ -6,16 +6,16 @@ import e from "../data/e.json";\n import f from "../data/f.json";\n \n it("should be possible to import json data", function() {\n-\t({a}).should.be.eql({a: null});\n-\tb.should.be.eql(123);\n-\tc.should.be.eql([1, 2, 3, 4]);\n-\td.should.be.eql({});\n-\te.should.be.eql({\n+\t({a}expect()).toEqual({a: null});\n+\texpect(b).toBe(123);\n+\texpect(c).toEqual([1, 2, 3, 4]);\n+\texpect(d).toEqual({});\n+\texpect(e).toEqual({\n \t\taa: 1,\n \t\tbb: 2,\n \t\t"1": "x"\n \t});\n-\tf.should.be.eql({\n+\texpect(f).toEqual({\n \t\tnamed: "named",\n \t\t"default": "default",\n \t\t__esModule: true\ndiff --git a/test/cases/loaders/async/index.js b/test/cases/loaders/async/index.js\nindex 0c3a7cb0f..8d7a8628b 100644\n--- a/test/cases/loaders/async/index.js\n+++ b/test/cases/loaders/async/index.js\n@@ -1,14 +1,14 @@\n it("should allow combinations of async and sync loaders", function() {\n-\trequire("./loaders/syncloader!./a").should.be.eql("a");\n-\trequire("./loaders/asyncloader!./a").should.be.eql("a");\n+\texpect(require("./loaders/syncloader!./a")).toBe("a");\n+\texpect(require("./loaders/asyncloader!./a")).toBe("a");\n \n-\trequire("./loaders/syncloader!./loaders/syncloader!./a").should.be.eql("a");\n-\trequire("./loaders/syncloader!./loaders/asyncloader!./a").should.be.eql("a");\n-\trequire("./loaders/asyncloader!./loaders/syncloader!./a").should.be.eql("a");\n-\trequire("./loaders/asyncloader!./loaders/asyncloader!./a").should.be.eql("a");\n+\texpect(require("./loaders/syncloader!./loaders/syncloader!./a")).toBe("a");\n+\texpect(require("./loaders/syncloader!./loaders/asyncloader!./a")).toBe("a");\n+\texpect(require("./loaders/asyncloader!./loaders/syncloader!./a")).toBe("a");\n+\texpect(require("./loaders/asyncloader!./loaders/asyncloader!./a")).toBe("a");\n \n-\trequire("./loaders/asyncloader!./loaders/asyncloader!./loaders/asyncloader!./a").should.be.eql("a");\n-\trequire("./loaders/asyncloader!./loaders/syncloader!./loaders/asyncloader!./a").should.be.eql("a");\n-\trequire("./loaders/syncloader!./loaders/asyncloader!./loaders/syncloader!./a").should.be.eql("a");\n-\trequire("./loaders/syncloader!./loaders/syncloader!./loaders/syncloader!./a").should.be.eql("a");\n+\texpect(require("./loaders/asyncloader!./loaders/asyncloader!./loaders/asyncloader!./a")).toBe("a");\n+\texpect(require("./loaders/asyncloader!./loaders/syncloader!./loaders/asyncloader!./a")).toBe("a");\n+\texpect(require("./loaders/syncloader!./loaders/asyncloader!./loaders/syncloader!./a")).toBe("a");\n+\texpect(require("./loaders/syncloader!./loaders/syncloader!./loaders/syncloader!./a")).toBe("a");\n });\ndiff --git a/test/cases/loaders/coffee-loader/index.js b/test/cases/loaders/coffee-loader/index.js\nindex 2e0012214..be3924f1e 100644\n--- a/test/cases/loaders/coffee-loader/index.js\n+++ b/test/cases/loaders/coffee-loader/index.js\n@@ -1,10 +1,10 @@\n it("should handle the coffee loader correctly", function() {\n-\trequire("!coffee-loader!../_resources/script.coffee").should.be.eql("coffee test");\n-\trequire("../_resources/script.coffee").should.be.eql("coffee test");\n+\texpect(require("!coffee-loader!../_resources/script.coffee")).toBe("coffee test");\n+\texpect(require("../_resources/script.coffee")).toBe("coffee test");\n });\n \n it("should handle literate coffee script correctly", function() {\n-\trequire("!coffee-loader?literate!./script.coffee.md").should.be.eql("literate coffee test");\n+\texpect(require("!coffee-loader?literate!./script.coffee.md")).toBe("literate coffee test");\n });\n \n it("should generate valid code with cheap-source-map", function() {\ndiff --git a/test/cases/loaders/context/index.js b/test/cases/loaders/context/index.js\nindex 833bebb10..9105d7d6f 100644\n--- a/test/cases/loaders/context/index.js\n+++ b/test/cases/loaders/context/index.js\n@@ -1,5 +1,5 @@\n it("should be able to use a context with a loader", function() {\n \tvar abc = "abc", scr = "script.coffee";\n-\trequire("../_resources/" + scr).should.be.eql("coffee test");\n-\trequire("raw-loader!../_resources/" + abc + ".txt").should.be.eql("abc");\n+\texpect(require("../_resources/" + scr)).toBe("coffee test");\n+\texpect(require("raw-loader!../_resources/" + abc + ".txt")).toBe("abc");\n });\ndiff --git a/test/cases/loaders/jade-loader/index.js b/test/cases/loaders/jade-loader/index.js\nindex a30c1f92e..535b92f95 100644\n--- a/test/cases/loaders/jade-loader/index.js\n+++ b/test/cases/loaders/jade-loader/index.js\n@@ -1,4 +1,4 @@\n it("should handle the jade loader correctly", function() {\n-\trequire("!jade-loader?self!../_resources/template.jade")({abc: "abc"}).should.be.eql("<p>selfabc</p><h1>included</h1>");\n-\trequire("../_resources/template.jade")({abc: "abc"}).should.be.eql("<p>abc</p><h1>included</h1>");\n+\trequire("!jade-loader?self!../_resources/template.jade")({abc: "abc"}expect()).toBe("<p>selfabc</p><h1>included</h1>");\n+\trequire("../_resources/template.jade")({abc: "abc"}expect()).toBe("<p>abc</p><h1>included</h1>");\n });\ndiff --git a/test/cases/loaders/module-description-file/index.js b/test/cases/loaders/module-description-file/index.js\nindex 385187584..ce5b36996 100644\n--- a/test/cases/loaders/module-description-file/index.js\n+++ b/test/cases/loaders/module-description-file/index.js\n@@ -1,12 +1,12 @@\n it("should run a loader from package.json", function() {\n-\trequire("testloader!../_resources/abc.txt").should.be.eql("abcwebpack");\n-\trequire("testloader/lib/loader2!../_resources/abc.txt").should.be.eql("abcweb");\n-\trequire("testloader/lib/loader3!../_resources/abc.txt").should.be.eql("abcloader");\n-\trequire("testloader/lib/loader-indirect!../_resources/abc.txt").should.be.eql("abcwebpack");\n+\texpect(require("testloader!../_resources/abc.txt")).toBe("abcwebpack");\n+\texpect(require("testloader/lib/loader2!../_resources/abc.txt")).toBe("abcweb");\n+\texpect(require("testloader/lib/loader3!../_resources/abc.txt")).toBe("abcloader");\n+\texpect(require("testloader/lib/loader-indirect!../_resources/abc.txt")).toBe("abcwebpack");\n });\n it("should run a loader from .webpack-loader.js extension", function() {\n-\trequire("testloader/lib/loader!../_resources/abc.txt").should.be.eql("abcwebpack");\n+\texpect(require("testloader/lib/loader!../_resources/abc.txt")).toBe("abcwebpack");\n });\n it("should be able to pipe loaders", function() {\n-\trequire("testloader!./reverseloader!../_resources/abc.txt").should.be.eql("cbawebpack");\n+\texpect(require("testloader!./reverseloader!../_resources/abc.txt")).toBe("cbawebpack");\n });\ndiff --git a/test/cases/loaders/query/index.js b/test/cases/loaders/query/index.js\nindex 5ce94909a..faf5b0a72 100644\n--- a/test/cases/loaders/query/index.js\n+++ b/test/cases/loaders/query/index.js\n@@ -1,6 +1,6 @@\n it("should pass query to loader", function() {\n \tvar result = require("./loaders/queryloader?query!./a?resourcequery");\n-\tresult.should.be.eql({\n+\texpect(result).toEqual({\n \t\tresourceQuery: "?resourcequery",\n \t\tquery: "?query",\n \t\tprev: "module.exports = \\"a\\";"\n@@ -9,7 +9,7 @@ it("should pass query to loader", function() {\n \n it("should pass query to loader without resource with resource query", function() {\n \tvar result = require("./loaders/queryloader?query!?resourcequery");\n-\tresult.should.be.eql({\n+\texpect(result).toEqual({\n \t\tresourceQuery: "?resourcequery",\n \t\tquery: "?query",\n \t\tprev: null\n@@ -18,7 +18,7 @@ it("should pass query to loader without resource with resource query", function(\n \n it("should pass query to loader without resource", function() {\n \tvar result = require("./loaders/queryloader?query!");\n-\tresult.should.be.eql({\n+\texpect(result).toEqual({\n \t\tquery: "?query",\n \t\tprev: null\n \t});\n@@ -39,7 +39,7 @@ it("should pass query to multiple loaders", function() {\n it("should pass query to loader over context", function() {\n \tvar test = "test";\n \tvar result = require("./loaders/queryloader?query!./context-query-test/" + test);\n-\tresult.should.be.eql({\n+\texpect(result).toEqual({\n \t\tresourceQuery: "",\n \t\tquery: "?query",\n \t\tprev: "test content"\ndiff --git a/test/cases/loaders/raw-loader/index.js b/test/cases/loaders/raw-loader/index.js\nindex eb82ae080..5367de4e8 100644\n--- a/test/cases/loaders/raw-loader/index.js\n+++ b/test/cases/loaders/raw-loader/index.js\n@@ -1,3 +1,3 @@\n it("should handle the raw loader correctly", function() {\n-\trequire("raw-loader!../_resources/abc.txt").should.be.eql("abc");\n+\texpect(require("raw-loader!../_resources/abc.txt")).toBe("abc");\n });\ndiff --git a/test/cases/mjs/cjs-import-default/index.mjs b/test/cases/mjs/cjs-import-default/index.mjs\nindex 2e95cbb3a..8ec2bf986 100644\n--- a/test/cases/mjs/cjs-import-default/index.mjs\n+++ b/test/cases/mjs/cjs-import-default/index.mjs\n@@ -5,26 +5,26 @@ import { ns, default as def1, def as def2, data as data2 } from "./reexport.mjs"\n import * as reexport from "./reexport.mjs";\n \n it("should get correct values when importing named exports from a CommonJs module from mjs", function() {\n-\t(typeof data).should.be.eql("undefined");\n-\t({ data }).should.be.eql({ data: undefined });\n-\tdef.should.be.eql({\n+\texpect((typeof data)).toBe("undefined");\n+\t({ data }expect()).toEqual({ data: undefined });\n+\texpect(def).toEqual({\n \t\tdata: "ok",\n \t\tdefault: "default"\n \t});\n-\t({ def }).should.be.eql({\n+\t({ def }expect()).toEqual({\n \t\tdef: {\n \t\t\tdata: "ok",\n \t\t\tdefault: "default"\n \t\t}\n \t});\n \tconst valueOf = "valueOf";\n-\tstar[valueOf]().should.be.eql({\n+\texpect(star[valueOf]()).toEqual({\n \t\tdefault: {\n \t\t\tdata: "ok",\n \t\t\tdefault: "default"\n \t\t}\n \t});\n-\t({ star }).should.be.eql({\n+\t({ star }expect()).toEqual({\n \t\tstar: {\n \t\t\tdefault: {\n \t\t\t\tdata: "ok",\n@@ -32,26 +32,26 @@ it("should get correct values when importing named exports from a CommonJs modul\n \t\t\t}\n \t\t}\n \t});\n-\tstar.default.should.be.eql({\n+\texpect(star.default).toEqual({\n \t\tdata: "ok",\n \t\tdefault: "default"\n \t});\n-\tns.should.be.eql({\n+\texpect(ns).toEqual({\n \t\tdefault: {\n \t\t\tdata: "ok",\n \t\t\tdefault: "default"\n \t\t}\n \t});\n-\tdef1.should.be.eql({\n+\texpect(def1).toEqual({\n \t\tdata: "ok",\n \t\tdefault: "default"\n \t});\n-\tdef2.should.be.eql({\n+\texpect(def2).toEqual({\n \t\tdata: "ok",\n \t\tdefault: "default"\n \t});\n-\t(typeof data2).should.be.eql("undefined");\n-\treexport[valueOf]().should.be.eql({\n+\texpect((typeof data2)).toBe("undefined");\n+\texpect(reexport[valueOf]()).toEqual({\n \t\tns: {\n \t\t\tdefault: {\n \t\t\t\tdata: "ok",\ndiff --git a/test/cases/mjs/namespace-object-lazy/index.mjs b/test/cases/mjs/namespace-object-lazy/index.mjs\nindex eafa15939..ca85ba72c 100644\n--- a/test/cases/mjs/namespace-object-lazy/index.mjs\n+++ b/test/cases/mjs/namespace-object-lazy/index.mjs\n@@ -1,13 +1,13 @@\n it("should receive a namespace object when importing commonjs", function(done) {\n \timport("./cjs.js").then(function(result) {\n-\t\tresult.should.be.eql({ default: { named: "named", default: "default" } });\n+\t\texpect(result).toEqual({ default: { named: "named", default: "default" } });\n \t\tdone();\n \t}).catch(done);\n });\n \n it("should receive a namespace object when importing commonjs with __esModule", function(done) {\n \timport("./cjs-esmodule.js").then(function(result) {\n-\t\tresult.should.be.eql({ default: { __esModule: true, named: "named", default: "default" } });\n+\t\texpect(result).toEqual({ default: { __esModule: true, named: "named", default: "default" } });\n \t\tdone();\n \t}).catch(done);\n });\n@@ -54,7 +54,7 @@ function contextMixed(name) {\n function promiseTest(promise, equalsTo) {\n \treturn promise.then(function(results) {\n \t\tfor(const result of results)\n-\t\t\tresult.should.be.eql(equalsTo);\n+\t\t\texpect(result).toEqual(equalsTo);\n \t});\n }\n \ndiff --git a/test/cases/mjs/non-mjs-namespace-object-lazy/index.js b/test/cases/mjs/non-mjs-namespace-object-lazy/index.js\nindex c44f3bfb9..72c296987 100644\n--- a/test/cases/mjs/non-mjs-namespace-object-lazy/index.js\n+++ b/test/cases/mjs/non-mjs-namespace-object-lazy/index.js\n@@ -1,13 +1,13 @@\n it("should receive a namespace object when importing commonjs", function(done) {\n \timport("./cjs").then(function(result) {\n-\t\tresult.should.be.eql({ default: { named: "named", default: "default" } });\n+\t\texpect(result).toEqual({ default: { named: "named", default: "default" } });\n \t\tdone();\n \t}).catch(done);\n });\n \n it("should receive a namespace object when importing commonjs with __esModule", function(done) {\n \timport("./cjs-esmodule").then(function(result) {\n-\t\tresult.should.be.eql({ __esModule: true, named: "named", default: "default" });\n+\t\texpect(result).toEqual({ __esModule: true, named: "named", default: "default" });\n \t\tdone();\n \t}).catch(done);\n });\n@@ -54,7 +54,7 @@ function contextMixed(name) {\n function promiseTest(promise, equalsTo) {\n \treturn promise.then(function(results) {\n \t\tfor(const result of results)\n-\t\t\tresult.should.be.eql(equalsTo);\n+\t\t\texpect(result).toEqual(equalsTo);\n \t});\n }\n \ndiff --git a/test/cases/nonce/set-nonce/index.js b/test/cases/nonce/set-nonce/index.js\nindex 5d742671f..9607ec97b 100644\n--- a/test/cases/nonce/set-nonce/index.js\n+++ b/test/cases/nonce/set-nonce/index.js\n@@ -7,7 +7,7 @@ it("should load script with nonce \'nonce1234\'", function(done) {\n \t// if in browser context, test that nonce was added.\n \tif (typeof document !== \'undefined\') {\n \t\tvar script = document.querySelector(\'script[src="js/chunk-with-nonce.web.js"]\');\n-\t\tscript.getAttribute(\'nonce\').should.be.eql(\'nonce1234\');\n+\t\texpect(script.getAttribute(\'nonce\')).toBe(\'nonce1234\');\n \t}\n \t__webpack_nonce__ = undefined;\n \tdone();\n@@ -21,8 +21,8 @@ it("should load script without nonce", function(done) {\n \t// if in browser context, test that nonce was added.\n \tif (typeof document !== \'undefined\') {\n \t\tvar script = document.querySelector(\'script[src="js/chunk-without-nonce.web.js"]\');\n-\t\tscript.hasAttribute(\'nonce\').should.be.eql(false);\n+\t\texpect(script.hasAttribute(\'nonce\')).toBe(false);\n \t}\n \t__webpack_nonce__ = undefined;\n \tdone();\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/cases/optimize/side-effects-all-chain-unused/index.js b/test/cases/optimize/side-effects-all-chain-unused/index.js\nindex f4132b006..38a67a0eb 100644\n--- a/test/cases/optimize/side-effects-all-chain-unused/index.js\n+++ b/test/cases/optimize/side-effects-all-chain-unused/index.js\n@@ -2,6 +2,6 @@ import { log } from "pmodule/tracker";\n import { a } from "pmodule";\n \n it("should not evaluate a chain of modules", function() {\n-\ta.should.be.eql("a");\n-\tlog.should.be.eql(["a.js"]);\n+\texpect(a).toBe("a");\n+\texpect(log).toEqual(["a.js"]);\n });\ndiff --git a/test/cases/optimize/side-effects-all-used/index.js b/test/cases/optimize/side-effects-all-used/index.js\nindex c5f6c2ffc..8838b9948 100644\n--- a/test/cases/optimize/side-effects-all-used/index.js\n+++ b/test/cases/optimize/side-effects-all-used/index.js\n@@ -3,9 +3,9 @@ import { a, x, z } from "pmodule";\n import def from "pmodule";\n \n it("should evaluate all modules", function() {\n-\tdef.should.be.eql("def");\n-\ta.should.be.eql("a");\n-\tx.should.be.eql("x");\n-\tz.should.be.eql("z");\n-\tlog.should.be.eql(["a.js", "b.js", "c.js", "index.js"]);\n+\texpect(def).toBe("def");\n+\texpect(a).toBe("a");\n+\texpect(x).toBe("x");\n+\texpect(z).toBe("z");\n+\texpect(log).toEqual(["a.js", "b.js", "c.js", "index.js"]);\n });\ndiff --git a/test/cases/optimize/side-effects-immediate-unused/index.js b/test/cases/optimize/side-effects-immediate-unused/index.js\nindex 65b5c767a..4a9b783c9 100644\n--- a/test/cases/optimize/side-effects-immediate-unused/index.js\n+++ b/test/cases/optimize/side-effects-immediate-unused/index.js\n@@ -2,7 +2,7 @@ import { log } from "pmodule/tracker";\n import { a, z } from "pmodule";\n \n it("should not evaluate an immediate module", function() {\n-\ta.should.be.eql("a");\n-\tz.should.be.eql("z");\n-\tlog.should.be.eql(["a.js", "c.js"]);\n+\texpect(a).toBe("a");\n+\texpect(z).toBe("z");\n+\texpect(log).toEqual(["a.js", "c.js"]);\n });\ndiff --git a/test/cases/optimize/side-effects-reexport-start-unknown/index.js b/test/cases/optimize/side-effects-reexport-start-unknown/index.js\nindex e23690e91..6dfb96eaa 100644\n--- a/test/cases/optimize/side-effects-reexport-start-unknown/index.js\n+++ b/test/cases/optimize/side-effects-reexport-start-unknown/index.js\n@@ -2,5 +2,5 @@ import * as m from "m";\n \n it("should handle unknown exports fine", function() {\n \tvar x = m;\n-\tx.should.be.eql({ foo: "foo" });\n+\texpect(x).toEqual({ foo: "foo" });\n });\ndiff --git a/test/cases/optimize/side-effects-root-unused/index.js b/test/cases/optimize/side-effects-root-unused/index.js\nindex 36980ebab..22e4427cb 100644\n--- a/test/cases/optimize/side-effects-root-unused/index.js\n+++ b/test/cases/optimize/side-effects-root-unused/index.js\n@@ -2,8 +2,8 @@ import { log } from "pmodule/tracker";\n import { a, x, z } from "pmodule";\n \n it("should evaluate all modules", function() {\n-\ta.should.be.eql("a");\n-\tx.should.be.eql("x");\n-\tz.should.be.eql("z");\n-\tlog.should.be.eql(["a.js", "b.js", "c.js"]);\n+\texpect(a).toBe("a");\n+\texpect(x).toBe("x");\n+\texpect(z).toBe("z");\n+\texpect(log).toEqual(["a.js", "b.js", "c.js"]);\n });\ndiff --git a/test/cases/optimize/side-effects-simple-unused/index.js b/test/cases/optimize/side-effects-simple-unused/index.js\nindex 70de17426..6e14a2b1a 100644\n--- a/test/cases/optimize/side-effects-simple-unused/index.js\n+++ b/test/cases/optimize/side-effects-simple-unused/index.js\n@@ -3,8 +3,8 @@ import { x, z } from "pmodule";\n import def from "pmodule";\n \n it("should not evaluate a simple unused module", function() {\n-\tdef.should.be.eql("def");\n-\tx.should.be.eql("x");\n-\tz.should.be.eql("z");\n-\tlog.should.be.eql(["b.js", "c.js", "index.js"]);\n+\texpect(def).toBe("def");\n+\texpect(x).toBe("x");\n+\texpect(z).toBe("z");\n+\texpect(log).toEqual(["b.js", "c.js", "index.js"]);\n });\ndiff --git a/test/cases/optimize/side-effects-transitive-unused/index.js b/test/cases/optimize/side-effects-transitive-unused/index.js\nindex 5da932f05..007064fbf 100644\n--- a/test/cases/optimize/side-effects-transitive-unused/index.js\n+++ b/test/cases/optimize/side-effects-transitive-unused/index.js\n@@ -2,7 +2,7 @@ import { log } from "pmodule/tracker";\n import { a, y } from "pmodule";\n \n it("should not evaluate a reexporting transitive module", function() {\n-\ta.should.be.eql("a");\n-\ty.should.be.eql("y");\n-\tlog.should.be.eql(["a.js", "b.js"]);\n+\texpect(a).toBe("a");\n+\texpect(y).toBe("y");\n+\texpect(log).toEqual(["a.js", "b.js"]);\n });\ndiff --git a/test/cases/optimize/tree-shaking-commonjs/index.js b/test/cases/optimize/tree-shaking-commonjs/index.js\nindex e7cee8bee..0340d09aa 100644\n--- a/test/cases/optimize/tree-shaking-commonjs/index.js\n+++ b/test/cases/optimize/tree-shaking-commonjs/index.js\n@@ -1,5 +1,5 @@\n import { test } from "./a";\n \n it("should correctly tree shake star exports", function() {\n-\ttest.should.be.eql(123);\n+\texpect(test).toBe(123);\n });\ndiff --git a/test/cases/optimize/tree-shaking-star/index.js b/test/cases/optimize/tree-shaking-star/index.js\nindex 231747efb..479be1363 100644\n--- a/test/cases/optimize/tree-shaking-star/index.js\n+++ b/test/cases/optimize/tree-shaking-star/index.js\n@@ -2,7 +2,7 @@ import { test } from "./a";\n import { func1, func3 } from "./x";\n \n it("should correctly tree shake star exports", function() {\n-\ttest.should.be.eql(123);\n-\tfunc1().should.be.eql("func1");\n-\tfunc3().should.be.eql("func3");\n+\texpect(test).toBe(123);\n+\texpect(func1()).toBe("func1");\n+\texpect(func3()).toBe("func3");\n });\ndiff --git a/test/cases/optimize/tree-shaking-star2/index.js b/test/cases/optimize/tree-shaking-star2/index.js\nindex b8bb5764b..7b516994a 100644\n--- a/test/cases/optimize/tree-shaking-star2/index.js\n+++ b/test/cases/optimize/tree-shaking-star2/index.js\n@@ -3,10 +3,10 @@ import { aa as aa2, d } from "./root3";\n var root6 = require("./root6");\n \n it("should correctly tree shake star exports", function() {\n-\taa.should.be.eql("aa");\n-\taa2.should.be.eql("aa");\n-\td.should.be.eql("d");\n-\troot6.should.be.eql({\n+\texpect(aa).toBe("aa");\n+\texpect(aa2).toBe("aa");\n+\texpect(d).toBe("d");\n+\texpect(root6).toEqual({\n \t\taa: "aa",\n \t\tc: "c"\n \t});\ndiff --git a/test/cases/parsing/amd-rename/index.js b/test/cases/parsing/amd-rename/index.js\nindex 42658e5be..be0d7347a 100644\n--- a/test/cases/parsing/amd-rename/index.js\n+++ b/test/cases/parsing/amd-rename/index.js\n@@ -1,5 +1,5 @@\n it("should name require in define correctly", function() {\n \tdefine(["require"], function(require) {\n-\t\t(typeof require).should.be.eql("function");\n+\t\texpect((typeof require)).toBe("function");\n \t});\n });\ndiff --git a/test/cases/parsing/bom/index.js b/test/cases/parsing/bom/index.js\nindex f10161634..a2bbda8ee 100644\n--- a/test/cases/parsing/bom/index.js\n+++ b/test/cases/parsing/bom/index.js\n@@ -1,9 +1,9 @@\n it("should load a utf-8 file with BOM", function() {\n \tvar result = require("./bomfile");\n-\tresult.should.be.eql("ok");\n+\texpect(result).toEqual("ok");\n });\n \n it("should load a css file with BOM", function() {\n \tvar css = require("!css-loader!./bomfile.css") + "";\n-\tcss.should.be.eql("body{color:#abc}");\n+\texpect(css).toBe("body{color:#abc}");\n });\ndiff --git a/test/cases/parsing/browserify/index.js b/test/cases/parsing/browserify/index.js\nindex a1c656ae4..835558569 100644\n--- a/test/cases/parsing/browserify/index.js\n+++ b/test/cases/parsing/browserify/index.js\n@@ -10,5 +10,5 @@ it("should be able to parse browserified modules (UMD)", function() {\n \t},{}]},{},[1])\n \t(1)\n \t});\n-\tmodule.exports.should.be.eql(1234);\n-});\n\\ No newline at end of file\n+\texpect(module.exports).toBe(1234);\n+});\ndiff --git a/test/cases/parsing/chunks/index.js b/test/cases/parsing/chunks/index.js\nindex 8a1afd3ac..e419644c6 100644\n--- a/test/cases/parsing/chunks/index.js\n+++ b/test/cases/parsing/chunks/index.js\n@@ -1,7 +1,7 @@\n it("should parse a Coffeescript style function expression in require.ensure", function(done) {\n \trequire.ensure([], (function(_this) {\n \t\treturn function(require) {\n-\t\t\trequire("./file").should.be.eql("ok");\n+\t\t\texpect(require("./file")).toBe("ok");\n \t\t\tdone();\n \t\t};\n \t}(this)));\n@@ -9,28 +9,28 @@ it("should parse a Coffeescript style function expression in require.ensure", fu\n \n it("should parse a bound function expression in require.ensure", function(done) {\n \trequire.ensure([], function(require) {\n-\t\trequire("./file").should.be.eql("ok");\n+\t\texpect(require("./file")).toBe("ok");\n \t\tdone();\n \t}.bind(this));\n });\n \n it("should parse a string in require.ensure", function(done) {\n \trequire.ensure("./file", function(require) {\n-\t\trequire("./file").should.be.eql("ok");\n+\t\texpect(require("./file")).toBe("ok");\n \t\tdone();\n \t});\n });\n \n it("should parse a string in require.ensure with arrow function expression", function(done) {\n \trequire.ensure("./file", require => {\n-\t\trequire("./file").should.be.eql("ok");\n+\t\texpect(require("./file")).toBe("ok");\n \t\tdone();\n \t});\n });\n \n \n it("should parse a string in require.ensure with arrow function array expression", function(done) {\n-\trequire.ensure("./file", require => (require("./file").should.be.eql("ok"), done()));\n+\trequire.ensure("./file", require =>expect( (require("./file")).toBe("ok"), done()));\n });\n \n \ndiff --git a/test/cases/parsing/class/index.js b/test/cases/parsing/class/index.js\nindex 74e55e418..c58c505fc 100644\n--- a/test/cases/parsing/class/index.js\n+++ b/test/cases/parsing/class/index.js\n@@ -1,12 +1,12 @@\n import X, { A, B } from "./module";\n \n it("should parse classes", function() {\n-\tnew X().a.should.be.eql("ok");\n-\tnew A().a.should.be.eql("ok");\n-\tnew B().a.should.be.eql("ok");\n+\texpect(new X().a).toBe("ok");\n+\texpect(new A().a).toBe("ok");\n+\texpect(new B().a).toBe("ok");\n });\n \n it("should parse methods", function() {\n-\tnew X().b().should.be.eql("ok");\n-\tX.c().should.be.eql("ok");\n+\texpect(new X().b()).toBe("ok");\n+\texpect(X.c()).toBe("ok");\n });\ndiff --git a/test/cases/parsing/context/index.js b/test/cases/parsing/context/index.js\nindex 6c6c3bf6e..26bd132c3 100644\n--- a/test/cases/parsing/context/index.js\n+++ b/test/cases/parsing/context/index.js\n@@ -1,28 +1,28 @@\n it("should be able to load a file with the require.context method", function() {\n-\trequire.context("./templates")("./tmpl").should.be.eql("test template");\n-\t(require.context("./././templates"))("./tmpl").should.be.eql("test template");\n-\t(require.context("././templates/.")("./tmpl")).should.be.eql("test template");\n-\trequire.context("./loaders/queryloader?dog=bark!./templates?cat=meow")("./tmpl").should.be.eql({\n+\texpect(require.context("./templates")("./tmpl")).toBe("test template");\n+\texpect((require.context("./././templates"))("./tmpl")).toBe("test template");\n+\texpect((require.context("././templates/.")("./tmpl"))).toBe("test template");\n+\texpect(require.context("./loaders/queryloader?dog=bark!./templates?cat=meow")("./tmpl")).toEqual({\n \t\tresourceQuery: "?cat=meow",\n \t\tquery: "?dog=bark",\n \t\tprev: "module.exports = \\"test template\\";"\n \t});\n-\trequire . context ( "." + "/." + "/" + "templ" + "ates" ) ( "./subdir/tmpl.js" ).should.be.eql("subdir test template");\n-\trequire.context("./templates", true, /./)("xyz").should.be.eql("xyz");\n+\texpect(require . context ( "." + "/." + "/" + "templ" + "ates" ) ( "./subdir/tmpl.js" )).toBe("subdir test template");\n+\texpect(require.context("./templates", true, /./)("xyz")).toBe("xyz");\n });\n \n it("should automatically create contexts", function() {\n \tvar template = "tmpl", templateFull = "./tmpl.js";\n \tvar mp = "mp", tmp = "tmp", mpl = "mpl";\n-\trequire("./templates/" + template).should.be.eql("test template");\n-\trequire("./templates/" + tmp + "l").should.be.eql("test template");\n-\trequire("./templates/t" + mpl).should.be.eql("test template");\n-\trequire("./templates/t" + mp + "l").should.be.eql("test template");\n+\texpect(require("./templates/" + template)).toBe("test template");\n+\texpect(require("./templates/" + tmp + "l")).toBe("test template");\n+\texpect(require("./templates/t" + mpl)).toBe("test template");\n+\texpect(require("./templates/t" + mp + "l")).toBe("test template");\n });\n \n it("should be able to require.resolve with automatical context", function() {\n \tvar template = "tmpl";\n-\trequire.resolve("./templates/" + template).should.be.eql(require.resolve("./templates/tmpl"));\n+\texpect(require.resolve("./templates/" + template)).toBe(require.resolve("./templates/tmpl"));\n });\n \n it("should be able to use renaming combined with a context", function() {\n@@ -30,7 +30,7 @@ it("should be able to use renaming combined with a context", function() {\n \trequire = function () {};\n \trequire("fail");\n \tvar template = "tmpl";\n-\trenamedRequire("./templates/" + template).should.be.eql("test template");\n+\texpect(renamedRequire("./templates/" + template)).toBe("test template");\n });\n \n it("should compile an empty context", function() {\ndiff --git a/test/cases/parsing/es6.nominimize/index.js b/test/cases/parsing/es6.nominimize/index.js\nindex 8d77c7059..239bc932b 100644\n--- a/test/cases/parsing/es6.nominimize/index.js\n+++ b/test/cases/parsing/es6.nominimize/index.js\n@@ -19,21 +19,21 @@ it("should parse classes", function() {\n \n \tvar x = new MyClass();\n \n-\tx.a.should.be.eql("a");\n-\tx.func().should.be.eql("b");\n-\tx.c().should.be.eql("c");\n+\texpect(x.a).toBe("a");\n+\texpect(x.func()).toBe("b");\n+\texpect(x.c()).toBe("c");\n });\n \n it("should parse spread operator"/*, function() {\n-\t[0, ...require("./array")].should.be.eql([0, 1, 2, 3]);\n-\t({z: 0, ...require("./object")}).should.be.eql({z: 0, a: 1, b: 2, c: 3});\n+\texpect([0, ...require("./array")]).toEqual([0, 1, 2, 3]);\n+\t({z: 0, ...require("./object")}expect()).toEqual({z: 0, a: 1, b: 2, c: 3});\n }*/);\n \n it("should parse arrow function", function() {\n-\t(() => require("./a"))().should.be.eql("a");\n+\t(() =>expect( require("./a"))()).toBe("a");\n \t(() => {\n \t\treturn require("./a");\n-\t})().should.be.eql("a");\n+\t}expect()()).toBe("a");\n \trequire.ensure([], () => {\n \t\trequire("./a");\n \t});\n@@ -53,8 +53,8 @@ it("should parse template literals", function() {\n \t}\n \tvar x = `a${require("./b")}c`;\n \tvar y = tag`a${require("./b")}c`;\n-\tx.should.be.eql("abc");\n-\ty.should.be.eql("b");\n+\texpect(x).toBe("abc");\n+\texpect(y).toBe("b");\n })\n \n it("should parse generators and yield", function() {\n@@ -63,7 +63,7 @@ it("should parse generators and yield", function() {\n \t\tyield require("./b");\n \t}\n \tvar x = gen();\n-\tx.next().value.should.be.eql("a");\n-\tx.next().value.should.be.eql("b");\n-\tx.next().done.should.be.eql(true);\n+\texpect(x.next().value).toBe("a");\n+\texpect(x.next().value).toBe("b");\n+\texpect(x.next().done).toBe(true);\n })\ndiff --git a/test/cases/parsing/evaluate/index.js b/test/cases/parsing/evaluate/index.js\nindex e29556ebf..f2be9d888 100644\n--- a/test/cases/parsing/evaluate/index.js\n+++ b/test/cases/parsing/evaluate/index.js\n@@ -7,7 +7,7 @@ it("should evaluate null", function() {\n if("shouldn\'t evaluate expression", function() {\n \tvar value = "";\n \tvar x = (value + "") ? "fail" : "ok";\n-\tx.should.be.eql("ok");\n+\texpect(x).toBe("ok");\n });\n \n it("should short-circut evaluating", function() {\n@@ -18,5 +18,5 @@ it("should short-circut evaluating", function() {\n \n it("should evaluate __dirname and __resourceQuery with replace and substr", function() {\n \tvar result = require("./resourceQuery/index?" + __dirname);\n-\tresult.should.be.eql("?resourceQuery");\n+\texpect(result).toEqual("?resourceQuery");\n });\ndiff --git a/test/cases/parsing/extract-amd.nominimize/index.js b/test/cases/parsing/extract-amd.nominimize/index.js\nindex f125efeed..8473996cb 100644\n--- a/test/cases/parsing/extract-amd.nominimize/index.js\n+++ b/test/cases/parsing/extract-amd.nominimize/index.js\n@@ -20,36 +20,36 @@ it("should parse fancy function calls with arrow functions", function() {\n it("should parse fancy AMD calls with arrow functions", function() {\n \trequire("./constructor ./a".split(" "));\n \trequire("-> module module exports *constructor *a".replace("module", "require").substr(3).replace(/\\*/g, "./").split(" "), (require, module, exports, constructor, a) => {\n-\t\t(typeof require).should.be.eql("function");\n-\t\t(typeof module).should.be.eql("object");\n-\t\t(typeof exports).should.be.eql("object");\n-\t\t(typeof require("./constructor")).should.be.eql("function");\n-\t\t(typeof constructor).should.be.eql("function");\n-\t\ta.should.be.eql("a");\n+\t\texpect((typeof require)).toBe("function");\n+\t\texpect((typeof module)).toBe("object");\n+\t\texpect((typeof exports)).toBe("object");\n+\t\texpect((typeof require("./constructor"))).toBe("function");\n+\t\texpect((typeof constructor)).toBe("function");\n+\t\texpect(a).toBe("a");\n \t});\n \tdefine("-> module module exports *constructor *a".replace("module", "require").substr(3).replace(/\\*/g, "./").split(" "), (require, module, exports, constructor, a) => {\n-\t\t(typeof require).should.be.eql("function");\n-\t\t(typeof module).should.be.eql("object");\n-\t\t(typeof exports).should.be.eql("object");\n-\t\t(typeof require("./constructor")).should.be.eql("function");\n-\t\t(typeof constructor).should.be.eql("function");\n-\t\ta.should.be.eql("a");\n+\t\texpect((typeof require)).toBe("function");\n+\t\texpect((typeof module)).toBe("object");\n+\t\texpect((typeof exports)).toBe("object");\n+\t\texpect((typeof require("./constructor"))).toBe("function");\n+\t\texpect((typeof constructor)).toBe("function");\n+\t\texpect(a).toBe("a");\n \t});\n });\n \n it("should be able to use AMD-style require with arrow functions", function(done) {\n \tvar template = "b";\n \trequire(["./circular", "./templates/" + template, true ? "./circular" : "fail"], (circular, testTemplate, circular2) => {\n-\t\tcircular.should.be.eql(1);\n-\t\tcircular2.should.be.eql(1);\n-\t\ttestTemplate.should.be.eql("b");\n+\t\texpect(circular).toBe(1);\n+\t\texpect(circular2).toBe(1);\n+\t\texpect(testTemplate).toBe("b");\n \t\tdone();\n \t});\n });\n \n it("should be able to use require.js-style define with arrow functions", function(done) {\n \tdefine("name", ["./circular"], (circular) => {\n-\t\tcircular.should.be.eql(1);\n+\t\texpect(circular).toBe(1);\n \t\tdone();\n \t});\n });\n@@ -63,14 +63,14 @@ it("should be able to use require.js-style define, optional dependancies, not ex\n \n it("should be able to use require.js-style define, special string, with arrow function", function(done) {\n \tdefine(["require"], (require) => {\n-\t\trequire("./circular").should.be.eql(1);\n+\t\texpect(require("./circular")).toBe(1);\n \t\tdone();\n \t});\n });\n \n it("should be able to use require.js-style define, without name, with arrow function", function(done) {\n \ttrue && define(["./circular"], (circular) => {\n-\t\tcircular.should.be.eql(1);\n+\t\texpect(circular).toBe(1);\n \t\tdone();\n \t});\n });\n@@ -91,17 +91,17 @@ it("should offer AMD-style define for CommonJs with arrow function", function(do\n \tvar _test_exports = exports;\n \tvar _test_module = module;\n \tdefine((require, exports, module) => {\n-\t\t(typeof require).should.be.eql("function");\n+\t\texpect((typeof require)).toBe("function");\n \t\texports.should.be.equal(_test_exports);\n \t\tmodule.should.be.equal(_test_module);\n-\t\trequire("./circular").should.be.eql(1);\n+\t\texpect(require("./circular")).toBe(1);\n \t\tdone();\n \t});\n });\n \n it("should pull in all dependencies of an AMD module with arrow function", function(done) {\n \tdefine((require) => {\n-\t\trequire("./amdmodule").should.be.eql("a");\n+\t\texpect(require("./amdmodule")).toBe("a");\n \t\tdone();\n \t});\n });\n@@ -109,9 +109,9 @@ it("should pull in all dependencies of an AMD module with arrow function", funct\n it("should create a chunk for require.js require, with arrow function", function(done) {\n \tvar sameTick = true;\n \trequire(["./c"], (c) => {\n-\t\tsameTick.should.be.eql(false);\n-\t\tc.should.be.eql("c");\n-\t\trequire("./d").should.be.eql("d");\n+\t\texpect(sameTick).toBe(false);\n+\t\texpect(c).toBe("c");\n+\t\texpect(require("./d")).toBe("d");\n \t\tdone();\n \t});\n \tsameTick = false;\ndiff --git a/test/cases/parsing/extract-amd/index.js b/test/cases/parsing/extract-amd/index.js\nindex 5b7738002..28c3ef906 100644\n--- a/test/cases/parsing/extract-amd/index.js\n+++ b/test/cases/parsing/extract-amd/index.js\n@@ -20,36 +20,36 @@ it("should parse fancy function calls", function() {\n it("should parse fancy AMD calls", function() {\n \trequire("./constructor ./a".split(" "));\n \trequire("-> module module exports *constructor *a".replace("module", "require").substr(3).replace(/\\*/g, "./").split(" "), function(require, module, exports, constructor, a) {\n-\t\t(typeof require).should.be.eql("function");\n-\t\t(typeof module).should.be.eql("object");\n-\t\t(typeof exports).should.be.eql("object");\n-\t\t(typeof require("./constructor")).should.be.eql("function");\n-\t\t(typeof constructor).should.be.eql("function");\n-\t\ta.should.be.eql("a");\n+\t\texpect((typeof require)).toBe("function");\n+\t\texpect((typeof module)).toBe("object");\n+\t\texpect((typeof exports)).toBe("object");\n+\t\texpect((typeof require("./constructor"))).toBe("function");\n+\t\texpect((typeof constructor)).toBe("function");\n+\t\texpect(a).toBe("a");\n \t});\n \tdefine("-> module module exports *constructor *a".replace("module", "require").substr(3).replace(/\\*/g, "./").split(" "), function(require, module, exports, constructor, a) {\n-\t\t(typeof require).should.be.eql("function");\n-\t\t(typeof module).should.be.eql("object");\n-\t\t(typeof exports).should.be.eql("object");\n-\t\t(typeof require("./constructor")).should.be.eql("function");\n-\t\t(typeof constructor).should.be.eql("function");\n-\t\ta.should.be.eql("a");\n+\t\texpect((typeof require)).toBe("function");\n+\t\texpect((typeof module)).toBe("object");\n+\t\texpect((typeof exports)).toBe("object");\n+\t\texpect((typeof require("./constructor"))).toBe("function");\n+\t\texpect((typeof constructor)).toBe("function");\n+\t\texpect(a).toBe("a");\n \t});\n });\n \n it("should be able to use AMD-style require", function(done) {\n \tvar template = "b";\n \trequire(["./circular", "./templates/" + template, true ? "./circular" : "fail"], function(circular, testTemplate, circular2) {\n-\t\tcircular.should.be.eql(1);\n-\t\tcircular2.should.be.eql(1);\n-\t\ttestTemplate.should.be.eql("b");\n+\t\texpect(circular).toBe(1);\n+\t\texpect(circular2).toBe(1);\n+\t\texpect(testTemplate).toBe("b");\n \t\tdone();\n \t});\n });\n \n it("should be able to use require.js-style define", function(done) {\n \tdefine("name", ["./circular"], function(circular) {\n-\t\tcircular.should.be.eql(1);\n+\t\texpect(circular).toBe(1);\n \t\tdone();\n \t});\n });\n@@ -63,14 +63,14 @@ it("should be able to use require.js-style define, optional dependancies, not ex\n \n it("should be able to use require.js-style define, special string", function(done) {\n \tdefine(["require"], function(require) {\n-\t\trequire("./circular").should.be.eql(1);\n+\t\texpect(require("./circular")).toBe(1);\n \t\tdone();\n \t});\n });\n \n it("should be able to use require.js-style define, without name", function(done) {\n \ttrue && define(["./circular"], function(circular) {\n-\t\tcircular.should.be.eql(1);\n+\t\texpect(circular).toBe(1);\n \t\tdone();\n \t});\n });\n@@ -120,10 +120,10 @@ it("should offer AMD-style define for CommonJs", function(done) {\n \tvar _test_exports = exports;\n \tvar _test_module = module;\n \tdefine(function(require, exports, module) {\n-\t\t(typeof require).should.be.eql("function");\n+\t\texpect((typeof require)).toBe("function");\n \t\texports.should.be.equal(_test_exports);\n \t\tmodule.should.be.equal(_test_module);\n-\t\trequire("./circular").should.be.eql(1);\n+\t\texpect(require("./circular")).toBe(1);\n \t\tdone();\n \t});\n });\n@@ -140,7 +140,7 @@ it("should be able to use AMD require without function expression (empty array)"\n it("should be able to use AMD require without function expression", function(done) {\n \trequire(["./circular"], fn);\n \tfunction fn(c) {\n-\t\tc.should.be.eql(1);\n+\t\texpect(c).toBe(1);\n \t\tdone();\n \t}\n });\n@@ -148,9 +148,9 @@ it("should be able to use AMD require without function expression", function(don\n it("should create a chunk for require.js require", function(done) {\n \tvar sameTick = true;\n \trequire(["./c"], function(c) {\n-\t\tsameTick.should.be.eql(false);\n-\t\tc.should.be.eql("c");\n-\t\trequire("./d").should.be.eql("d");\n+\t\texpect(sameTick).toBe(false);\n+\t\texpect(c).toBe("c");\n+\t\texpect(require("./d")).toBe("d");\n \t\tdone();\n \t});\n \tsameTick = false;\n@@ -170,34 +170,34 @@ it("should not fail #138", function(done) {\n \n it("should parse a bound function expression 1", function(done) {\n \tdefine(function(a, require, exports, module) {\n-\t\ta.should.be.eql(123);\n-\t\t(typeof require).should.be.eql("function");\n-\t\trequire("./a").should.be.eql("a");\n+\t\texpect(a).toBe(123);\n+\t\texpect((typeof require)).toBe("function");\n+\t\texpect(require("./a")).toBe("a");\n \t\tdone();\n \t}.bind(null, 123));\n });\n \n it("should parse a bound function expression 2", function(done) {\n \tdefine("name", function(a, require, exports, module) {\n-\t\ta.should.be.eql(123);\n-\t\t(typeof require).should.be.eql("function");\n-\t\trequire("./a").should.be.eql("a");\n+\t\texpect(a).toBe(123);\n+\t\texpect((typeof require)).toBe("function");\n+\t\texpect(require("./a")).toBe("a");\n \t\tdone();\n \t}.bind(null, 123));\n });\n \n it("should parse a bound function expression 3", function(done) {\n \tdefine(["./a"], function(number, a) {\n-\t\tnumber.should.be.eql(123);\n-\t\ta.should.be.eql("a");\n+\t\texpect(number).toBe(123);\n+\t\texpect(a).toBe("a");\n \t\tdone();\n \t}.bind(null, 123));\n });\n \n it("should parse a bound function expression 4", function(done) {\n \tdefine("name", ["./a"], function(number, a) {\n-\t\tnumber.should.be.eql(123);\n-\t\ta.should.be.eql("a");\n+\t\texpect(number).toBe(123);\n+\t\texpect(a).toBe("a");\n \t\tdone();\n \t}.bind(null, 123));\n });\n@@ -205,21 +205,21 @@ it("should parse a bound function expression 4", function(done) {\n it("should not fail issue #138 second", function() {\n \t(function(define, global) { \'use strict\';\n \t\tdefine(function (require) {\n-\t\t\t(typeof require).should.be.eql("function");\n-\t\t\trequire("./a").should.be.eql("a");\n+\t\t\texpect((typeof require)).toBe("function");\n+\t\t\texpect(require("./a")).toBe("a");\n \t\t\treturn "#138 2.";\n \t\t});\n \t})(typeof define === \'function\' && define.amd ? define : function (factory) { module.exports = factory(require); }, this);\n-\tmodule.exports.should.be.eql("#138 2.");\n+\texpect(module.exports).toBe("#138 2.");\n });\n \n it("should parse an define with empty array and object", function() {\n \tvar obj = {ok: 95476};\n \tdefine([], obj);\n-\tmodule.exports.should.be.eql(obj);\n+\texpect(module.exports).toBe(obj);\n });\n it("should parse an define with object", function() {\n \tvar obj = {ok: 76243};\n \tdefine(obj);\n-\tmodule.exports.should.be.eql(obj);\n+\texpect(module.exports).toBe(obj);\n });\ndiff --git a/test/cases/parsing/extract-require/index.js b/test/cases/parsing/extract-require/index.js\nindex 02fb20870..60c4055a6 100644\n--- a/test/cases/parsing/extract-require/index.js\n+++ b/test/cases/parsing/extract-require/index.js\n@@ -1,13 +1,13 @@\n var should = require("should");\n \n function testCase(number) {\n-\trequire(number === 1 ? "./folder/file1" : number === 2 ? "./folder/file2" : number === 3 ? "./folder/file3" : "./missingModule").should.be.eql("file" + number);\n+\texpect(require(number === 1 ? "./folder/file1" : number === 2 ? "./folder/file2" : number === 3 ? "./folder/file3" : "./missingModule")).toBe("file" + number);\n \trequire(\n \t\tnumber === 1 ? "./folder/file1" :\n \t\tnumber === 2 ? "./folder/file2" :\n \t\tnumber === 3 ? "./folder/file3" :\n \t\t"./missingModule"\n-\t).should.be.eql("file" + number);\n+\texpect()).toBe("file" + number);\n }\n \n it("should parse complex require calls", function() {\n@@ -16,24 +16,24 @@ it("should parse complex require calls", function() {\n });\n \n it("should let the user hide the require function", function() {\n-\t(function(require) { return require; }(1234)).should.be.eql(1234);\n+\t(function(require) { return require; }expect((1234))).toBe(1234);\n \tfunction testFunc(abc, require) {\n \t\treturn require;\n \t}\n-\ttestFunc(333, 678).should.be.eql(678);\n+\texpect(testFunc(333, 678)).toBe(678);\n \t(function() {\n \t\tvar require = 123;\n-\t\trequire.should.be.eql(123);\n+\t\texpect(require).toBe(123);\n \t}());\n \t(function() {\n \t\tfunction require() {\n \t\t\treturn 123;\n \t\t};\n-\t\trequire("error").should.be.eql(123);\n+\t\texpect(require("error")).toBe(123);\n \t}());\n \t(function() {\n \t\tvar module = 1233;\n-\t\tmodule.should.be.eql(1233);\n+\t\texpect(module).toBe(1233);\n \t}());\n });\n \ndiff --git a/test/cases/parsing/harmony-commonjs-mix/index.js b/test/cases/parsing/harmony-commonjs-mix/index.js\nindex 6383d861f..bc390fdf5 100644\n--- a/test/cases/parsing/harmony-commonjs-mix/index.js\n+++ b/test/cases/parsing/harmony-commonjs-mix/index.js\n@@ -1,4 +1,4 @@\n it("should result in a warning when using module.exports in harmony module", function() {\n \tvar x = require("./module1");\n-\tx.should.be.eql({default: 1234});\n+\texpect(x).toEqual({default: 1234});\n });\ndiff --git a/test/cases/parsing/harmony-commonjs-mix/module1.js b/test/cases/parsing/harmony-commonjs-mix/module1.js\nindex ab456ad0a..4514c4299 100644\n--- a/test/cases/parsing/harmony-commonjs-mix/module1.js\n+++ b/test/cases/parsing/harmony-commonjs-mix/module1.js\n@@ -4,9 +4,9 @@ import "./module";\n \tmodule.exports = 1;\n }).should.throw();\n \n-(typeof module.exports).should.be.eql("undefined");\n+expect((typeof module.exports)).toBe("undefined");\n \n-(typeof define).should.be.eql("undefined");\n+expect((typeof define)).toBe("undefined");\n (function() {\n \tdefine(function() {})\n }).should.throw(/define is not defined/);\n@@ -15,5 +15,5 @@ export default 1234;\n \n if(eval("typeof exports !== \\"undefined\\"")) {\n \t// exports is node.js exports and not webpacks\n-\tObject.keys(exports).should.be.eql([]);\n+\texpect(Object.keys(exports)).toEqual([]);\n }\ndiff --git a/test/cases/parsing/harmony-commonjs/index.js b/test/cases/parsing/harmony-commonjs/index.js\nindex ba4245f15..cfc2b9c4c 100644\n--- a/test/cases/parsing/harmony-commonjs/index.js\n+++ b/test/cases/parsing/harmony-commonjs/index.js\n@@ -2,7 +2,7 @@ import { x, y } from "./b";\n \n it("should pass when required by CommonJS module", function () {\n \tvar test1 = require(\'./a\').default;\n-\ttest1().should.be.eql("OK");\n+\texpect(test1()).toBe("OK");\n });\n \n it("should pass when use babeljs transpiler", function() {\n@@ -13,18 +13,18 @@ it("should pass when use babeljs transpiler", function() {\n \tvar _test2 = _interopRequireDefault(_test);\n \tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n \tvar test2 = (0, _test2.default)();\n-\ttest2.should.be.eql("OK");\n+\texpect(test2).toBe("OK");\n });\n \n it("should double reexport from non-harmony modules correctly", function() {\n-\ty.should.be.eql("y");\n-\tx.should.be.eql("x");\n+\texpect(y).toBe("y");\n+\texpect(x).toBe("x");\n });\n \n \n import { a, b } from "./reexport"\n \n it("should be possible to reexport a module with unknown exports", function() {\n-\ta.should.be.eql("a");\n-\tb.should.be.eql("b");\n+\texpect(a).toBe("a");\n+\texpect(b).toBe("b");\n });\ndiff --git a/test/cases/parsing/harmony-duplicate-export/index.js b/test/cases/parsing/harmony-duplicate-export/index.js\nindex 54bbf91db..b9be967f8 100644\n--- a/test/cases/parsing/harmony-duplicate-export/index.js\n+++ b/test/cases/parsing/harmony-duplicate-export/index.js\n@@ -15,21 +15,21 @@ var y6 = require("./6?b").x;\n var y7 = require("./7?b").x;\n \n it("should not overwrite when using star export (known exports)", function() {\n-\tx1.should.be.eql("1");\n-\tx2.should.be.eql("1");\n-\tx3.should.be.eql("a");\n-\tx4.should.be.eql("b");\n-\tx5.should.be.eql("c");\n-\tx6.should.be.eql("a");\n-\tx7.should.be.eql("d");\n+\texpect(x1).toBe("1");\n+\texpect(x2).toBe("1");\n+\texpect(x3).toBe("a");\n+\texpect(x4).toBe("b");\n+\texpect(x5).toBe("c");\n+\texpect(x6).toBe("a");\n+\texpect(x7).toBe("d");\n });\n \n it("should not overwrite when using star export (unknown exports)", function() {\n-\ty1.should.be.eql("1");\n-\ty2.should.be.eql("1");\n-\ty3.should.be.eql("a");\n-\ty4.should.be.eql("b");\n-\ty5.should.be.eql("c");\n-\ty6.should.be.eql("a");\n-\ty7.should.be.eql("d");\n+\texpect(y1).toBe("1");\n+\texpect(y2).toBe("1");\n+\texpect(y3).toBe("a");\n+\texpect(y4).toBe("b");\n+\texpect(y5).toBe("c");\n+\texpect(y6).toBe("a");\n+\texpect(y7).toBe("d");\n });\ndiff --git a/test/cases/parsing/harmony-edge-cases/index.js b/test/cases/parsing/harmony-edge-cases/index.js\nindex ff252435b..965fb3150 100644\n--- a/test/cases/parsing/harmony-edge-cases/index.js\n+++ b/test/cases/parsing/harmony-edge-cases/index.js\n@@ -3,9 +3,9 @@ import x, { b } from "./b";\n import { c, d } from "./fake-reexport";\n \n it("should be able to use exported function", function() {\n-\ta.should.be.eql("ok");\n-\tb.should.be.eql("ok");\n-\tx().should.be.eql("ok");\n-\tc.should.be.eql("ok");\n-\td.should.be.eql("ok");\n+\texpect(a).toBe("ok");\n+\texpect(b).toBe("ok");\n+\texpect(x()).toBe("ok");\n+\texpect(c).toBe("ok");\n+\texpect(d).toBe("ok");\n });\ndiff --git a/test/cases/parsing/harmony-export-hoist/index.js b/test/cases/parsing/harmony-export-hoist/index.js\nindex 8ae8ff1e9..05aecdbab 100644\n--- a/test/cases/parsing/harmony-export-hoist/index.js\n+++ b/test/cases/parsing/harmony-export-hoist/index.js\n@@ -4,6 +4,6 @@ it("should hoist exports", function() {\n \tvar result = require("./foo").default;\n \t(typeof result.foo).should.have.eql("function");\n \t(typeof result.foo2).should.have.eql("function");\n-\tresult.foo().should.be.eql("ok");\n-\tresult.foo2().should.be.eql("ok");\n+\texpect(result.foo()).toBe("ok");\n+\texpect(result.foo2()).toBe("ok");\n });\ndiff --git a/test/cases/parsing/harmony-export-precedence/index.js b/test/cases/parsing/harmony-export-precedence/index.js\nindex 83a1181a8..dfdaf6683 100644\n--- a/test/cases/parsing/harmony-export-precedence/index.js\n+++ b/test/cases/parsing/harmony-export-precedence/index.js\n@@ -3,19 +3,19 @@ import { a, b, c, d, e } from "./a";\n import defaultImport from "./a";\n \n it("should prefer local exports", function() {\n-\ta().should.be.eql("a1");\n-\te.should.be.eql("e1");\n+\texpect(a()).toBe("a1");\n+\texpect(e).toBe("e1");\n });\n \n it("should prefer indirect exports over star exports", function() {\n-\tb.should.be.eql("b2");\n-\td.should.be.eql("d2");\n+\texpect(b).toBe("b2");\n+\texpect(d).toBe("d2");\n });\n \n it("should use star exports", function() {\n-\tc.should.be.eql("c3");\n+\texpect(c).toBe("c3");\n });\n \n it("should not export default via star export", function() {\n-\t(typeof defaultImport).should.be.eql("undefined");\n+\texpect((typeof defaultImport)).toBe("undefined");\n });\ndiff --git a/test/cases/parsing/harmony-import-export-order/index.js b/test/cases/parsing/harmony-import-export-order/index.js\nindex 3c0e34d85..4ba8b05c8 100644\n--- a/test/cases/parsing/harmony-import-export-order/index.js\n+++ b/test/cases/parsing/harmony-import-export-order/index.js\n@@ -3,8 +3,8 @@ it("should process imports of star exports in the correct order", function() {\n \ttracker.list.length = 0;\n \tdelete require.cache[require.resolve("./c")];\n \tvar c = require("./c");\n-\ttracker.list.should.be.eql(["a", "b", "c"]);\n-\tc.ax.should.be.eql("ax");\n-\tc.bx.should.be.eql("ax");\n-\tc.cx.should.be.eql("ax");\n+\texpect(tracker.list).toEqual(["a", "b", "c"]);\n+\texpect(c.ax).toBe("ax");\n+\texpect(c.bx).toBe("ax");\n+\texpect(c.cx).toBe("ax");\n });\ndiff --git a/test/cases/parsing/harmony-import-targets/index.js b/test/cases/parsing/harmony-import-targets/index.js\nindex 66b1a645f..6eac34c85 100644\n--- a/test/cases/parsing/harmony-import-targets/index.js\n+++ b/test/cases/parsing/harmony-import-targets/index.js\n@@ -1,9 +1,9 @@\n import {x, f} from "./x";\n \n it("should import into object literal", function() {\n-\t({ x: x }).should.be.eql({x: 1});\n+\t({ x: x }expect()).toEqual({x: 1});\n \tvar obj = { x: x };\n-\tobj.should.be.eql({x: 1});\n+\texpect(obj).toEqual({x: 1});\n });\n \n function func(z) {\n@@ -11,21 +11,21 @@ function func(z) {\n }\n \n it("should import into function argument", function() {\n-\tfunc(x).should.be.eql(1);\n-\tf(x).should.be.eql(1);\n-\tfunc({x:x}).should.be.eql({x:1});\n-\tf({x:x}).should.be.eql({x:1});\n+\texpect(func(x)).toBe(1);\n+\texpect(f(x)).toBe(1);\n+\tfunc({x:x}expect()).toEqual({x:1});\n+\tf({x:x}expect()).toEqual({x:1});\n \tvar y = f(x);\n-\ty.should.be.eql(1);\n+\texpect(y).toBe(1);\n \ty = function() {\n \t\treturn x;\n \t};\n-\ty().should.be.eql(1);\n+\texpect(y()).toBe(1);\n });\n \n it("should import into array literal", function() {\n-\t([x, f(2)]).should.be.eql([1, 2]);\n+\texpect(([x, f(2)])).toEqual([1, 2]);\n \t([{\n \t\tvalue: x\n-\t}]).should.be.eql([{ value: x }]);\n+\t}expect(])).toEqual([{ value: x }]);\n });\ndiff --git a/test/cases/parsing/harmony-injecting-order/index.js b/test/cases/parsing/harmony-injecting-order/index.js\nindex 88d344b69..e61841e8c 100644\n--- a/test/cases/parsing/harmony-injecting-order/index.js\n+++ b/test/cases/parsing/harmony-injecting-order/index.js\n@@ -1,3 +1,3 @@\n it("should inject variables before exporting", function() {\n-\trequire("./file").f().should.be.eql({});\n+\texpect(require("./file").f()).toEqual({});\n });\ndiff --git a/test/cases/parsing/harmony-spec/index.js b/test/cases/parsing/harmony-spec/index.js\nindex d4e12cddc..59a1517ab 100644\n--- a/test/cases/parsing/harmony-spec/index.js\n+++ b/test/cases/parsing/harmony-spec/index.js\n@@ -6,33 +6,33 @@ import cycleValue from "./export-cycle-a";\n import { data } from "./self-cycle";\n \n it("should establish live binding of values", function() {\n-\tvalue.should.be.eql(0);\n+\texpect(value).toBe(0);\n \tadd(2);\n-\tvalue.should.be.eql(2);\n+\texpect(value).toBe(2);\n });\n \n it("should establish live binding of values with transpiled es5 module", function() {\n-\tvalue2.should.be.eql(0);\n+\texpect(value2).toBe(0);\n \tadd2(5);\n-\tvalue2.should.be.eql(5);\n+\texpect(value2).toBe(5);\n });\n \n it("should allow to use eval with exports", function() {\n-\tvalueEval.should.be.eql(0);\n+\texpect(valueEval).toBe(0);\n \tevalInModule("value = 5");\n-\tvalueEval.should.be.eql(5);\n+\texpect(valueEval).toBe(5);\n });\n \n it("should execute modules in the correct order", function() {\n-\tgetLog().should.be.eql(["a", "b", "c"]);\n+\texpect(getLog()).toEqual(["a", "b", "c"]);\n });\n \n it("should bind exports before the module executes", function() {\n-\tcycleValue.should.be.eql(true);\n+\texpect(cycleValue).toBe(true);\n });\n \n it("should allow to import live variables from itself", function() {\n-\tdata.should.be.eql([undefined, 1, 2]);\n+\texpect(data).toEqual([undefined, 1, 2]);\n });\n \n import { value as valueEval, evalInModule } from "./eval";\ndiff --git a/test/cases/parsing/harmony-tdz/index.js b/test/cases/parsing/harmony-tdz/index.js\nindex a033014f0..de1543379 100644\n--- a/test/cases/parsing/harmony-tdz/index.js\n+++ b/test/cases/parsing/harmony-tdz/index.js\n@@ -1,8 +1,8 @@\n import value, { exception } from "./module";\n \n it("should have a TDZ for exported const values", function() {\n-\t(typeof exception).should.be.eql("object");\n+\texpect((typeof exception)).toBe("object");\n \texception.should.be.instanceof(Error);\n \texception.message.should.match(/ is not defined$/);\n-\tvalue.should.be.eql("value");\n+\texpect(value).toBe("value");\n });\ndiff --git a/test/cases/parsing/harmony-this/index.js b/test/cases/parsing/harmony-this/index.js\nindex 9a142de00..16eaa360e 100644\n--- a/test/cases/parsing/harmony-this/index.js\n+++ b/test/cases/parsing/harmony-this/index.js\n@@ -7,11 +7,11 @@ import * as abc from "./abc";\n function x() { throw new Error("should not be executed"); }\n it("should have this = undefined on imported non-strict functions", function() {\n \tx\n-\td().should.be.eql("undefined");\n+\texpect(d()).toBe("undefined");\n \tx\n-\ta().should.be.eql("undefined");\n+\texpect(a()).toBe("undefined");\n \tx\n-\tB().should.be.eql("undefined");\n+\texpect(B()).toBe("undefined");\n });\n \n import C2, { C } from "./new";\ndiff --git a/test/cases/parsing/harmony/index.js b/test/cases/parsing/harmony/index.js\nindex 32117f23d..fbb63144b 100644\n--- a/test/cases/parsing/harmony/index.js\n+++ b/test/cases/parsing/harmony/index.js\n@@ -26,62 +26,62 @@ import "unused";\n \n \n it("should import a default export from a module", function() {\n-\tdefaultExport.should.be.eql("def");\n+\texpect(defaultExport).toBe("def");\n });\n \n it("should import an identifier from a module", function() {\n-\ta.should.be.eql("a");\n-\tB.should.be.eql("b");\n+\texpect(a).toBe("a");\n+\texpect(B).toBe("b");\n });\n \n it("should import a whole module", function() {\n-\tabc.a.should.be.eql("a");\n-\tabc.b.should.be.eql("b");\n-\tabc.c.should.be.eql("c");\n-\tabc.d.c.should.be.eql("c");\n-\tabc.e.should.be.eql("c");\n+\texpect(abc.a).toBe("a");\n+\texpect(abc.b).toBe("b");\n+\texpect(abc.c).toBe("c");\n+\texpect(abc.d.c).toBe("c");\n+\texpect(abc.e).toBe("c");\n \tvar copy = (function(a) { return a; }(abc));\n-\tcopy.a.should.be.eql("a");\n-\tcopy.b.should.be.eql("b");\n-\tcopy.c.should.be.eql("c");\n-\tcopy.d.c.should.be.eql("c");\n-\tcopy.e.should.be.eql("c");\n-\t(typeof abc).should.be.eql("object");\n+\texpect(copy.a).toBe("a");\n+\texpect(copy.b).toBe("b");\n+\texpect(copy.c).toBe("c");\n+\texpect(copy.d.c).toBe("c");\n+\texpect(copy.e).toBe("c");\n+\texpect((typeof abc)).toBe("object");\n });\n \n it("should export functions", function() {\n \tfn.should.have.type("function");\n-\tfn().should.be.eql("fn");\n-\t(fn === fn).should.be.eql(true);\n+\texpect(fn()).toBe("fn");\n+\texpect((fn === fn)).toBe(true);\n });\n \n it("should multiple variables with one statement", function() {\n-\tone.should.be.eql("one");\n-\ttwo.should.be.eql("two");\n+\texpect(one).toBe("one");\n+\texpect(two).toBe("two");\n });\n \n it("should still be able to use exported stuff", function() {\n-\ttest1.should.be.eql("fn");\n-\ttest2.should.be.eql("two");\n+\texpect(test1).toBe("fn");\n+\texpect(test2).toBe("two");\n });\n \n it("should reexport a module", function() {\n-\trea.should.be.eql("a");\n-\treb.should.be.eql("b");\n-\trec.should.be.eql("c");\n-\treo.should.be.eql("one");\n-\tretwo.should.be.eql("two");\n-\trea2.should.be.eql("a");\n+\texpect(rea).toBe("a");\n+\texpect(reb).toBe("b");\n+\texpect(rec).toBe("c");\n+\texpect(reo).toBe("one");\n+\texpect(retwo).toBe("two");\n+\texpect(rea2).toBe("a");\n });\n \n it("should support circular dependencies", function() {\n-\tthreeIsOdd.should.be.eql(true);\n-\teven(4).should.be.eql(true);\n+\texpect(threeIsOdd).toBe(true);\n+\texpect(even(4)).toBe(true);\n });\n \n it("should support export specifier", function() {\n-\tspecA.should.be.eql(1);\n-\tspecB.should.be.eql(2);\n+\texpect(specA).toBe(1);\n+\texpect(specB).toBe(2);\n });\n \n it("should be able to import commonjs", function() {\n@@ -90,25 +90,25 @@ it("should be able to import commonjs", function() {\n \tx\n \tThing.should.have.type("function");\n \tx\n-\tThing().should.be.eql("thing");\n+\texpect(Thing()).toBe("thing");\n \tx\n-\tOther.should.be.eql("other");\n+\texpect(Other).toBe("other");\n \n \tThing2.should.have.type("function");\n-\tnew Thing2().value.should.be.eql("thing");\n-\tOther2.should.be.eql("other");\n-\tThing3().should.be.eql("thing");\n+\texpect(new Thing2().value).toBe("thing");\n+\texpect(Other2).toBe("other");\n+\texpect(Thing3()).toBe("thing");\n });\n \n it("should be able to import commonjs with star import", function() {\n \tvar copyOfCommonjs = commonjs;\n-\tcommonjs().should.be.eql("thing");\n-\tcommonjs.Other.should.be.eql("other");\n-\tcopyOfCommonjs().should.be.eql("thing");\n-\tcopyOfCommonjs.Other.should.be.eql("other");\n+\texpect(commonjs()).toBe("thing");\n+\texpect(commonjs.Other).toBe("other");\n+\texpect(copyOfCommonjs()).toBe("thing");\n+\texpect(copyOfCommonjs.Other).toBe("other");\n \tvar copyOfCommonjsTrans = commonjsTrans;\n-\tnew commonjsTrans.default().value.should.be.eql("thing");\n-\tcommonjsTrans.Other.should.be.eql("other");\n-\tnew copyOfCommonjsTrans.default().value.should.be.eql("thing");\n-\tcopyOfCommonjsTrans.Other.should.be.eql("other");\n+\texpect(new commonjsTrans.default().value).toBe("thing");\n+\texpect(commonjsTrans.Other).toBe("other");\n+\texpect(new copyOfCommonjsTrans.default().value).toBe("thing");\n+\texpect(copyOfCommonjsTrans.Other).toBe("other");\n });\ndiff --git a/test/cases/parsing/inject-free-vars/index.js b/test/cases/parsing/inject-free-vars/index.js\nindex 235dbb50f..043b3e4f3 100644\n--- a/test/cases/parsing/inject-free-vars/index.js\n+++ b/test/cases/parsing/inject-free-vars/index.js\n@@ -1,18 +1,18 @@\n it("should inject the module object into a chunk (AMD1)", function(done) {\n \trequire([], function() {\n-\t\tmodule.webpackPolyfill.should.be.eql(1);\n+\t\texpect(module.webpackPolyfill).toBe(1);\n \t\tdone();\n \t});\n });\n \n it("should inject the module object into a chunk (AMD2)", function() {\n \trequire([module.webpackPolyfill ? "./x1" : "./fail"]);\n-\tmodule.webpackPolyfill.should.be.eql(1);\n+\texpect(module.webpackPolyfill).toBe(1);\n });\n \n it("should inject the module object into a chunk (ensure)", function(done) {\n \trequire.ensure([], function(require) {\n-\t\tmodule.webpackPolyfill.should.be.eql(1);\n+\t\texpect(module.webpackPolyfill).toBe(1);\n \t\tdone();\n \t});\n });\ndiff --git a/test/cases/parsing/issue-1600/index.js b/test/cases/parsing/issue-1600/index.js\nindex 42d58a49c..bebd65238 100644\n--- a/test/cases/parsing/issue-1600/index.js\n+++ b/test/cases/parsing/issue-1600/index.js\n@@ -1,5 +1,5 @@\n import fn from \'./file\';\n \n it("should compile correctly", function() {\n-\tfn().should.be.eql(1);\n+\texpect(fn()).toBe(1);\n });\ndiff --git a/test/cases/parsing/issue-2019/index.js b/test/cases/parsing/issue-2019/index.js\nindex 04c1ffaa7..186534811 100644\n--- a/test/cases/parsing/issue-2019/index.js\n+++ b/test/cases/parsing/issue-2019/index.js\n@@ -1,4 +1,4 @@\n it("should not fail on default export before export", function() {\n-\trequire("./file").default.should.be.eql("default");\n-\trequire("./file").CONSTANT.should.be.eql("const");\n-});\n\\ No newline at end of file\n+\texpect(require("./file").default).toBe("default");\n+\texpect(require("./file").CONSTANT).toBe("const");\n+});\ndiff --git a/test/cases/parsing/issue-2050/index.js b/test/cases/parsing/issue-2050/index.js\nindex 85754b23b..640880bf3 100644\n--- a/test/cases/parsing/issue-2050/index.js\n+++ b/test/cases/parsing/issue-2050/index.js\n@@ -1,5 +1,5 @@\n it("should support multiple reexports", function() {\n-\trequire("./x").should.be.eql({\n+\texpect(require("./x")).toEqual({\n \t\txa: "a",\n \t\txb: "b",\n \t\txc: "c",\ndiff --git a/test/cases/parsing/issue-2084/index.js b/test/cases/parsing/issue-2084/index.js\nindex a9bc27f13..04383d5d6 100644\n--- a/test/cases/parsing/issue-2084/index.js\n+++ b/test/cases/parsing/issue-2084/index.js\n@@ -7,8 +7,8 @@ it("should bind this context on require callback", function(done) {\n \trunWithThis({ok: true}, function() {\n \t\trequire([], function() {\n \t\t\ttry {\n-\t\t\t\trequire("./file").should.be.eql("file");\n-\t\t\t\tthis.should.be.eql({ok: true});\n+\t\t\t\texpect(require("./file")).toBe("file");\n+\t\t\t\texpect(this).toEqual({ok: true});\n \t\t\t\tdone();\n \t\t\t} catch(e) { done(e); }\n \t\t}.bind(this));\n@@ -19,9 +19,9 @@ it("should bind this context on require callback (loaded)", function(done) {\n \trunWithThis({ok: true}, function() {\n \t\trequire(["./load.js"], function(load) {\n \t\t\ttry {\n-\t\t\t\trequire("./file").should.be.eql("file");\n-\t\t\t\tload.should.be.eql("load");\n-\t\t\t\tthis.should.be.eql({ok: true});\n+\t\t\t\texpect(require("./file")).toBe("file");\n+\t\t\t\texpect(load).toBe("load");\n+\t\t\t\texpect(this).toEqual({ok: true});\n \t\t\t\tdone();\n \t\t\t} catch(e) { done(e); }\n \t\t}.bind(this));\n@@ -32,8 +32,8 @@ it("should bind this context on require callback (foo)", function(done) {\n \tvar foo = {ok: true};\n \trequire([], function(load) {\n \t\ttry {\n-\t\t\trequire("./file").should.be.eql("file");\n-\t\t\tthis.should.be.eql({ok: true});\n+\t\t\texpect(require("./file")).toBe("file");\n+\t\t\texpect(this).toEqual({ok: true});\n \t\t\tdone();\n \t\t} catch(e) { done(e); }\n \t}.bind(foo));\n@@ -43,9 +43,9 @@ it("should bind this context on require callback (foo, loaded)", function(done)\n \tvar foo = {ok: true};\n \trequire(["./load.js"], function(load) {\n \t\ttry {\n-\t\t\trequire("./file").should.be.eql("file");\n-\t\t\tload.should.be.eql("load");\n-\t\t\tthis.should.be.eql({ok: true});\n+\t\t\texpect(require("./file")).toBe("file");\n+\t\t\texpect(load).toBe("load");\n+\t\t\texpect(this).toEqual({ok: true});\n \t\t\tdone();\n \t\t} catch(e) { done(e); }\n \t}.bind(foo));\n@@ -55,8 +55,8 @@ it("should bind this context on require callback (foo)", function(done) {\n \trunWithThis({ok: true}, function() {\n \t\trequire([], function(load) {\n \t\t\ttry {\n-\t\t\t\trequire("./file").should.be.eql("file");\n-\t\t\t\tthis.should.be.eql({ok: {ok: true}});\n+\t\t\t\texpect(require("./file")).toBe("file");\n+\t\t\t\texpect(this).toEqual({ok: {ok: true}});\n \t\t\t\tdone();\n \t\t\t} catch(e) { done(e); }\n \t\t}.bind({ok: this}));\n@@ -67,8 +67,8 @@ it("should bind this context on require.ensure callback", function(done) {\n \trunWithThis({ok: true}, function() {\n \t\trequire.ensure([], function(require) {\n \t\t\ttry {\n-\t\t\t\trequire("./file").should.be.eql("file");\n-\t\t\t\tthis.should.be.eql({ok: true});\n+\t\t\t\texpect(require("./file")).toBe("file");\n+\t\t\t\texpect(this).toEqual({ok: true});\n \t\t\t\tdone();\n \t\t\t} catch(e) { done(e); }\n \t\t}.bind(this));\n@@ -79,8 +79,8 @@ it("should bind this context on require.ensure callback (loaded)", function(done\n \trunWithThis({ok: true}, function() {\n \t\trequire.ensure(["./load.js"], function(require) {\n \t\t\ttry {\n-\t\t\t\trequire("./file").should.be.eql("file");\n-\t\t\t\tthis.should.be.eql({ok: true});\n+\t\t\t\texpect(require("./file")).toBe("file");\n+\t\t\t\texpect(this).toEqual({ok: true});\n \t\t\t\tdone();\n \t\t\t} catch(e) { done(e); }\n \t\t}.bind(this));\ndiff --git a/test/cases/parsing/issue-2349/index.js b/test/cases/parsing/issue-2349/index.js\nindex 277cee408..065ececb5 100644\n--- a/test/cases/parsing/issue-2349/index.js\n+++ b/test/cases/parsing/issue-2349/index.js\n@@ -1,5 +1,5 @@\n import {x} from \'./a\' // named imported cases an errors\n \n it("should be able to import a named export", function() {\n-\tx.should.be.eql(1);\n+\texpect(x).toBe(1);\n });\ndiff --git a/test/cases/parsing/issue-2522/index.js b/test/cases/parsing/issue-2522/index.js\nindex 86cb81e38..7c13dad3e 100644\n--- a/test/cases/parsing/issue-2522/index.js\n+++ b/test/cases/parsing/issue-2522/index.js\n@@ -9,7 +9,7 @@ it("should import into object shorthand", function() {\n \t\tb,\n \t\tc\n \t};\n-\to.should.be.eql({\n+\texpect(o).toEqual({\n \t\ta: 123,\n \t\taa: 123,\n \t\tb: 456,\n@@ -18,4 +18,4 @@ it("should import into object shorthand", function() {\n \t\t\tdefault: 456\n \t\t}\n \t});\n-})\n\\ No newline at end of file\n+})\ndiff --git a/test/cases/parsing/issue-2523/index.js b/test/cases/parsing/issue-2523/index.js\nindex 8adb8a17a..53c08cc14 100644\n--- a/test/cases/parsing/issue-2523/index.js\n+++ b/test/cases/parsing/issue-2523/index.js\n@@ -3,7 +3,7 @@ import { B } from "./module";\n import { c } from "./module";\n \n it("should allow to export a class", function() {\n-\t(typeof A).should.be.eql("function");\n-\t(typeof B).should.be.eql("function");\n-\tc.should.be.eql("c");\n-})\n\\ No newline at end of file\n+\texpect((typeof A)).toBe("function");\n+\texpect((typeof B)).toBe("function");\n+\texpect(c).toBe("c");\n+})\ndiff --git a/test/cases/parsing/issue-2528/index.js b/test/cases/parsing/issue-2528/index.js\nindex 8fa0cde76..a9a6562b8 100644\n--- a/test/cases/parsing/issue-2528/index.js\n+++ b/test/cases/parsing/issue-2528/index.js\n@@ -51,7 +51,7 @@ import { count } from "./module";\n it("should run async functions", function() {\n \tvar org = count;\n \tnotExportedAsync();\n-\tcount.should.be.eql(org + 1);\n+\texpect(count).toBe(org + 1);\n \texportedAsync();\n-\tcount.should.be.eql(org + 2);\n+\texpect(count).toBe(org + 2);\n });\ndiff --git a/test/cases/parsing/issue-2570/index.js b/test/cases/parsing/issue-2570/index.js\nindex 700e4eaa1..3339350df 100644\n--- a/test/cases/parsing/issue-2570/index.js\n+++ b/test/cases/parsing/issue-2570/index.js\n@@ -6,8 +6,8 @@ it("should generate valid code when calling a harmony import function with brack\n \tvar c = fn((3), (4));\n \tvar d = fn(5, (6));\n \n-\ta.should.be.eql([1]);\n-\tb.should.be.eql([2]);\n-\tc.should.be.eql([3, 4]);\n-\td.should.be.eql([5, 6]);\n+\texpect(a).toEqual([1]);\n+\texpect(b).toEqual([2]);\n+\texpect(c).toEqual([3, 4]);\n+\texpect(d).toEqual([5, 6]);\n });\ndiff --git a/test/cases/parsing/issue-2618/index.js b/test/cases/parsing/issue-2618/index.js\nindex 1220384df..a8716a2f8 100644\n--- a/test/cases/parsing/issue-2618/index.js\n+++ b/test/cases/parsing/issue-2618/index.js\n@@ -1,9 +1,9 @@\n import defaultValue, { value, value2, value3, value4 } from "./module";\n \n it("should be possible to redefine Object in a module", function() {\n-\tvalue.should.be.eql(123);\n-\tvalue2.should.be.eql(123);\n-\tvalue3.should.be.eql(123);\n-\tvalue4.should.be.eql(123);\n-\tdefaultValue.should.be.eql(123);\n+\texpect(value).toBe(123);\n+\texpect(value2).toBe(123);\n+\texpect(value3).toBe(123);\n+\texpect(value4).toBe(123);\n+\texpect(defaultValue).toBe(123);\n });\ndiff --git a/test/cases/parsing/issue-2622/index.js b/test/cases/parsing/issue-2622/index.js\nindex 262d5332e..696ecad76 100644\n--- a/test/cases/parsing/issue-2622/index.js\n+++ b/test/cases/parsing/issue-2622/index.js\n@@ -9,8 +9,8 @@ var func2 = function(x = a, y = b) {\n }\n \n it("should import into default parameters", function() {\n-\tfunc().should.be.eql(["a", "b"]);\n-\tfunc2().should.be.eql(["a", "b"]);\n-\tfunc(1).should.be.eql([1, "b"]);\n-\tfunc2(2).should.be.eql([2, "b"]);\n+\texpect(func()).toEqual(["a", "b"]);\n+\texpect(func2()).toEqual(["a", "b"]);\n+\texpect(func(1)).toEqual([1, "b"]);\n+\texpect(func2(2)).toEqual([2, "b"]);\n });\ndiff --git a/test/cases/parsing/issue-2641/index.js b/test/cases/parsing/issue-2641/index.js\nindex d2155f6d4..08f51da48 100644\n--- a/test/cases/parsing/issue-2641/index.js\n+++ b/test/cases/parsing/issue-2641/index.js\n@@ -1,7 +1,7 @@\n it("should require existing module with supplied error callback", function(done) {\n \trequire([\'./file\'], function(file){\n \t\ttry {\n-\t\t\tfile.should.be.eql("file");\n+\t\t\texpect(file).toBe("file");\n \t\t\tdone();\n \t\t} catch(e) { done(e); }\n \t}, function(error) { done(error); });\n@@ -11,7 +11,7 @@ it("should call error callback on missing module", function(done) {\n \trequire([\'./file\', \'./missingModule\'], function(file){}, function(error) {\n \t\ttry {\n \t\t\terror.should.be.instanceOf(Error);\n-\t\t\terror.message.should.be.eql(\'Cannot find module "./missingModule"\');\n+\t\t\texpect(error.message).toBe(\'Cannot find module "./missingModule"\');\n \t\t\tdone();\n \t\t} catch(e) {\n \t\t\tdone(e);\n@@ -24,7 +24,7 @@ it("should call error callback on missing module in context", function(done) {\n \t\trequire([\'./\' + module], function(file){}, function(error) {\n \t\t\ttry {\n \t\t\t\terror.should.be.instanceOf(Error);\n-\t\t\t\terror.message.should.be.eql("Cannot find module \\"./missingModule\\".");\n+\t\t\t\texpect(error.message).toBe("Cannot find module \\"./missingModule\\".");\n \t\t\t\tdone();\n \t\t\t} catch(e) { done(e); }\n \t\t});\n@@ -35,7 +35,7 @@ it("should call error callback on exception thrown in loading module", function(\n \trequire([\'./throwing\'], function(){}, function(error) {\n \t\ttry {\n \t\t\terror.should.be.instanceOf(Error);\n-\t\t\terror.message.should.be.eql(\'message\');\n+\t\t\texpect(error.message).toBe(\'message\');\n \t\t\tdone();\n \t\t} catch(e) { done(e); }\n \t});\n@@ -47,7 +47,7 @@ it("should not call error callback on exception thrown in require callback", fun\n \t}, function(error) {\n \t\ttry {\n \t\t\terror.should.be.instanceOf(Error);\n-\t\t\terror.message.should.be.eql(\'message\');\n+\t\t\texpect(error.message).toBe(\'message\');\n \t\t\tdone();\n \t\t} catch(e) { done(e); }\n \t});\ndiff --git a/test/cases/parsing/issue-2895/index.js b/test/cases/parsing/issue-2895/index.js\nindex 26fba7279..83b1aae97 100644\n--- a/test/cases/parsing/issue-2895/index.js\n+++ b/test/cases/parsing/issue-2895/index.js\n@@ -1,6 +1,6 @@\n import { a, b } from "./a";\n \n it("should export a const value without semicolon", function() {\n-\ta.should.be.eql({x: 1});\n-\tb.should.be.eql({x: 2});\n+\texpect(a).toEqual({x: 1});\n+\texpect(b).toEqual({x: 2});\n });\ndiff --git a/test/cases/parsing/issue-2942/index.js b/test/cases/parsing/issue-2942/index.js\nindex f30332b6f..dfc72823a 100644\n--- a/test/cases/parsing/issue-2942/index.js\n+++ b/test/cases/parsing/issue-2942/index.js\n@@ -2,11 +2,11 @@ it("should polyfill System", function() {\n \tif (typeof System === "object" && typeof System.register === "function") {\n \t\trequire("fail");\n \t}\n-\t(typeof System).should.be.eql("object");\n-\t(typeof System.register).should.be.eql("undefined");\n-\t(typeof System.get).should.be.eql("undefined");\n-\t(typeof System.set).should.be.eql("undefined");\n-\t(typeof System.anyNewItem).should.be.eql("undefined");\n+\texpect((typeof System)).toBe("object");\n+\texpect((typeof System.register)).toBe("undefined");\n+\texpect((typeof System.get)).toBe("undefined");\n+\texpect((typeof System.set)).toBe("undefined");\n+\texpect((typeof System.anyNewItem)).toBe("undefined");\n \tvar x = System.anyNewItem;\n-\t(typeof x).should.be.eql("undefined");\n+\texpect((typeof x)).toBe("undefined");\n })\ndiff --git a/test/cases/parsing/issue-3116/index.js b/test/cases/parsing/issue-3116/index.js\nindex c06f80824..5d7eb70d8 100644\n--- a/test/cases/parsing/issue-3116/index.js\n+++ b/test/cases/parsing/issue-3116/index.js\n@@ -2,12 +2,12 @@ import * as file from "./file";\n import * as file2 from "./file2";\n \n it("should translate indexed access to harmony import correctly", function() {\n-\tfile["default"].should.be.eql("default");\n-\tfile["abc"].should.be.eql("abc");\n+\texpect(file["default"]).toBe("default");\n+\texpect(file["abc"]).toBe("abc");\n });\n \n it("should translate dynamic indexed access to harmony import correctly", function() {\n \tvar fault = "fault";\n-\tfile2["de" + fault].should.be.eql("default");\n-\tfile2["abc"].should.be.eql("abc");\n+\texpect(file2["de" + fault]).toBe("default");\n+\texpect(file2["abc"]).toBe("abc");\n });\ndiff --git a/test/cases/parsing/issue-3273/index.js b/test/cases/parsing/issue-3273/index.js\nindex 992223964..294ce89a9 100644\n--- a/test/cases/parsing/issue-3273/index.js\n+++ b/test/cases/parsing/issue-3273/index.js\n@@ -2,37 +2,37 @@ import { test } from "./file";\n \n it("should hide import by local var", function() {\n \tvar test = "ok";\n-\ttest.should.be.eql("ok");\n+\texpect(test).toBe("ok");\n });\n \n it("should hide import by object pattern", function() {\n \tvar { test } = { test: "ok" };\n-\ttest.should.be.eql("ok");\n+\texpect(test).toBe("ok");\n });\n \n it("should hide import by array pattern", function() {\n \tvar [test] = ["ok"];\n-\ttest.should.be.eql("ok");\n+\texpect(test).toBe("ok");\n });\n \n it("should hide import by array pattern (nested)", function() {\n \tvar [[test]] = [["ok"]];\n-\ttest.should.be.eql("ok");\n+\texpect(test).toBe("ok");\n });\n \n it("should hide import by pattern in function", function() {\n \t(function({test}) {\n-\t\ttest.should.be.eql("ok");\n+\t\texpect(test).toBe("ok");\n \t}({ test: "ok" }));\n });\n \n it("should allow import in default (incorrect)", function() {\n \tvar { other = test, test } = { test: "ok" };\n-\ttest.should.be.eql("ok");\n-\t(typeof other).should.be.eql("undefined");\n+\texpect(test).toBe("ok");\n+\texpect((typeof other)).toBe("undefined");\n });\n \n it("should allow import in default", function() {\n \tvar { other = test } = { test: "ok" };\n-\tother.should.be.eql("test");\n+\texpect(other).toBe("test");\n });\ndiff --git a/test/cases/parsing/issue-345/index.js b/test/cases/parsing/issue-345/index.js\nindex 9dc72a8a6..00f1b5fc6 100644\n--- a/test/cases/parsing/issue-345/index.js\n+++ b/test/cases/parsing/issue-345/index.js\n@@ -1,7 +1,7 @@\n it("should parse multiple expressions in a require", function(done) {\n \tvar name = "abc";\n \trequire(["./" + name + "/" + name + "Test"], function(x) {\n-\t\tx.should.be.eql("ok");\n+\t\texpect(x).toBe("ok");\n \t\tdone();\n \t});\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/cases/parsing/issue-3769/index.js b/test/cases/parsing/issue-3769/index.js\nindex 85d022ca5..393ea08ae 100644\n--- a/test/cases/parsing/issue-3769/index.js\n+++ b/test/cases/parsing/issue-3769/index.js\n@@ -1,3 +1,3 @@\n it("should generate valid code", function() {\n-\trequire("./module").myTest.should.be.eql("test");\n+\texpect(require("./module").myTest).toBe("test");\n });\ndiff --git a/test/cases/parsing/issue-387/index.js b/test/cases/parsing/issue-387/index.js\nindex 60b2a8c50..f0fd266e4 100644\n--- a/test/cases/parsing/issue-387/index.js\n+++ b/test/cases/parsing/issue-387/index.js\n@@ -10,7 +10,7 @@ it("should parse cujojs UMD modules", function() {\n \t\t\t? define\n \t\t\t: function (factory) { module.exports = factory(require); }\n \t));\n-\tmodule.exports.should.be.eql(123);\n+\texpect(module.exports).toBe(123);\n });\n \n it("should parse cujojs UMD modules with deps", function() {\n@@ -30,7 +30,7 @@ it("should parse cujojs UMD modules with deps", function() {\n \t\t\t\tmodule.exports = factory.apply(null, deps);\n \t\t\t}\n \t));\n-\tmodule.exports.should.be.eql(1234);\n+\texpect(module.exports).toBe(1234);\n });\n \n it("should parse cujojs UMD modules with inlinded deps", function() {\n@@ -45,5 +45,5 @@ it("should parse cujojs UMD modules with inlinded deps", function() {\n \t\t\t? define\n \t\t\t: function (factory) { module.exports = factory(require); }\n \t));\n-\tmodule.exports.should.be.eql(4321);\n-});\n\\ No newline at end of file\n+\texpect(module.exports).toBe(4321);\n+});\ndiff --git a/test/cases/parsing/issue-3917/index.js b/test/cases/parsing/issue-3917/index.js\nindex 119e28bed..a59847007 100644\n--- a/test/cases/parsing/issue-3917/index.js\n+++ b/test/cases/parsing/issue-3917/index.js\n@@ -8,7 +8,7 @@ it("should not find a free exports", function() {\n \tif(typeof exports !== "undefined")\n \t\t(x.default).should.be.equal(exports);\n \telse\n-\t\t(x.default).should.be.eql(false);\n+\t\texpect((x.default)).toBe(false);\n });\n \n export {}\ndiff --git a/test/cases/parsing/issue-3964/index.js b/test/cases/parsing/issue-3964/index.js\nindex f290a7fa9..90dd22f7c 100644\n--- a/test/cases/parsing/issue-3964/index.js\n+++ b/test/cases/parsing/issue-3964/index.js\n@@ -1,4 +1,4 @@\n it("should be possible to export default an imported name", function() {\n \tvar x = require("./module");\n-\tx.should.be.eql({ default: 1234 });\n+\texpect(x).toEqual({ default: 1234 });\n });\ndiff --git a/test/cases/parsing/issue-4179/index.js b/test/cases/parsing/issue-4179/index.js\nindex 9a769bf3d..c3e7c95a7 100644\n--- a/test/cases/parsing/issue-4179/index.js\n+++ b/test/cases/parsing/issue-4179/index.js\n@@ -2,7 +2,7 @@ import def from "./module?harmony";\n import * as mod from "./module?harmony-start"\n \n it("should export a sequence expression correctly", function() {\n-\trequire("./module?cjs").should.be.eql({ default: 2 });\n-\tdef.should.be.eql(2);\n-\tmod.default.should.be.eql(2);\n+\texpect(require("./module?cjs")).toEqual({ default: 2 });\n+\texpect(def).toBe(2);\n+\texpect(mod.default).toBe(2);\n });\ndiff --git a/test/cases/parsing/issue-4357/index.js b/test/cases/parsing/issue-4357/index.js\nindex 2b3f1da86..bef054d11 100644\n--- a/test/cases/parsing/issue-4357/index.js\n+++ b/test/cases/parsing/issue-4357/index.js\n@@ -5,7 +5,7 @@ it("should parse dynamic property names", function() {\n \t\t[require("./a")]: "a",\n \t\t[b]: "b"\n \t};\n-\to.should.be.eql({\n+\texpect(o).toEqual({\n \t\ta: "a",\n \t\tb: "b"\n \t});\n@@ -21,7 +21,7 @@ it("should match dynamic property names", function() {\n \t\t\t[b]: cc\n \t\t}\n \t}]] = [0, 1, {b: {b: "c"}}];\n-\taa.should.be.eql("a");\n-\tbb.should.be.eql("b");\n-\tcc.should.be.eql("c");\n+\texpect(aa).toBe("a");\n+\texpect(bb).toBe("b");\n+\texpect(cc).toBe("c");\n });\ndiff --git a/test/cases/parsing/issue-4608-1/index.js b/test/cases/parsing/issue-4608-1/index.js\nindex 5ac3cf4b6..760ccdba7 100644\n--- a/test/cases/parsing/issue-4608-1/index.js\n+++ b/test/cases/parsing/issue-4608-1/index.js\n@@ -1,5 +1,5 @@\n it("should find var declaration later in code", function() {\n-\t(typeof require).should.be.eql("undefined");\n+\texpect((typeof require)).toBe("undefined");\n \n \tvar require;\n });\n@@ -10,7 +10,7 @@ it("should find var declaration in same statement", function() {\n \t}), require;\n \n \trequire = (function(x) {\n-\t\tx.should.be.eql("fail");\n+\t\texpect(x).toBe("fail");\n \t});\n \tfn();\n });\n@@ -18,7 +18,7 @@ it("should find var declaration in same statement", function() {\n it("should find a catch block declaration", function() {\n \ttry {\n \t\tvar f = (function(x) {\n-\t\t\tx.should.be.eql("fail");\n+\t\t\texpect(x).toBe("fail");\n \t\t});\n \t\tthrow f;\n \t} catch(require) {\n@@ -28,7 +28,7 @@ it("should find a catch block declaration", function() {\n \n it("should find var declaration in control statements", function() {\n \tvar f = (function(x) {\n-\t\tx.should.be.eql("fail");\n+\t\texpect(x).toBe("fail");\n \t});\n \n \t(function() {\n@@ -83,7 +83,7 @@ it("should find var declaration in control statements", function() {\n \n it("should find var declaration in control statements after usage", function() {\n \tvar f = (function(x) {\n-\t\tx.should.be.eql("fail");\n+\t\texpect(x).toBe("fail");\n \t});\n \n \t(function() {\ndiff --git a/test/cases/parsing/issue-4608-2/index.js b/test/cases/parsing/issue-4608-2/index.js\nindex 4aea99e05..f2e777a5d 100644\n--- a/test/cases/parsing/issue-4608-2/index.js\n+++ b/test/cases/parsing/issue-4608-2/index.js\n@@ -2,7 +2,7 @@\n \n it("should find var declaration in control statements", function() {\n \tvar f = (function(x) {\n-\t\tx.should.be.eql("fail");\n+\t\texpect(x).toBe("fail");\n \t});\n \n \t(function() {\n@@ -16,7 +16,7 @@ it("should find var declaration in control statements", function() {\n \n it("should find var declaration in control statements after usage", function() {\n \tvar f = (function(x) {\n-\t\tx.should.be.eql("fail");\n+\t\texpect(x).toBe("fail");\n \t});\n \n \t(function() {\ndiff --git a/test/cases/parsing/issue-4870/index.js b/test/cases/parsing/issue-4870/index.js\nindex 81774bc88..2e1700560 100644\n--- a/test/cases/parsing/issue-4870/index.js\n+++ b/test/cases/parsing/issue-4870/index.js\n@@ -3,11 +3,11 @@ import { test } from "./file";\n it("should allow import in array destructing", function() {\n \tvar other;\n \t[other = test] = [];\n-\tother.should.be.eql("test");\n+\texpect(other).toBe("test");\n });\n \n it("should allow import in object destructing", function() {\n \tvar other;\n \t({other = test} = {});\n-\tother.should.be.eql("test");\n+\texpect(other).toBe("test");\n });\ndiff --git a/test/cases/parsing/issue-551/index.js b/test/cases/parsing/issue-551/index.js\nindex 6f3a39a0f..16d3208d2 100644\n--- a/test/cases/parsing/issue-551/index.js\n+++ b/test/cases/parsing/issue-551/index.js\n@@ -5,20 +5,20 @@ it("should be able to set the public path", function() {\n \n \tglobal.xyz = "xyz";\n \t__webpack_public_path__ = global.xyz;\n-\t__webpack_require__.p.should.be.eql("xyz");\n+\texpect(__webpack_require__.p).toBe("xyz");\n \tdelete global.xyz;\n \n \twindow.something = "something";\n \t__webpack_public_path__ = window.something;\n-\t__webpack_require__.p.should.be.eql("something");\n+\texpect(__webpack_require__.p).toBe("something");\n \tdelete window.something;\n \n \t__webpack_public_path__ = "abc";\n-\t__webpack_require__.p.should.be.eql("abc");\n+\texpect(__webpack_require__.p).toBe("abc");\n \n \t__webpack_public_path__ = func();\n-\t__webpack_require__.p.should.be.eql("func");\n-\t\n+\texpect(__webpack_require__.p).toBe("func");\n+\n \t__webpack_public_path__ = originalValue;\n \n \tfunction func() {\ndiff --git a/test/cases/parsing/issue-5624/index.js b/test/cases/parsing/issue-5624/index.js\nindex affa367d8..b230381ff 100644\n--- a/test/cases/parsing/issue-5624/index.js\n+++ b/test/cases/parsing/issue-5624/index.js\n@@ -2,5 +2,5 @@ import { fn } from "./module";\n \n it("should allow conditionals as callee", function() {\n \tvar x = (true ? fn : fn)();\n-\tx.should.be.eql("ok");\n+\texpect(x).toBe("ok");\n });\ndiff --git a/test/cases/parsing/issue-758/index.js b/test/cases/parsing/issue-758/index.js\nindex bcae179ba..9646436d5 100644\n--- a/test/cases/parsing/issue-758/index.js\n+++ b/test/cases/parsing/issue-758/index.js\n@@ -2,7 +2,7 @@ it("should require existing module with supplied error callback", function(done)\n \trequire.ensure([\'./file\'], function(){\n \t\ttry {\n \t\t\tvar file = require(\'./file\');\n-\t\t\tfile.should.be.eql("file");\n+\t\t\texpect(file).toBe("file");\n \t\t\tdone();\n \t\t} catch(e) { done(e); }\n \t}, function(error) {});\n@@ -13,7 +13,7 @@ it("should call error callback on missing module", function(done) {\n \t\trequire(\'./missingModule\');\n \t}, function(error) {\n \t\terror.should.be.instanceOf(Error);\n-\t\terror.message.should.be.eql(\'Cannot find module "./missingModule"\');\n+\t\texpect(error.message).toBe(\'Cannot find module "./missingModule"\');\n \t\tdone();\n \t});\n });\n@@ -24,7 +24,7 @@ it("should call error callback on missing module in context", function(done) {\n \t\t\trequire(\'./\' + module);\n \t\t}, function(error) {\n \t\t\terror.should.be.instanceOf(Error);\n-\t\t\terror.message.should.be.eql("Cannot find module \\"./missingModule\\".");\n+\t\t\texpect(error.message).toBe("Cannot find module \\"./missingModule\\".");\n \t\t\tdone();\n \t\t});\n \t})(\'missingModule\');\n@@ -35,7 +35,7 @@ it("should call error callback on exception thrown in loading module", function(\n \t\trequire(\'./throwing\');\n \t}, function(error) {\n \t\terror.should.be.instanceOf(Error);\n-\t\terror.message.should.be.eql(\'message\');\n+\t\texpect(error.message).toBe(\'message\');\n \t\tdone();\n \t});\n });\n@@ -45,7 +45,7 @@ it("should not call error callback on exception thrown in require callback", fun\n \t\tthrow new Error(\'message\');\n \t}, function(error) {\n \t\terror.should.be.instanceOf(Error);\n-\t\terror.message.should.be.eql(\'message\');\n+\t\texpect(error.message).toBe(\'message\');\n \t\tdone();\n \t});\n });\n@@ -58,7 +58,7 @@ it("should call error callback when there is an error loading the chunk", functi\n \t\t\tvar file = require(\'./file\');\n \t\t} catch(e) { done(e); }\n \t}, function(error) {\n-\t\terror.should.be.eql(\'fake chunk load error\');\n+\t\texpect(error).toBe(\'fake chunk load error\');\n \t\tdone();\n \t});\n \t__webpack_require__.e = temp;\ndiff --git a/test/cases/parsing/local-modules/index.js b/test/cases/parsing/local-modules/index.js\nindex 1d558cc85..8eae3c396 100644\n--- a/test/cases/parsing/local-modules/index.js\n+++ b/test/cases/parsing/local-modules/index.js\n@@ -3,13 +3,13 @@ it("should define and require a local module", function() {\n \tdefine("my-module", function() {\n \t\treturn 1234;\n \t});\n-\tmodule.exports.should.be.eql("not set");\n+\texpect(module.exports).toBe("not set");\n \tdefine(["my-module"], function(myModule) {\n-\t\tmyModule.should.be.eql(1234);\n+\t\texpect(myModule).toBe(1234);\n \t\treturn 2345;\n \t});\n-\tmodule.exports.should.be.eql(2345);\n-\trequire("my-module").should.be.eql(1234);\n+\texpect(module.exports).toBe(2345);\n+\texpect(require("my-module")).toBe(1234);\n \trequire(["my-module"]);\n });\n \n@@ -19,11 +19,11 @@ it("should not create a chunk for a AMD require to a local module", function(don\n \t});\n \tvar sync = false;\n \trequire(["my-module2"], function(myModule2) {\n-\t\tmyModule2.should.be.eql(1235);\n+\t\texpect(myModule2).toBe(1235);\n \t\tsync = true;\n \t});\n \tsetImmediate(function() {\n-\t\tsync.should.be.eql(true);\n+\t\texpect(sync).toBe(true);\n \t\tdone();\n \t});\n });\n@@ -31,18 +31,18 @@ it("should not create a chunk for a AMD require to a local module", function(don\n it("should define and require a local module with deps", function() {\n \tmodule.exports = "not set";\n \tdefine("my-module3", ["./dep"], function(dep) {\n-\t\tdep.should.be.eql("dep");\n+\t\texpect(dep).toBe("dep");\n \t\treturn 1234;\n \t});\n-\tmodule.exports.should.be.eql("not set");\n+\texpect(module.exports).toBe("not set");\n \tdefine("my-module4", ["my-module3", "./dep"], function(myModule, dep) {\n-\t\tdep.should.be.eql("dep");\n-\t\tmyModule.should.be.eql(1234);\n+\t\texpect(dep).toBe("dep");\n+\t\texpect(myModule).toBe(1234);\n \t\treturn 2345;\n \t});\n-\tmodule.exports.should.be.eql("not set");\n-\trequire("my-module3").should.be.eql(1234);\n-\trequire("my-module4").should.be.eql(2345);\n+\texpect(module.exports).toBe("not set");\n+\texpect(require("my-module3")).toBe(1234);\n+\texpect(require("my-module4")).toBe(2345);\n });\n \n it("should define and require a local module that is relative", function () {\n@@ -53,9 +53,9 @@ it("should define and require a local module that is relative", function () {\n \t\treturn 2345;\n \t});\n \tdefine("my-dir/my-other-dir/my-module5", ["./my-module4", "../my-module3"], function(myModule4, myModule3) {\n-\t\tmyModule3.should.be.eql(1234);\n-\t\tmyModule4.should.be.eql(2345);\n+\t\texpect(myModule3).toBe(1234);\n+\t\texpect(myModule4).toBe(2345);\n \t\treturn 3456;\n \t});\n-\trequire("my-dir/my-other-dir/my-module5").should.be.eql(3456);\n+\texpect(require("my-dir/my-other-dir/my-module5")).toBe(3456);\n })\ndiff --git a/test/cases/parsing/pattern-in-for/index.js b/test/cases/parsing/pattern-in-for/index.js\nindex 85786e65e..499af551c 100644\n--- a/test/cases/parsing/pattern-in-for/index.js\n+++ b/test/cases/parsing/pattern-in-for/index.js\n@@ -1,15 +1,15 @@\n it("should parse patterns in for in/of statements", () => {\n \tvar message;\n \tfor({ message = require("./module")} of [{}]) {\n-\t\tmessage.should.be.eql("ok");\n+\t\texpect(message).toBe("ok");\n \t}\n \tfor({ message = require("./module") } in { "string": "value" }) {\n-\t\tmessage.should.be.eql("ok");\n+\t\texpect(message).toBe("ok");\n \t}\n \tfor(var { value = require("./module")} of [{}]) {\n-\t\tvalue.should.be.eql("ok");\n+\t\texpect(value).toBe("ok");\n \t}\n \tfor(var { value = require("./module") } in { "string": "value" }) {\n-\t\tvalue.should.be.eql("ok");\n+\t\texpect(value).toBe("ok");\n \t}\n });\ndiff --git a/test/cases/parsing/precreated-ast/index.js b/test/cases/parsing/precreated-ast/index.js\nindex dbcba8820..a74dea11d 100644\n--- a/test/cases/parsing/precreated-ast/index.js\n+++ b/test/cases/parsing/precreated-ast/index.js\n@@ -1,3 +1,3 @@\n it("should be able to process AST from loader", function() {\n-\trequire("./ast-loader!./module").should.be.eql("ok");\n+\texpect(require("./ast-loader!./module")).toBe("ok");\n });\ndiff --git a/test/cases/parsing/renaming/index.js b/test/cases/parsing/renaming/index.js\nindex 22e0edde9..fea96df25 100644\n--- a/test/cases/parsing/renaming/index.js\n+++ b/test/cases/parsing/renaming/index.js\n@@ -1,8 +1,8 @@\n it("should be able to rename require by var", function() {\n \tvar cjsRequire; // just to make it difficult\n \tvar cjsRequire = require, cjsRequire2 = typeof require !== "undefined" && require;\n-\tcjsRequire("./file").should.be.eql("ok");\n-\tcjsRequire2("./file").should.be.eql("ok");\n+\texpect(cjsRequire("./file")).toBe("ok");\n+\texpect(cjsRequire2("./file")).toBe("ok");\n });\n \n it("should be able to rename require by assign", function() {\n@@ -10,39 +10,39 @@ it("should be able to rename require by assign", function() {\n \t(function() {\n \t\tcjsRequire = require;\n \t\tcjsRequire2 = typeof require === "function" && require;\n-\t\tcjsRequire("./file").should.be.eql("ok");\n-\t\tcjsRequire2("./file").should.be.eql("ok");\n+\t\texpect(cjsRequire("./file")).toBe("ok");\n+\t\texpect(cjsRequire2("./file")).toBe("ok");\n \t}());\n });\n \n it("should be able to rename require by IIFE", function() {\n \t(function(cjsRequire) {\n-\t\tcjsRequire("./file").should.be.eql("ok");\n+\t\texpect(cjsRequire("./file")).toBe("ok");\n \t}(require));\n });\n \n it("should be able to rename require by IIFE call", function() {\n \t(function(somethingElse, cjsRequire) {\n-\t\tcjsRequire("./file").should.be.eql("ok");\n-\t\tsomethingElse.should.be.eql(123);\n+\t\texpect(cjsRequire("./file")).toBe("ok");\n+\t\texpect(somethingElse).toBe(123);\n \t}.call(this, 123, typeof require === "function" ? require : "error"));\n });\n \n it("should be able to rename stuff by IIFE call", function() {\n \t(function(_exports, _exports2, _module, _module2, _define, _define2, _require, _require2) {\n \t\t_define(function(R, E, M) {\n-\t\t\tR("./file").should.be.eql("ok");\n-\t\t\t_require("./file").should.be.eql("ok");\n-\t\t\t_require2("./file").should.be.eql("ok");\n-\t\t\tE.should.be.eql(exports);\n-\t\t\t_exports.should.be.eql(exports);\n-\t\t\t_exports2.should.be.eql(exports);\n-\t\t\tM.should.be.eql(module);\n-\t\t\t_module.should.be.eql(module);\n-\t\t\t_module2.should.be.eql(module);\n+\t\t\texpect(R("./file")).toBe("ok");\n+\t\t\texpect(_require("./file")).toBe("ok");\n+\t\t\texpect(_require2("./file")).toBe("ok");\n+\t\t\texpect(E).toBe(exports);\n+\t\t\texpect(_exports).toBe(exports);\n+\t\t\texpect(_exports2).toBe(exports);\n+\t\t\texpect(M).toBe(module);\n+\t\t\texpect(_module).toBe(module);\n+\t\t\texpect(_module2).toBe(module);\n \t\t});\n \t\t_define2(["./file"], function(file) {\n-\t\t\tfile.should.be.eql("ok");\n+\t\t\texpect(file).toBe("ok");\n \t\t});\n \t}).call(this,\n \t\t\ttypeof exports !== \'undefined\' ? exports : null,\n@@ -57,8 +57,8 @@ it("should be able to rename stuff by IIFE call", function() {\n \n it("should accept less parameters in a IIFE call", function() {\n \t(function(r, require) {\n-\t\tr("./file").should.be.eql("ok");\n-\t\t(typeof require).should.be.eql("undefined");\n+\t\texpect(r("./file")).toBe("ok");\n+\t\texpect((typeof require)).toBe("undefined");\n \t}(require));\n });\n \n@@ -70,12 +70,12 @@ it("should accept more parameters in a IIFE call", function() {\n it("should be able to rename stuff by IIFE call", function() {\n \t(function(_exports, _module, _define, _require) {\n \t\t_define(function(R, E, M) {\n-\t\t\tR("./file").should.be.eql("ok");\n-\t\t\t_require("./file").should.be.eql("ok");\n-\t\t\tE.should.be.eql(exports);\n-\t\t\t_exports.should.be.eql(exports);\n-\t\t\tM.should.be.eql(module);\n-\t\t\t_module.should.be.eql(module);\n+\t\t\texpect(R("./file")).toBe("ok");\n+\t\t\texpect(_require("./file")).toBe("ok");\n+\t\t\texpect(E).toBe(exports);\n+\t\t\texpect(_exports).toBe(exports);\n+\t\t\texpect(M).toBe(module);\n+\t\t\texpect(_module).toBe(module);\n \t\t});\n \t}).call(this,\n \t\t\ttypeof exports !== \'undefined\' ? exports : null,\ndiff --git a/test/cases/parsing/requirejs/index.js b/test/cases/parsing/requirejs/index.js\nindex 37ea0ef2f..84b023395 100644\n--- a/test/cases/parsing/requirejs/index.js\n+++ b/test/cases/parsing/requirejs/index.js\n@@ -14,7 +14,7 @@ it("should have a requirejs.onError function", function() {\n \trequirejs.onError.should.be.type("function"); // has default handler\n \tvar org = requirejs.onError;\n \trequirejs.onError = f;\n-\trequirejs.onError.should.be.eql(f);\n+\texpect(requirejs.onError).toBe(f);\n \trequirejs.onError = org;\n \trequire(["./file.js"], function() {});\n });\ndiff --git a/test/cases/parsing/resolve-weak-context/index.js b/test/cases/parsing/resolve-weak-context/index.js\nindex d166968e0..735c7fa49 100644\n--- a/test/cases/parsing/resolve-weak-context/index.js\n+++ b/test/cases/parsing/resolve-weak-context/index.js\n@@ -1,6 +1,6 @@\n it("should be able to use require.resolveWeak with expression", function() {\n \tvar expr = "file";\n \tvar id = require.resolveWeak("./dir/" + expr);\n-\tid.should.be.eql(require("./dir/file.js"));\n+\texpect(id).toBe(require("./dir/file.js"));\n });\n \ndiff --git a/test/cases/parsing/strict-mode/index.js b/test/cases/parsing/strict-mode/index.js\nindex 47aaab0da..d3e026f57 100644\n--- a/test/cases/parsing/strict-mode/index.js\n+++ b/test/cases/parsing/strict-mode/index.js\n@@ -9,11 +9,11 @@ define(["./abc"], function(abc) {\n \t\tvar x = (function() {\n \t\t\treturn this;\n \t\t})();\n-\t\t(typeof x).should.be.eql("undefined");\n+\t\texpect((typeof x)).toBe("undefined");\n \t});\n \n \tit("should import modules in strict mode", function() {\n-\t\ta().should.be.eql("undefined");\n+\t\texpect(a()).toBe("undefined");\n \t});\n \n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/cases/parsing/typeof/index.js b/test/cases/parsing/typeof/index.js\nindex 0425079e7..93e366595 100644\n--- a/test/cases/parsing/typeof/index.js\n+++ b/test/cases/parsing/typeof/index.js\n@@ -1,33 +1,33 @@\n it("should not create a context for typeof require", function() {\n-\trequire("./typeof").should.be.eql("function");\n+\texpect(require("./typeof")).toBe("function");\n });\n \n it("should answer typeof require correctly", function() {\n-\t(typeof require).should.be.eql("function");\n+\texpect((typeof require)).toBe("function");\n });\n it("should answer typeof define correctly", function() {\n-\t(typeof define).should.be.eql("function");\n+\texpect((typeof define)).toBe("function");\n });\n it("should answer typeof require.amd correctly", function() {\n-\t(typeof require.amd).should.be.eql("object");\n+\texpect((typeof require.amd)).toBe("object");\n });\n it("should answer typeof define.amd correctly", function() {\n-\t(typeof define.amd).should.be.eql("object");\n+\texpect((typeof define.amd)).toBe("object");\n });\n it("should answer typeof module correctly", function() {\n-\t(typeof module).should.be.eql("object");\n+\texpect((typeof module)).toBe("object");\n });\n it("should answer typeof exports correctly", function() {\n-\t(typeof exports).should.be.eql("object");\n+\texpect((typeof exports)).toBe("object");\n });\n it("should answer typeof require.include correctly", function() {\n-\t(typeof require.include).should.be.eql("function");\n+\texpect((typeof require.include)).toBe("function");\n });\n it("should answer typeof require.ensure correctly", function() {\n-\t(typeof require.ensure).should.be.eql("function");\n+\texpect((typeof require.ensure)).toBe("function");\n });\n it("should answer typeof require.resolve correctly", function() {\n-\t(typeof require.resolve).should.be.eql("function");\n+\texpect((typeof require.resolve)).toBe("function");\n });\n \n it("should not parse filtered stuff", function() {\ndiff --git a/test/cases/parsing/var-hiding/index.js b/test/cases/parsing/var-hiding/index.js\nindex c339dee9e..095807df0 100644\n--- a/test/cases/parsing/var-hiding/index.js\n+++ b/test/cases/parsing/var-hiding/index.js\n@@ -2,9 +2,9 @@ var fn = function(module) {\n \tif (typeof module !== \'number\') {\n \t\tthrow new Error("module should be a number");\n \t}\n-\t(typeof module).should.be.eql("number");\n+\texpect((typeof module)).toBe("number");\n };\n \n it("should hide a free var by function argument", function() {\n \tfn(1);\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/cases/resolving/browser-field/index.js b/test/cases/resolving/browser-field/index.js\nindex 342938206..4fc076874 100644\n--- a/test/cases/resolving/browser-field/index.js\n+++ b/test/cases/resolving/browser-field/index.js\n@@ -1,36 +1,36 @@\n it("should replace a module with a module", function() {\n-\trequire("replacing-module1").should.be.eql("new-module");\n+\texpect(require("replacing-module1")).toBe("new-module");\n });\n it("should replace a module with a file in a module", function() {\n-\trequire("replacing-module2").should.be.eql("new-module/inner");\n+\texpect(require("replacing-module2")).toBe("new-module/inner");\n });\n it("should replace a module with file in the same module", function() {\n-\trequire("replacing-module3").should.be.eql("new-module/inner");\n+\texpect(require("replacing-module3")).toBe("new-module/inner");\n });\n it("should replace a module with a file in the current module", function() {\n-\trequire("replacing-module4").should.be.eql("replacing-module4/module");\n+\texpect(require("replacing-module4")).toBe("replacing-module4/module");\n });\n \n it("should replace a file with another file", function() {\n-\trequire("replacing-file1").should.be.eql("new-file");\n+\texpect(require("replacing-file1")).toBe("new-file");\n });\n it("should replace a file with a module", function() {\n-\trequire("replacing-file2").should.be.eql("new-module");\n+\texpect(require("replacing-file2")).toBe("new-module");\n });\n it("should replace a file with a file in a module", function() {\n-\trequire("replacing-file3").should.be.eql("new-module/inner");\n+\texpect(require("replacing-file3")).toBe("new-module/inner");\n });\n it("should replace a file in a directory with another file", function() {\n-\trequire("replacing-file4").should.be.eql("new-file");\n+\texpect(require("replacing-file4")).toBe("new-file");\n });\n \n it("should ignore recursive module mappings", function() {\n-\trequire("recursive-module").should.be.eql("new-module");\n+\texpect(require("recursive-module")).toBe("new-module");\n });\n \n it("should use empty modules for ignored modules", function() {\n-\trequire("ignoring-module").module.should.be.eql({});\n-\trequire("ignoring-module").file.should.be.eql({});\n+\texpect(require("ignoring-module").module).toEqual({});\n+\texpect(require("ignoring-module").file).toEqual({});\n \trequire("ignoring-module").module.should.not.be.equal(require("ignoring-module").file);\n });\n \ndiff --git a/test/cases/resolving/context/index.js b/test/cases/resolving/context/index.js\nindex 0b4e1b9a6..89c944dc6 100644\n--- a/test/cases/resolving/context/index.js\n+++ b/test/cases/resolving/context/index.js\n@@ -1,11 +1,11 @@\n it("should resolve loaders relative to require", function() {\n \tvar index = "index", test = "test";\n-\trequire("./loaders/queryloader?query!!!!./node_modules/subcontent/" + index + ".js").should.be.eql({\n+\texpect(require("./loaders/queryloader?query!!!!./node_modules/subcontent/" + index + ".js")).toEqual({\n \t\tresourceQuery: "",\n \t\tquery: "?query",\n \t\tprev: "module.exports = \\"error\\";"\n \t});\n-\trequire("!./loaders/queryloader?query!./node_modules/subcontent/" + test + ".jade").should.be.eql({\n+\texpect(require("!./loaders/queryloader?query!./node_modules/subcontent/" + test + ".jade")).toEqual({\n \t\tresourceQuery: "",\n \t\tquery: "?query",\n \t\tprev: "xyz: abc"\ndiff --git a/test/cases/resolving/single-file-module/index.js b/test/cases/resolving/single-file-module/index.js\nindex fed4edbdd..62fffa34f 100644\n--- a/test/cases/resolving/single-file-module/index.js\n+++ b/test/cases/resolving/single-file-module/index.js\n@@ -1,3 +1,3 @@\n it("should load single file modules", function() {\n-\trequire("subfilemodule").should.be.eql("subfilemodule");\n+\texpect(require("subfilemodule")).toBe("subfilemodule");\n });\ndiff --git a/test/cases/runtime/chunk-callback-order/duplicate.js b/test/cases/runtime/chunk-callback-order/duplicate.js\nindex 9867c8106..354829318 100644\n--- a/test/cases/runtime/chunk-callback-order/duplicate.js\n+++ b/test/cases/runtime/chunk-callback-order/duplicate.js\n@@ -1,3 +1,3 @@\n require.ensure(["./a"], function(require) {\n-\trequire("./a").should.be.eql("a");\n-})\n\\ No newline at end of file\n+\texpect(require("./a")).toBe("a");\n+})\ndiff --git a/test/cases/runtime/chunk-callback-order/duplicate2.js b/test/cases/runtime/chunk-callback-order/duplicate2.js\nindex e6ab3c768..37b0f6b4d 100644\n--- a/test/cases/runtime/chunk-callback-order/duplicate2.js\n+++ b/test/cases/runtime/chunk-callback-order/duplicate2.js\n@@ -1,3 +1,3 @@\n require.ensure(["./b"], function(require) {\n-\trequire("./b").should.be.eql("a");\n-})\n\\ No newline at end of file\n+\texpect(require("./b")).toBe("a");\n+})\ndiff --git a/test/cases/runtime/chunk-callback-order/index.js b/test/cases/runtime/chunk-callback-order/index.js\nindex 3a3f2466a..bed75d0dd 100644\n--- a/test/cases/runtime/chunk-callback-order/index.js\n+++ b/test/cases/runtime/chunk-callback-order/index.js\n@@ -9,7 +9,7 @@ it("should fire multiple code load callbacks in the correct order", function(don\n \t\trequire("./duplicate");\n \t\trequire("./duplicate2");\n \t\tcalls.push(2);\n-\t\tcalls.should.be.eql([1,2]);\n+\t\texpect(calls).toEqual([1,2]);\n \t\tdone();\n \t});\n });\ndiff --git a/test/cases/runtime/circular-dependencies/index.js b/test/cases/runtime/circular-dependencies/index.js\nindex 5a7df2b4c..fe6664245 100644\n--- a/test/cases/runtime/circular-dependencies/index.js\n+++ b/test/cases/runtime/circular-dependencies/index.js\n@@ -1,3 +1,3 @@\n it("should load circular dependencies correctly", function() {\n-\trequire("./circular").should.be.eql(1);\n+\texpect(require("./circular")).toBe(1);\n });\ndiff --git a/test/cases/runtime/error-handling/index.js b/test/cases/runtime/error-handling/index.js\nindex a8652210c..35ab87145 100644\n--- a/test/cases/runtime/error-handling/index.js\n+++ b/test/cases/runtime/error-handling/index.js\n@@ -1,11 +1,11 @@\n function testCase(number) {\n-\trequire(number === 1 ? "./folder/file1" : number === 2 ? "./folder/file2" : number === 3 ? "./folder/file3" : "./missingModule").should.be.eql("file" + number);\n+\texpect(require(number === 1 ? "./folder/file1" : number === 2 ? "./folder/file2" : number === 3 ? "./folder/file3" : "./missingModule")).toBe("file" + number);\n \trequire(\n \t\tnumber === 1 ? "./folder/file1" :\n \t\tnumber === 2 ? "./folder/file2" :\n \t\tnumber === 3 ? "./folder/file3" :\n \t\t"./missingModule"\n-\t).should.be.eql("file" + number);\n+\texpect()).toBe("file" + number);\n }\n \n \ndiff --git a/test/cases/runtime/issue-1650/index.js b/test/cases/runtime/issue-1650/index.js\nindex 307fc665d..f14a6b661 100644\n--- a/test/cases/runtime/issue-1650/index.js\n+++ b/test/cases/runtime/issue-1650/index.js\n@@ -1,6 +1,6 @@\n it("should be able to set the public path globally", function() {\n \tvar org = __webpack_public_path__;\n \trequire("./file");\n-\t__webpack_public_path__.should.be.eql("ok");\n+\texpect(__webpack_public_path__).toBe("ok");\n \t__webpack_public_path__ = org;\n });\ndiff --git a/test/cases/runtime/issue-1788/a.js b/test/cases/runtime/issue-1788/a.js\nindex a15f19f71..f61f5ca91 100644\n--- a/test/cases/runtime/issue-1788/a.js\n+++ b/test/cases/runtime/issue-1788/a.js\n@@ -3,5 +3,5 @@ export default \'a-default\';\n export { btest } from "./b";\n \n export function atest() {\n-\tb.should.be.eql("b-default");\n+\texpect(b).toBe("b-default");\n }\ndiff --git a/test/cases/runtime/issue-1788/b.js b/test/cases/runtime/issue-1788/b.js\nindex d79b5e301..999009add 100644\n--- a/test/cases/runtime/issue-1788/b.js\n+++ b/test/cases/runtime/issue-1788/b.js\n@@ -2,5 +2,5 @@ import a from \'./a\';\n export default \'b-default\';\n \n export function btest() {\n-\ta.should.be.eql("a-default");\n+\texpect(a).toBe("a-default");\n }\ndiff --git a/test/cases/runtime/issue-2391-chunk/index.js b/test/cases/runtime/issue-2391-chunk/index.js\nindex d11248e9e..7e38eadbd 100644\n--- a/test/cases/runtime/issue-2391-chunk/index.js\n+++ b/test/cases/runtime/issue-2391-chunk/index.js\n@@ -1,4 +1,4 @@\n it("should have a require.onError function by default", function() {\n-\t(typeof require.onError).should.be.eql("function");\n+\texpect((typeof require.onError)).toBe("function");\n \trequire(["./file"]);\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/cases/runtime/issue-2391/index.js b/test/cases/runtime/issue-2391/index.js\nindex c2ef272b6..c01b3c35a 100644\n--- a/test/cases/runtime/issue-2391/index.js\n+++ b/test/cases/runtime/issue-2391/index.js\n@@ -1,3 +1,3 @@\n it("should not have a require.onError function by default", function() {\n-\t(typeof require.onError).should.be.eql("undefined"); // expected to fail in browsertests\n-});\n\\ No newline at end of file\n+\texpect((typeof require.onError)).toBe("undefined"); // expected to fail in browsertests\n+});\ndiff --git a/test/cases/runtime/missing-module-exception/index.js b/test/cases/runtime/missing-module-exception/index.js\nindex fa2d10d63..3351fb7a5 100644\n--- a/test/cases/runtime/missing-module-exception/index.js\n+++ b/test/cases/runtime/missing-module-exception/index.js\n@@ -2,6 +2,6 @@ it("should have correct error code", function() {\n \ttry {\n \t\trequire("./fail");\n \t} catch(e) {\n-\t\te.code.should.be.eql("MODULE_NOT_FOUND");\n+\t\texpect(e.code).toBe("MODULE_NOT_FOUND");\n \t}\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/cases/runtime/module-caching/index.js b/test/cases/runtime/module-caching/index.js\nindex 7846b43b5..a8923918f 100644\n--- a/test/cases/runtime/module-caching/index.js\n+++ b/test/cases/runtime/module-caching/index.js\n@@ -2,12 +2,12 @@ var should = require("should");\n \n it("should cache modules correctly", function(done) {\n \tdelete require.cache[require.resolve("./singluar.js")];\n-\trequire("./singluar.js").value.should.be.eql(1);\n-\t(require("./singluar.js")).value.should.be.eql(1);\n+\texpect(require("./singluar.js").value).toBe(1);\n+\texpect((require("./singluar.js")).value).toBe(1);\n \trequire("./sing" + "luar.js").value = 2;\n-\trequire("./singluar.js").value.should.be.eql(2);\n+\texpect(require("./singluar.js").value).toBe(2);\n \trequire.ensure(["./two.js"], function(require) {\n-\t\trequire("./singluar.js").value.should.be.eql(2);\n+\t\texpect(require("./singluar.js").value).toBe(2);\n \t\tdone();\n \t});\n });\n@@ -18,7 +18,7 @@ it("should be able the remove modules from cache with require.cache and require.\n \tvar singlarIdInConditional = require.resolve(true ? "./singluar2" : "./singluar");\n \tif(typeof singlarId !== "number" && typeof singlarId !== "string")\n \t\tthrow new Error("require.resolve should return a number or string");\n-\tsinglarIdInConditional.should.be.eql(singlarId);\n+\texpect(singlarIdInConditional).toBe(singlarId);\n \t(require.cache).should.have.type("object");\n \t(require.cache[singlarId]).should.have.type("object");\n \tdelete require.cache[singlarId];\ndiff --git a/test/cases/scope-hoisting/async-keyword-5615/index.js b/test/cases/scope-hoisting/async-keyword-5615/index.js\nindex b2e73311b..845e64bd5 100644\n--- a/test/cases/scope-hoisting/async-keyword-5615/index.js\n+++ b/test/cases/scope-hoisting/async-keyword-5615/index.js\n@@ -1,5 +1,5 @@\n import value from "./async";\n \n it("should have the correct values", function() {\n-\tvalue.should.be.eql("default");\n+\texpect(value).toBe("default");\n });\ndiff --git a/test/cases/scope-hoisting/chained-reexport/index.js b/test/cases/scope-hoisting/chained-reexport/index.js\nindex 5ac21327b..bfc180c27 100644\n--- a/test/cases/scope-hoisting/chained-reexport/index.js\n+++ b/test/cases/scope-hoisting/chained-reexport/index.js\n@@ -1,5 +1,5 @@\n import { named } from "./c";\n \n it("should have the correct values", function() {\n-\tnamed.should.be.eql("named");\n+\texpect(named).toBe("named");\n });\ndiff --git a/test/cases/scope-hoisting/circular-namespace-object/index.js b/test/cases/scope-hoisting/circular-namespace-object/index.js\nindex 34ccf6f64..bec400548 100644\n--- a/test/cases/scope-hoisting/circular-namespace-object/index.js\n+++ b/test/cases/scope-hoisting/circular-namespace-object/index.js\n@@ -1,5 +1,5 @@\n import value from "./module";\n \n it("should have access to namespace object before evaluation", function() {\n-\tvalue.should.be.eql("ok");\n+\texpect(value).toBe("ok");\n });\ndiff --git a/test/cases/scope-hoisting/export-namespace/index.js b/test/cases/scope-hoisting/export-namespace/index.js\nindex 6c1b35d6f..b0d80a404 100644\n--- a/test/cases/scope-hoisting/export-namespace/index.js\n+++ b/test/cases/scope-hoisting/export-namespace/index.js\n@@ -2,14 +2,14 @@ import { ns as ns1 } from "./module1";\n const ns2 = require("./module2").ns;\n \n it("should allow to export a namespace object (concated)", function() {\n-\tns1.should.be.eql({\n+\texpect(ns1).toEqual({\n \t\ta: "a",\n \t\tb: "b"\n \t});\n });\n \n it("should allow to export a namespace object (exposed)", function() {\n-\tns2.should.be.eql({\n+\texpect(ns2).toEqual({\n \t\ta: "a",\n \t\tb: "b"\n \t});\ndiff --git a/test/cases/scope-hoisting/import-order/index.js b/test/cases/scope-hoisting/import-order/index.js\nindex ce3eb1675..e4d2e75a5 100644\n--- a/test/cases/scope-hoisting/import-order/index.js\n+++ b/test/cases/scope-hoisting/import-order/index.js\n@@ -3,5 +3,5 @@ import "./module";\n import { log } from "./tracker";\n \n it("should evaluate import in the correct order", function() {\n-\tlog.should.be.eql(["commonjs", "module"]);\n+\texpect(log).toEqual(["commonjs", "module"]);\n });\ndiff --git a/test/cases/scope-hoisting/indirect-reexport/index.js b/test/cases/scope-hoisting/indirect-reexport/index.js\nindex f9a31c159..44e195598 100644\n--- a/test/cases/scope-hoisting/indirect-reexport/index.js\n+++ b/test/cases/scope-hoisting/indirect-reexport/index.js\n@@ -1,5 +1,5 @@\n var c = require("./c");\n \n it("should have the correct values", function() {\n-\tc.named.should.be.eql("named");\n+\texpect(c.named).toBe("named");\n });\ndiff --git a/test/cases/scope-hoisting/inside-class/index.js b/test/cases/scope-hoisting/inside-class/index.js\nindex 63aa824b3..eba2d46a7 100644\n--- a/test/cases/scope-hoisting/inside-class/index.js\n+++ b/test/cases/scope-hoisting/inside-class/index.js\n@@ -4,8 +4,8 @@ import { Foo as SecondFoo, Bar } from "./second"\n it("should renamed class reference in inner scope", function() {\n \tvar a = new Foo().test();\n \tvar b = new SecondFoo().test();\n-\ta.should.be.eql(1);\n-\tb.should.be.eql(2);\n-\tnew FirstBar().test().should.be.eql(1);\n-\tnew Bar().test().should.be.eql(2);\n+\texpect(a).toBe(1);\n+\texpect(b).toBe(2);\n+\texpect(new FirstBar().test()).toBe(1);\n+\texpect(new Bar().test()).toBe(2);\n });\ndiff --git a/test/cases/scope-hoisting/intra-references/index.js b/test/cases/scope-hoisting/intra-references/index.js\nindex 371843667..b1169303c 100644\n--- a/test/cases/scope-hoisting/intra-references/index.js\n+++ b/test/cases/scope-hoisting/intra-references/index.js\n@@ -1,7 +1,7 @@\n import value from "./a";\n \n it("should have the correct values", function() {\n-\tvalue.should.be.eql("ok");\n+\texpect(value).toBe("ok");\n });\n \n \ndiff --git a/test/cases/scope-hoisting/issue-5020-minimal/index.js b/test/cases/scope-hoisting/issue-5020-minimal/index.js\nindex b992781ad..5a6efdf17 100644\n--- a/test/cases/scope-hoisting/issue-5020-minimal/index.js\n+++ b/test/cases/scope-hoisting/issue-5020-minimal/index.js\n@@ -1,7 +1,7 @@\n var testData = require("./src/index.js");\n \n it("should export the correct values", function() {\n-\ttestData.should.be.eql({\n+\texpect(testData).toEqual({\n \t\ticon: {\n \t\t\tsvg: {\n \t\t\t\tdefault: 1\ndiff --git a/test/cases/scope-hoisting/issue-5020/index.js b/test/cases/scope-hoisting/issue-5020/index.js\nindex f2ab49e39..a989f0816 100644\n--- a/test/cases/scope-hoisting/issue-5020/index.js\n+++ b/test/cases/scope-hoisting/issue-5020/index.js\n@@ -1,7 +1,7 @@\n var testData = require("./src/index.js");\n \n it("should export the correct values", function() {\n-\ttestData.should.be.eql({\n+\texpect(testData).toEqual({\n \t\tsvg5: {\n \t\t\tsvg: {\n \t\t\t\tclinical1: {\ndiff --git a/test/cases/scope-hoisting/issue-5096/index.js b/test/cases/scope-hoisting/issue-5096/index.js\nindex 0b7a38114..5da7dc001 100644\n--- a/test/cases/scope-hoisting/issue-5096/index.js\n+++ b/test/cases/scope-hoisting/issue-5096/index.js\n@@ -9,5 +9,5 @@ if(Math.random() < -1)\n \tconsole.log(module);\n \n it("should compile fine", function() {\n-\tb.should.be.eql("a");\n+\texpect(b).toBe("a");\n });\ndiff --git a/test/cases/scope-hoisting/issue-5314/index.js b/test/cases/scope-hoisting/issue-5314/index.js\nindex 2697608c7..d35a27e91 100644\n--- a/test/cases/scope-hoisting/issue-5314/index.js\n+++ b/test/cases/scope-hoisting/issue-5314/index.js\n@@ -3,7 +3,7 @@ import a from "./module";\n var obj = {};\n \n it("should allow access to the default export of the root module", function() {\n-\ta().should.be.eql(obj);\n+\texpect(a()).toBe(obj);\n });\n \n export default obj;\ndiff --git a/test/cases/scope-hoisting/issue-5443/index.js b/test/cases/scope-hoisting/issue-5443/index.js\nindex 5ce5559b2..5edce3165 100644\n--- a/test/cases/scope-hoisting/issue-5443/index.js\n+++ b/test/cases/scope-hoisting/issue-5443/index.js\n@@ -1,7 +1,7 @@\n import { module } from "./reexport";\n \n it("should have the correct values", function() {\n-\tmodule.should.be.eql({\n+\texpect(module).toEqual({\n \t\tdefault: "default",\n \t\tnamed: "named"\n \t});\ndiff --git a/test/cases/scope-hoisting/issue-5481/index.js b/test/cases/scope-hoisting/issue-5481/index.js\nindex b72050107..26fb8bd25 100644\n--- a/test/cases/scope-hoisting/issue-5481/index.js\n+++ b/test/cases/scope-hoisting/issue-5481/index.js\n@@ -1,5 +1,5 @@\n import value from "./module";\n \n it("should not cause name conflicts", function() {\n-\t(typeof value).should.be.eql("undefined");\n+\texpect((typeof value)).toBe("undefined");\n });\ndiff --git a/test/cases/scope-hoisting/name-conflicts/index.js b/test/cases/scope-hoisting/name-conflicts/index.js\nindex 486777033..351cbeac4 100644\n--- a/test/cases/scope-hoisting/name-conflicts/index.js\n+++ b/test/cases/scope-hoisting/name-conflicts/index.js\n@@ -6,10 +6,10 @@ import value5 from "./module?{";\n import value6 from "./module?}";\n \n it("should not break on name conflicts", function() {\n-\tvalue1.should.be.eql("a");\n-\tvalue2.should.be.eql("a");\n-\tvalue3.should.be.eql("a");\n-\tvalue4.should.be.eql("a");\n-\tvalue5.should.be.eql("a");\n-\tvalue6.should.be.eql("a");\n+\texpect(value1).toBe("a");\n+\texpect(value2).toBe("a");\n+\texpect(value3).toBe("a");\n+\texpect(value4).toBe("a");\n+\texpect(value5).toBe("a");\n+\texpect(value6).toBe("a");\n });\ndiff --git a/test/cases/scope-hoisting/reexport-cjs/index.js b/test/cases/scope-hoisting/reexport-cjs/index.js\nindex 5ac21327b..bfc180c27 100644\n--- a/test/cases/scope-hoisting/reexport-cjs/index.js\n+++ b/test/cases/scope-hoisting/reexport-cjs/index.js\n@@ -1,5 +1,5 @@\n import { named } from "./c";\n \n it("should have the correct values", function() {\n-\tnamed.should.be.eql("named");\n+\texpect(named).toBe("named");\n });\ndiff --git a/test/cases/scope-hoisting/reexport-exposed-cjs/index.js b/test/cases/scope-hoisting/reexport-exposed-cjs/index.js\nindex f9a31c159..44e195598 100644\n--- a/test/cases/scope-hoisting/reexport-exposed-cjs/index.js\n+++ b/test/cases/scope-hoisting/reexport-exposed-cjs/index.js\n@@ -1,5 +1,5 @@\n var c = require("./c");\n \n it("should have the correct values", function() {\n-\tc.named.should.be.eql("named");\n+\texpect(c.named).toBe("named");\n });\ndiff --git a/test/cases/scope-hoisting/reexport-exposed-default-cjs/index.js b/test/cases/scope-hoisting/reexport-exposed-default-cjs/index.js\nindex 80958b553..1043ef8a5 100644\n--- a/test/cases/scope-hoisting/reexport-exposed-default-cjs/index.js\n+++ b/test/cases/scope-hoisting/reexport-exposed-default-cjs/index.js\n@@ -1,5 +1,5 @@\n var c = require("./c");\n \n it("should have the correct values", function() {\n-\tc.default.should.be.eql("default");\n+\texpect(c.default).toBe("default");\n });\ndiff --git a/test/cases/scope-hoisting/reexport-exposed-harmony/index.js b/test/cases/scope-hoisting/reexport-exposed-harmony/index.js\nindex f9a31c159..44e195598 100644\n--- a/test/cases/scope-hoisting/reexport-exposed-harmony/index.js\n+++ b/test/cases/scope-hoisting/reexport-exposed-harmony/index.js\n@@ -1,5 +1,5 @@\n var c = require("./c");\n \n it("should have the correct values", function() {\n-\tc.named.should.be.eql("named");\n+\texpect(c.named).toBe("named");\n });\ndiff --git a/test/cases/scope-hoisting/renaming-4967/index.js b/test/cases/scope-hoisting/renaming-4967/index.js\nindex 445ebec05..bcde84c0d 100644\n--- a/test/cases/scope-hoisting/renaming-4967/index.js\n+++ b/test/cases/scope-hoisting/renaming-4967/index.js\n@@ -1,5 +1,5 @@\n it("should check existing variables when renaming", function() {\n-\trequire("./module").d.x().should.be.eql("ok");\n-\trequire("./module").c.a().should.be.eql("ok");\n-\trequire("./module").test().should.be.eql("ok");\n+\texpect(require("./module").d.x()).toBe("ok");\n+\texpect(require("./module").c.a()).toBe("ok");\n+\texpect(require("./module").test()).toBe("ok");\n });\ndiff --git a/test/cases/scope-hoisting/renaming-shorthand-5027/index.js b/test/cases/scope-hoisting/renaming-shorthand-5027/index.js\nindex 7a7318ea7..5b58a8401 100644\n--- a/test/cases/scope-hoisting/renaming-shorthand-5027/index.js\n+++ b/test/cases/scope-hoisting/renaming-shorthand-5027/index.js\n@@ -1,7 +1,7 @@\n import m from "./module";\n \n it("should apply shorthand properties correctly when renaming", function() {\n-\tm.should.be.eql({\n+\texpect(m).toEqual({\n \t\tobj: {\n \t\t\ttest: "test1",\n \t\t\ttest2: "test2",\ndiff --git a/test/cases/scope-hoisting/require-root-5604/index.js b/test/cases/scope-hoisting/require-root-5604/index.js\nindex 0aeb495bb..040925c6b 100644\n--- a/test/cases/scope-hoisting/require-root-5604/index.js\n+++ b/test/cases/scope-hoisting/require-root-5604/index.js\n@@ -2,7 +2,7 @@ import value, { self as moduleSelf } from "./module";\n export var self = require("./");\n \n it("should have the correct values", function() {\n-\tvalue.should.be.eql("default");\n-\tmoduleSelf.should.be.eql(self);\n-\tself.self.should.be.eql(self);\n+\texpect(value).toBe("default");\n+\texpect(moduleSelf).toBe(self);\n+\texpect(self.self).toBe(self);\n });\ndiff --git a/test/cases/scope-hoisting/simple/index.js b/test/cases/scope-hoisting/simple/index.js\nindex b0ca24d53..2df9c1a85 100644\n--- a/test/cases/scope-hoisting/simple/index.js\n+++ b/test/cases/scope-hoisting/simple/index.js\n@@ -1,6 +1,6 @@\n import value, { named } from "./module";\n \n it("should have the correct values", function() {\n-\tvalue.should.be.eql("default");\n-\tnamed.should.be.eql("named");\n+\texpect(value).toBe("default");\n+\texpect(named).toBe("named");\n });\ndiff --git a/test/cases/wasm/import-wasm-wasm/index.js b/test/cases/wasm/import-wasm-wasm/index.js\nindex bdc8813c3..f73e0b893 100644\n--- a/test/cases/wasm/import-wasm-wasm/index.js\n+++ b/test/cases/wasm/import-wasm-wasm/index.js\n@@ -1,6 +1,6 @@\n it("should allow to run a WebAssembly module with imports", function() {\n \treturn import("./wasm.wasm").then(function(wasm) {\n \t\tconst result = wasm.addNumber(20);\n-\t\tresult.should.be.eql(42);\n+\t\texpect(result).toEqual(42);\n \t});\n });\ndiff --git a/test/cases/wasm/imports-circular/index.js b/test/cases/wasm/imports-circular/index.js\nindex c76871b00..288ab4213 100644\n--- a/test/cases/wasm/imports-circular/index.js\n+++ b/test/cases/wasm/imports-circular/index.js\n@@ -1,5 +1,5 @@\n it("should allow to run a WebAssembly module importing JS circular", function() {\n \treturn import("./module").then(function(mod) {\n-\t\tmod.result.should.be.eql(42);\n+\t\texpect(mod.result).toBe(42);\n \t});\n });\ndiff --git a/test/cases/wasm/imports/index.js b/test/cases/wasm/imports/index.js\nindex d562c4a28..d71f2190c 100644\n--- a/test/cases/wasm/imports/index.js\n+++ b/test/cases/wasm/imports/index.js\n@@ -1,6 +1,6 @@\n it("should allow to run a WebAssembly module with imports", function() {\n \treturn import("./wasm.wasm?1").then(function(wasm) {\n \t\tconst result = wasm.addNumber(3);\n-\t\tresult.should.be.eql(11);\n+\t\texpect(result).toEqual(11);\n \t});\n });\ndiff --git a/test/cases/wasm/simple/index.js b/test/cases/wasm/simple/index.js\nindex ab607d81b..b3069c705 100644\n--- a/test/cases/wasm/simple/index.js\n+++ b/test/cases/wasm/simple/index.js\n@@ -1,13 +1,13 @@\n it("should allow to run a WebAssembly module (indirect)", function() {\n \treturn import("./module").then(function(module) {\n \t\tconst result = module.run();\n-\t\tresult.should.be.eql(42);\n+\t\texpect(result).toEqual(42);\n \t});\n });\n \n it("should allow to run a WebAssembly module (direct)", function() {\n \treturn import("./wasm.wasm?2").then(function(wasm) {\n \t\tconst result = wasm.add(wasm.getNumber(), 2);\n-\t\tresult.should.be.eql(42);\n+\t\texpect(result).toEqual(42);\n \t});\n });\ndiff --git a/test/configCases/async-commons-chunk/all-selected/index.js b/test/configCases/async-commons-chunk/all-selected/index.js\nindex 474da4c16..cfc15c09e 100644\n--- a/test/configCases/async-commons-chunk/all-selected/index.js\n+++ b/test/configCases/async-commons-chunk/all-selected/index.js\n@@ -1,22 +1,22 @@\n it("should load the full async commons", function(done) {\n \trequire.ensure(["./a"], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n+\t\texpect(require("./a")).toBe("a");\n \t\tdone();\n \t});\n });\n \n it("should load a chunk with async commons (AMD)", function(done) {\n \trequire(["./a", "./b"], function(a, b) {\n-\t\ta.should.be.eql("a");\n-\t\tb.should.be.eql("b");\n+\t\texpect(a).toBe("a");\n+\t\texpect(b).toBe("b");\n \t\tdone();\n \t});\n });\n \n it("should load a chunk with async commons (require.ensure)", function(done) {\n \trequire.ensure([], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n-\t\trequire("./c").should.be.eql("c");\n+\t\texpect(require("./a")).toBe("a");\n+\t\texpect(require("./c")).toBe("c");\n \t\tdone();\n \t});\n });\ndiff --git a/test/configCases/async-commons-chunk/duplicate/index.js b/test/configCases/async-commons-chunk/duplicate/index.js\nindex 8209ce099..7370a4064 100644\n--- a/test/configCases/async-commons-chunk/duplicate/index.js\n+++ b/test/configCases/async-commons-chunk/duplicate/index.js\n@@ -1,28 +1,28 @@\n it("should load nested commons chunk", function(done) {\n \tvar counter = 0;\n \trequire.ensure(["./a"], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n+\t\texpect(require("./a")).toBe("a");\n \t\trequire.ensure(["./c", "./d"], function(require) {\n-\t\t\trequire("./c").should.be.eql("c");\n-\t\t\trequire("./d").should.be.eql("d");\n+\t\t\texpect(require("./c")).toBe("c");\n+\t\t\texpect(require("./d")).toBe("d");\n \t\t\tif(++counter == 4) done();\n \t\t});\n \t\trequire.ensure(["./c", "./e"], function(require) {\n-\t\t\trequire("./c").should.be.eql("c");\n-\t\t\trequire("./e").should.be.eql("e");\n+\t\t\texpect(require("./c")).toBe("c");\n+\t\t\texpect(require("./e")).toBe("e");\n \t\t\tif(++counter == 4) done();\n \t\t});\n \t});\n \trequire.ensure(["./b"], function(require) {\n-\t\trequire("./b").should.be.eql("b");\n+\t\texpect(require("./b")).toBe("b");\n \t\trequire.ensure(["./c", "./d"], function(require) {\n-\t\t\trequire("./c").should.be.eql("c");\n-\t\t\trequire("./d").should.be.eql("d");\n+\t\t\texpect(require("./c")).toBe("c");\n+\t\t\texpect(require("./d")).toBe("d");\n \t\t\tif(++counter == 4) done();\n \t\t});\n \t\trequire.ensure(["./c", "./e"], function(require) {\n-\t\t\trequire("./c").should.be.eql("c");\n-\t\t\trequire("./e").should.be.eql("e");\n+\t\t\texpect(require("./c")).toBe("c");\n+\t\t\texpect(require("./e")).toBe("e");\n \t\t\tif(++counter == 4) done();\n \t\t});\n \t});\ndiff --git a/test/configCases/async-commons-chunk/existing-name/index.js b/test/configCases/async-commons-chunk/existing-name/index.js\nindex 3166ba893..31da0708a 100644\n--- a/test/configCases/async-commons-chunk/existing-name/index.js\n+++ b/test/configCases/async-commons-chunk/existing-name/index.js\n@@ -5,29 +5,29 @@ const chunkLoadingSpy = sinon.spy(__webpack_require__, "e");\n it("should not have duplicate chunks in blocks", function(done) {\n     // This split point should contain: a\n \trequire.ensure([], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n+\t\texpect(require("./a")).toBe("a");\n \t}, "a");\n \n     // This split point should contain: a and b - we use CommonsChunksPlugin to\n     // have it only contain b and make chunk a be an async dependency.\n \trequire.ensure([], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n-\t\trequire("./b").should.be.eql("b");\n+\t\texpect(require("./a")).toBe("a");\n+\t\texpect(require("./b")).toBe("b");\n \t}, "a+b");\n \n     // This split point should contain: a, b and c - we use CommonsChunksPlugin to\n     // have it only contain c and make chunks a and a+b be async dependencies.\n \trequire.ensure([], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n-\t\trequire("./b").should.be.eql("b");\n-\t\trequire("./c").should.be.eql("c");\n+\t\texpect(require("./a")).toBe("a");\n+\t\texpect(require("./b")).toBe("b");\n+\t\texpect(require("./c")).toBe("c");\n \t}, "a+b+c");\n \n     // Each of the require.ensures above should end up resolving chunks:\n     // - a\n     // - a, a+b\n     // - a, a+b, a+b+c\n-\tchunkLoadingSpy.callCount.should.be.eql(6);\n-\tchunkLoadingSpy.args.should.be.eql([["a"], ["a"], ["a+b~a+b+c" /* == b */], ["a"], ["a+b~a+b+c" /* == b */], ["a+b+c"]]);\n+\texpect(chunkLoadingSpy.callCount).toBe(6);\n+\texpect(chunkLoadingSpy.args).toEqual([["a"], ["a"], ["a+b~a+b+c" /* == b */], ["a"], ["a+b~a+b+c" /* == b */], ["a+b+c"]]);\n \tdone();\n });\ndiff --git a/test/configCases/async-commons-chunk/nested/index.js b/test/configCases/async-commons-chunk/nested/index.js\nindex 374a2cca8..255659c5c 100644\n--- a/test/configCases/async-commons-chunk/nested/index.js\n+++ b/test/configCases/async-commons-chunk/nested/index.js\n@@ -1,19 +1,19 @@\n it("should load nested commons chunk", function(done) {\n \trequire.ensure(["./a"], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n+\t\texpect(require("./a")).toBe("a");\n \t\tvar counter = 0;\n \t\trequire.ensure(["./b", "./c"], function(require) {\n-\t\t\trequire("./b").should.be.eql("b");\n-\t\t\trequire("./c").should.be.eql("c");\n+\t\t\texpect(require("./b")).toBe("b");\n+\t\t\texpect(require("./c")).toBe("c");\n \t\t\tif(++counter == 3) done();\n \t\t});\n \t\trequire.ensure(["./b", "./d"], function(require) {\n-\t\t\trequire("./b").should.be.eql("b");\n-\t\t\trequire("./d").should.be.eql("d");\n+\t\t\texpect(require("./b")).toBe("b");\n+\t\t\texpect(require("./d")).toBe("d");\n \t\t\tif(++counter == 3) done();\n \t\t});\n \t\trequire.ensure(["./b"], function(require) {\n-\t\t\trequire("./b").should.be.eql("b");\n+\t\t\texpect(require("./b")).toBe("b");\n \t\t\tif(++counter == 3) done();\n \t\t});\n \t});\ndiff --git a/test/configCases/async-commons-chunk/simple/index.js b/test/configCases/async-commons-chunk/simple/index.js\nindex 474da4c16..cfc15c09e 100644\n--- a/test/configCases/async-commons-chunk/simple/index.js\n+++ b/test/configCases/async-commons-chunk/simple/index.js\n@@ -1,22 +1,22 @@\n it("should load the full async commons", function(done) {\n \trequire.ensure(["./a"], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n+\t\texpect(require("./a")).toBe("a");\n \t\tdone();\n \t});\n });\n \n it("should load a chunk with async commons (AMD)", function(done) {\n \trequire(["./a", "./b"], function(a, b) {\n-\t\ta.should.be.eql("a");\n-\t\tb.should.be.eql("b");\n+\t\texpect(a).toBe("a");\n+\t\texpect(b).toBe("b");\n \t\tdone();\n \t});\n });\n \n it("should load a chunk with async commons (require.ensure)", function(done) {\n \trequire.ensure([], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n-\t\trequire("./c").should.be.eql("c");\n+\t\texpect(require("./a")).toBe("a");\n+\t\texpect(require("./c")).toBe("c");\n \t\tdone();\n \t});\n });\ndiff --git a/test/configCases/code-generation/require-context-id/index.js b/test/configCases/code-generation/require-context-id/index.js\nindex a3002be89..c6da6e5f4 100644\n--- a/test/configCases/code-generation/require-context-id/index.js\n+++ b/test/configCases/code-generation/require-context-id/index.js\n@@ -1,5 +1,5 @@\n it("should escape require.context id correctly", function() {\n \tvar context = require.context("./folder");\n-\tcontext("./a").should.be.eql("a");\n+\texpect(context("./a")).toBe("a");\n \tcontext.id.should.be.type("string");\n });\ndiff --git a/test/configCases/code-generation/use-strict/index.js b/test/configCases/code-generation/use-strict/index.js\nindex ff811c676..cf05674be 100644\n--- a/test/configCases/code-generation/use-strict/index.js\n+++ b/test/configCases/code-generation/use-strict/index.js\n@@ -15,7 +15,7 @@ it("should include only one use strict per module", function() {\n \t\tmatch = regExp.exec(source);\n \t}\n \n-\tmatches.should.be.eql([\n+\texpect(matches).toEqual([\n \t\t"__webpack_require__.r(__webpack_exports__);",\n \t\t"/* unused harmony default export */ var _unused_webpack_default_export = (\\"a\\");",\n \t\t"__webpack_require__.r(__webpack_exports__);",\ndiff --git a/test/configCases/commons-chunk-plugin/correct-order/index.js b/test/configCases/commons-chunk-plugin/correct-order/index.js\nindex 10d9a9900..10eaf4c6e 100644\n--- a/test/configCases/commons-chunk-plugin/correct-order/index.js\n+++ b/test/configCases/commons-chunk-plugin/correct-order/index.js\n@@ -3,11 +3,11 @@ require("should");\n var a = require("./a");\n \n it("should run", function() {\n-\ta.should.be.eql("a");\n+\texpect(a).toBe("a");\n });\n \n var mainModule = require.main;\n \n it("should be main", function() {\n-\tmainModule.should.be.eql(module);\n+\texpect(mainModule).toBe(module);\n });\ndiff --git a/test/configCases/commons-chunk-plugin/hot-multi/first.js b/test/configCases/commons-chunk-plugin/hot-multi/first.js\nindex 0775bfc22..034fd5fe3 100644\n--- a/test/configCases/commons-chunk-plugin/hot-multi/first.js\n+++ b/test/configCases/commons-chunk-plugin/hot-multi/first.js\n@@ -4,5 +4,5 @@ require("./common");\n \n it("should have the correct main flag for multi first module", function() {\n \tvar multiModule = __webpack_require__.c[module.parents[0]];\n-\tmultiModule.hot._main.should.be.eql(true);\n+\texpect(multiModule.hot._main).toBe(true);\n });\ndiff --git a/test/configCases/commons-chunk-plugin/hot-multi/second.js b/test/configCases/commons-chunk-plugin/hot-multi/second.js\nindex facb4a27e..12da2578a 100644\n--- a/test/configCases/commons-chunk-plugin/hot-multi/second.js\n+++ b/test/configCases/commons-chunk-plugin/hot-multi/second.js\n@@ -4,5 +4,5 @@ require("./common");\n \n it("should have the correct main flag for multi second module", function() {\n \tvar multiModule = __webpack_require__.c[module.parents[0]];\n-\tmultiModule.hot._main.should.be.eql(true);\n+\texpect(multiModule.hot._main).toBe(true);\n });\ndiff --git a/test/configCases/commons-chunk-plugin/hot-multi/vendor.js b/test/configCases/commons-chunk-plugin/hot-multi/vendor.js\nindex b2c70c298..abba7de3a 100644\n--- a/test/configCases/commons-chunk-plugin/hot-multi/vendor.js\n+++ b/test/configCases/commons-chunk-plugin/hot-multi/vendor.js\n@@ -4,5 +4,5 @@ module.exports = "vendor";\n \n it("should have the correct main flag for multi vendor module", function() {\n \tvar multiModule = __webpack_require__.c[module.parents[0]];\n-\tmultiModule.hot._main.should.be.eql(true);\n+\texpect(multiModule.hot._main).toBe(true);\n });\ndiff --git a/test/configCases/commons-chunk-plugin/hot/index.js b/test/configCases/commons-chunk-plugin/hot/index.js\nindex affedf39c..7179d70f8 100644\n--- a/test/configCases/commons-chunk-plugin/hot/index.js\n+++ b/test/configCases/commons-chunk-plugin/hot/index.js\n@@ -2,10 +2,10 @@ require("should");\n \n it("should have the correct main flag", function() {\n \tvar a = require("./vendor");\n-\ta._main.should.be.eql(false);\n-\tmodule.hot._main.should.be.eql(true);\n+\texpect(a._main).toBe(false);\n+\texpect(module.hot._main).toBe(true);\n });\n \n it("should be main", function() {\n-\trequire.main.should.be.eql(module);\n+\texpect(require.main).toBe(module);\n });\ndiff --git a/test/configCases/commons-chunk-plugin/inverted-order/index.js b/test/configCases/commons-chunk-plugin/inverted-order/index.js\nindex 10d9a9900..10eaf4c6e 100644\n--- a/test/configCases/commons-chunk-plugin/inverted-order/index.js\n+++ b/test/configCases/commons-chunk-plugin/inverted-order/index.js\n@@ -3,11 +3,11 @@ require("should");\n var a = require("./a");\n \n it("should run", function() {\n-\ta.should.be.eql("a");\n+\texpect(a).toBe("a");\n });\n \n var mainModule = require.main;\n \n it("should be main", function() {\n-\tmainModule.should.be.eql(module);\n+\texpect(mainModule).toBe(module);\n });\ndiff --git a/test/configCases/commons-chunk-plugin/move-to-grandparent/index.js b/test/configCases/commons-chunk-plugin/move-to-grandparent/index.js\nindex 5c459f215..abee1e85c 100644\n--- a/test/configCases/commons-chunk-plugin/move-to-grandparent/index.js\n+++ b/test/configCases/commons-chunk-plugin/move-to-grandparent/index.js\n@@ -3,8 +3,8 @@ it("should correctly include indirect children in common chunk", function(done)\n \t\timport(\'./pageA\'),\n \t\timport(\'./pageB\').then(m => m.default)\n \t]).then((imports) => {\n-\t\timports[0].default.should.be.eql("reuse");\n-\t\timports[1].default.should.be.eql("reuse");\n+\t\texpect(imports[0].default).toBe("reuse");\n+\t\texpect(imports[1].default).toBe("reuse");\n \t\tdone();\n \t}).catch(e => {\n \t\tdone(e);\ndiff --git a/test/configCases/commons-chunk-plugin/move-to-grandparent/second.js b/test/configCases/commons-chunk-plugin/move-to-grandparent/second.js\nindex c661ef828..1de5d49a3 100644\n--- a/test/configCases/commons-chunk-plugin/move-to-grandparent/second.js\n+++ b/test/configCases/commons-chunk-plugin/move-to-grandparent/second.js\n@@ -1,6 +1,6 @@\n it("should handle indirect children with multiple parents correctly", function(done) {\n   import(\'./pageB\').then(b => {\n-    b.default.should.be.eql("reuse");\n+expect(    b.default).toBe("reuse");\n     done()\n   }).catch(e => {\n \t\tdone();\ndiff --git a/test/configCases/commons-chunk-plugin/simple/index.js b/test/configCases/commons-chunk-plugin/simple/index.js\nindex 60fcce8a7..11ff8ad6d 100644\n--- a/test/configCases/commons-chunk-plugin/simple/index.js\n+++ b/test/configCases/commons-chunk-plugin/simple/index.js\n@@ -2,9 +2,9 @@ require("should");\n \n it("should run", function() {\n \tvar a = require("./a");\n-\ta.should.be.eql("a");\n+\texpect(a).toBe("a");\n });\n \n it("should be main", function() {\n-\trequire.main.should.be.eql(module);\n-});\n\\ No newline at end of file\n+\texpect(require.main).toBe(module);\n+});\ndiff --git a/test/configCases/context-exclusion/simple/index.js b/test/configCases/context-exclusion/simple/index.js\nindex 90ea02744..05202c1e6 100644\n--- a/test/configCases/context-exclusion/simple/index.js\n+++ b/test/configCases/context-exclusion/simple/index.js\n@@ -3,9 +3,9 @@ function requireInContext(someVariable) {\n }\n \n it("should not exclude paths not matching the exclusion pattern", function() {\n-\trequireInContext("file").should.be.eql("thats good");\n-\trequireInContext("check-here/file").should.be.eql("thats good");\n-\trequireInContext("check-here/check-here/file").should.be.eql("thats good");\n+\texpect(requireInContext("file")).toBe("thats good");\n+\texpect(requireInContext("check-here/file")).toBe("thats good");\n+\texpect(requireInContext("check-here/check-here/file")).toBe("thats good");\n });\n \n it("should exclude paths/files matching the exclusion pattern", function() {\ndiff --git a/test/configCases/context-replacement/System.import/index.js b/test/configCases/context-replacement/System.import/index.js\nindex b50ae4885..1c1cae849 100644\n--- a/test/configCases/context-replacement/System.import/index.js\n+++ b/test/configCases/context-replacement/System.import/index.js\n@@ -1,6 +1,6 @@\n it("should replace a async context with a manual map", function() {\n \tvar a = "a";\n \treturn import(a).then(function(a) {\n-\t\ta.should.be.eql({ default: "b" });\n+\t\texpect(a).toEqual({ default: "b" });\n \t});\n });\ndiff --git a/test/configCases/context-replacement/a/index.js b/test/configCases/context-replacement/a/index.js\nindex a46ac19f2..ec1eba1a8 100644\n--- a/test/configCases/context-replacement/a/index.js\n+++ b/test/configCases/context-replacement/a/index.js\n@@ -5,7 +5,7 @@ it("should replace a context with a new resource and reqExp", function(done) {\n \t\t});\n \t}\n \trqInContext("replaced", function(r) {\n-\t\tr.should.be.eql("ok");\n+\t\texpect(r).toBe("ok");\n \t\tdone();\n \t});\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/configCases/context-replacement/b/index.js b/test/configCases/context-replacement/b/index.js\nindex fb4221a4f..b01b43bec 100644\n--- a/test/configCases/context-replacement/b/index.js\n+++ b/test/configCases/context-replacement/b/index.js\n@@ -2,5 +2,5 @@ it("should replace a context with a new regExp", function() {\n \tfunction rqInContext(x) {\n \t\treturn require(x);\n \t}\n-\trqInContext("./only-this").should.be.eql("ok");\n-});\n\\ No newline at end of file\n+\texpect(rqInContext("./only-this")).toBe("ok");\n+});\ndiff --git a/test/configCases/context-replacement/c/index.js b/test/configCases/context-replacement/c/index.js\nindex 7f1b1afe4..3647798f5 100644\n--- a/test/configCases/context-replacement/c/index.js\n+++ b/test/configCases/context-replacement/c/index.js\n@@ -2,11 +2,11 @@ it("should replace a context with a manual map", function() {\n \tfunction rqInContext(x) {\n \t\treturn require(x);\n \t}\n-\trqInContext("a").should.be.eql("a");\n-\trqInContext("b").should.be.eql("b");\n-\trqInContext("./c").should.be.eql("b");\n-\trqInContext("d").should.be.eql("d");\n-\trqInContext("./d").should.be.eql("d");\n+\texpect(rqInContext("a")).toBe("a");\n+\texpect(rqInContext("b")).toBe("b");\n+\texpect(rqInContext("./c")).toBe("b");\n+\texpect(rqInContext("d")).toBe("d");\n+\texpect(rqInContext("./d")).toBe("d");\n \t(function() {\n \t\trqInContext("module-b")\n \t}.should.throw());\ndiff --git a/test/configCases/context-replacement/d/index.js b/test/configCases/context-replacement/d/index.js\nindex e8a4f576f..325fd05f2 100644\n--- a/test/configCases/context-replacement/d/index.js\n+++ b/test/configCases/context-replacement/d/index.js\n@@ -2,7 +2,7 @@ it("should replace a context with resource query and manual map", function() {\n \tfunction rqInContext(x) {\n \t\treturn require(x);\n \t}\n-\trqInContext("a").should.be.eql({\n+\texpect(rqInContext("a")).toEqual({\n \t\tresourceQuery: "?cats=meow",\n \t\tquery: "?lions=roar",\n \t\tprev: "module.exports = \\"a\\";\\n",\ndiff --git a/test/configCases/custom-hash-function/xxhash/index.js b/test/configCases/custom-hash-function/xxhash/index.js\nindex 903df73bd..9a989c6c4 100644\n--- a/test/configCases/custom-hash-function/xxhash/index.js\n+++ b/test/configCases/custom-hash-function/xxhash/index.js\n@@ -2,7 +2,7 @@ it("should have unique ids", function () {\n \tvar ids = [];\n \tfor(var i = 1; i <= 15; i++) {\n \t\tvar id = require("./files/file" + i + ".js");\n-\t\tids.indexOf(id).should.be.eql(-1);\n+\t\texpect(ids.indexOf(id)).toBe(-1);\n \t\tids.push(id);\n \t}\n });\ndiff --git a/test/configCases/delegated-hash/simple/index.js b/test/configCases/delegated-hash/simple/index.js\nindex 683240689..4a11393ae 100644\n--- a/test/configCases/delegated-hash/simple/index.js\n+++ b/test/configCases/delegated-hash/simple/index.js\n@@ -1,7 +1,7 @@\n it("should delegate the modules", function() {\n-\trequire("./a").should.be.eql("a");\n-\trequire("./loader!./b").should.be.eql("b");\n-\trequire("./dir/c").should.be.eql("c");\n-\trequire("./d").should.be.eql("d");\n-\trequire("./e").should.be.eql("e");\n+\texpect(require("./a")).toBe("a");\n+\texpect(require("./loader!./b")).toBe("b");\n+\texpect(require("./dir/c")).toBe("c");\n+\texpect(require("./d")).toBe("d");\n+\texpect(require("./e")).toBe("e");\n });\ndiff --git a/test/configCases/delegated/simple/index.js b/test/configCases/delegated/simple/index.js\nindex 43353216c..d918d437c 100644\n--- a/test/configCases/delegated/simple/index.js\n+++ b/test/configCases/delegated/simple/index.js\n@@ -1,5 +1,5 @@\n it("should delegate the modules", function() {\n-\trequire("./a").should.be.eql("a");\n-\trequire("./loader!./b").should.be.eql("b");\n-\trequire("./dir/c").should.be.eql("c");\n+\texpect(require("./a")).toBe("a");\n+\texpect(require("./loader!./b")).toBe("b");\n+\texpect(require("./dir/c")).toBe("c");\n });\ndiff --git a/test/configCases/dll-plugin/1-use-dll/index.js b/test/configCases/dll-plugin/1-use-dll/index.js\nindex 942617dbc..c0a423848 100644\n--- a/test/configCases/dll-plugin/1-use-dll/index.js\n+++ b/test/configCases/dll-plugin/1-use-dll/index.js\n@@ -4,37 +4,37 @@ import { x1, y2 } from "./e";\n import { x2, y1 } from "dll/e";\n \n it("should load a module from dll", function() {\n-\trequire("dll/a").should.be.eql("a");\n+\texpect(require("dll/a")).toBe("a");\n });\n \n it("should load a module of non-default type without extension from dll", function() {\n-\trequire("dll/f").should.be.eql("f");\n+\texpect(require("dll/f")).toBe("f");\n });\n \n it("should load an async module from dll", function(done) {\n \trequire("dll/b")().then(function(c) {\n-\t\tc.should.be.eql({ default: "c" });\n+\t\texpect(c).toEqual({ default: "c" });\n \t\tdone();\n \t}).catch(done);\n });\n \n it("should load an harmony module from dll (default export)", function() {\n-\td.should.be.eql("d");\n+\texpect(d).toBe("d");\n });\n \n it("should load an harmony module from dll (star export)", function() {\n-\tx1.should.be.eql(123);\n-\tx2.should.be.eql(123);\n-\ty1.should.be.eql(456);\n-\ty2.should.be.eql(456);\n+\texpect(x1).toBe(123);\n+\texpect(x2).toBe(123);\n+\texpect(y1).toBe(456);\n+\texpect(y2).toBe(456);\n });\n \n it("should load a module with loader applied", function() {\n-\trequire("dll/g.abc.js").should.be.eql("number");\n+\texpect(require("dll/g.abc.js")).toBe("number");\n });\n \n it("should give modules the correct ids", function() {\n-\tObject.keys(__webpack_modules__).filter(m => !m.startsWith("../..")).should.be.eql([\n+\tObject.keys(__webpack_modules__).filter(m =>expect( !m.startsWith("../.."))).toEqual([\n \t\t"./index.js",\n \t\t"dll-reference ../0-create-dll/dll.js",\n \t\t"dll/a.js",\ndiff --git a/test/configCases/dll-plugin/2-use-dll-without-scope/index.js b/test/configCases/dll-plugin/2-use-dll-without-scope/index.js\nindex fe5086064..5ea475290 100644\n--- a/test/configCases/dll-plugin/2-use-dll-without-scope/index.js\n+++ b/test/configCases/dll-plugin/2-use-dll-without-scope/index.js\n@@ -4,37 +4,37 @@ import { x1, y2 } from "./e";\n import { x2, y1 } from "../0-create-dll/e";\n \n it("should load a module from dll", function() {\n-\trequire("../0-create-dll/a").should.be.eql("a");\n+\texpect(require("../0-create-dll/a")).toBe("a");\n });\n \n it("should load a module of non-default type without extension from dll", function() {\n-\trequire("../0-create-dll/f").should.be.eql("f");\n+\texpect(require("../0-create-dll/f")).toBe("f");\n });\n \n it("should load an async module from dll", function(done) {\n \trequire("../0-create-dll/b")().then(function(c) {\n-\t\tc.should.be.eql({ default: "c" });\n+\t\texpect(c).toEqual({ default: "c" });\n \t\tdone();\n \t}).catch(done);\n });\n \n it("should load an harmony module from dll (default export)", function() {\n-\td.should.be.eql("d");\n+\texpect(d).toBe("d");\n });\n \n it("should load an harmony module from dll (star export)", function() {\n-\tx1.should.be.eql(123);\n-\tx2.should.be.eql(123);\n-\ty1.should.be.eql(456);\n-\ty2.should.be.eql(456);\n+\texpect(x1).toBe(123);\n+\texpect(x2).toBe(123);\n+\texpect(y1).toBe(456);\n+\texpect(y2).toBe(456);\n });\n \n it("should load a module with loader applied", function() {\n-\trequire("../0-create-dll/g.abc.js").should.be.eql("number");\n+\texpect(require("../0-create-dll/g.abc.js")).toBe("number");\n });\n \n it("should give modules the correct ids", function() {\n-\tObject.keys(__webpack_modules__).filter(m => !m.startsWith("../..")).should.be.eql([\n+\tObject.keys(__webpack_modules__).filter(m =>expect( !m.startsWith("../.."))).toEqual([\n \t\t"../0-create-dll/a.js",\n \t\t"../0-create-dll/b.js",\n \t\t"../0-create-dll/d.js",\ndiff --git a/test/configCases/dll-plugin/3-use-dll-with-hashid/index.js b/test/configCases/dll-plugin/3-use-dll-with-hashid/index.js\nindex 06b1d222a..bc2322ba7 100644\n--- a/test/configCases/dll-plugin/3-use-dll-with-hashid/index.js\n+++ b/test/configCases/dll-plugin/3-use-dll-with-hashid/index.js\n@@ -4,29 +4,29 @@ import { x1, y2 } from "./e";\n import { x2, y1 } from "../0-create-dll/e";\n \n it("should load a module from dll", function() {\n-\trequire("../0-create-dll/a").should.be.eql("a");\n+\texpect(require("../0-create-dll/a")).toBe("a");\n });\n \n it("should load an async module from dll", function(done) {\n \trequire("../0-create-dll/b")().then(function(c) {\n-\t\tc.should.be.eql({ default: "c" });\n+\t\texpect(c).toEqual({ default: "c" });\n \t\tdone();\n \t}).catch(done);\n });\n \n it("should load an harmony module from dll (default export)", function() {\n-\td.should.be.eql("d");\n+\texpect(d).toBe("d");\n });\n \n it("should load an harmony module from dll (star export)", function() {\n-\tx1.should.be.eql(123);\n-\tx2.should.be.eql(123);\n-\ty1.should.be.eql(456);\n-\ty2.should.be.eql(456);\n+\texpect(x1).toBe(123);\n+\texpect(x2).toBe(123);\n+\texpect(y1).toBe(456);\n+\texpect(y2).toBe(456);\n });\n \n it("should load a module with loader applied", function() {\n-\trequire("../0-create-dll/g.abc.js").should.be.eql("number");\n+\texpect(require("../0-create-dll/g.abc.js")).toBe("number");\n });\n \n \ndiff --git a/test/configCases/entry/issue-1068/test.js b/test/configCases/entry/issue-1068/test.js\nindex 8eb9b5d02..5c5e3570f 100644\n--- a/test/configCases/entry/issue-1068/test.js\n+++ b/test/configCases/entry/issue-1068/test.js\n@@ -1,7 +1,7 @@\n var order = global.order;\n delete global.order;\n it("should run the modules in the correct order", function() {\n-\torder.should.be.eql([\n+\texpect(order).toEqual([\n \t\t"a",\n \t\t"b",\n \t\t"c",\ndiff --git a/test/configCases/externals/externals-in-chunk/index.js b/test/configCases/externals/externals-in-chunk/index.js\nindex 7dcfdcf9f..6cbd2b4c3 100644\n--- a/test/configCases/externals/externals-in-chunk/index.js\n+++ b/test/configCases/externals/externals-in-chunk/index.js\n@@ -6,11 +6,11 @@ it("should move externals in chunks into entry chunk", function(done) {\n \tsource.should.containEql("5+" + (3+3));\n \n \timport("./chunk").then(function(chunk) {\n-\t\tchunk.default.a.should.be.eql(3);\n+\t\texpect(chunk.default.a).toBe(3);\n \t\tchunk.default.b.then(function(chunk2) {\n-\t\t\tchunk2.default.should.be.eql(7);\n+\t\t\texpect(chunk2.default).toBe(7);\n \t\t\timport("external3").then(function(ex) {\n-\t\t\t\tex.default.should.be.eql(11);\n+\t\t\t\texpect(ex.default).toBe(11);\n \t\t\t\tdone();\n \t\t\t});\n \t\t});\ndiff --git a/test/configCases/externals/harmony/index.js b/test/configCases/externals/harmony/index.js\nindex 904a2a0d1..c0e029c99 100644\n--- a/test/configCases/externals/harmony/index.js\n+++ b/test/configCases/externals/harmony/index.js\n@@ -1,5 +1,5 @@\n import external from "external";\n \n it("should harmony import a dependency", function() {\n-\texternal.should.be.eql("abc");\n+\texpect(external).toBe("abc");\n });\ndiff --git a/test/configCases/externals/non-umd-externals-umd/index.js b/test/configCases/externals/non-umd-externals-umd/index.js\nindex 9ef058ee9..bb1d74334 100644\n--- a/test/configCases/externals/non-umd-externals-umd/index.js\n+++ b/test/configCases/externals/non-umd-externals-umd/index.js\n@@ -4,7 +4,7 @@ var path = require("path");\n \n it("should correctly import a UMD external", function() {\n \tvar external = require("external0");\n-\texternal.should.be.eql("module 0");\n+\texpect(external).toBe("module 0");\n });\n \n it("should contain `require()` statements for the UMD external", function() {\n@@ -14,7 +14,7 @@ it("should contain `require()` statements for the UMD external", function() {\n \n it("should correctly import a non-UMD external", function() {\n \tvar external = require("external1");\n-\texternal.should.be.eql("abc");\n+\texpect(external).toBe("abc");\n });\n \n it("should not contain `require()` statements for the non-UMD external", function() {\ndiff --git a/test/configCases/externals/non-umd-externals-umd2/index.js b/test/configCases/externals/non-umd-externals-umd2/index.js\nindex fdb4a1f50..c515dddbd 100644\n--- a/test/configCases/externals/non-umd-externals-umd2/index.js\n+++ b/test/configCases/externals/non-umd-externals-umd2/index.js\n@@ -4,7 +4,7 @@ var path = require("path");\n \n it("should correctly import a UMD2 external", function() {\n \tvar external = require("external0");\n-\texternal.should.be.eql("module 0");\n+\texpect(external).toBe("module 0");\n });\n \n it("should contain `require()` statements for the UMD2 external", function() {\n@@ -14,7 +14,7 @@ it("should contain `require()` statements for the UMD2 external", function() {\n \n it("should correctly import a non-UMD2 external", function() {\n \tvar external = require("external1");\n-\texternal.should.be.eql("abc");\n+\texpect(external).toBe("abc");\n });\n \n it("should not contain `require()` statements for the non-UMD2 external", function() {\ndiff --git a/test/configCases/externals/optional-externals-cjs/index.js b/test/configCases/externals/optional-externals-cjs/index.js\nindex d38bf3d30..41529ac41 100644\n--- a/test/configCases/externals/optional-externals-cjs/index.js\n+++ b/test/configCases/externals/optional-externals-cjs/index.js\n@@ -3,8 +3,8 @@ it("should not fail on optional externals", function() {\n \t\trequire("external");\n \t} catch(e) {\n \t\te.should.be.instanceof(Error);\n-\t\te.code.should.be.eql("MODULE_NOT_FOUND");\n+\t\texpect(e.code).toBe("MODULE_NOT_FOUND");\n \t\treturn;\n \t}\n \tthrow new Error("It doesn\'t fail");\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/configCases/externals/optional-externals-root/index.js b/test/configCases/externals/optional-externals-root/index.js\nindex d38bf3d30..41529ac41 100644\n--- a/test/configCases/externals/optional-externals-root/index.js\n+++ b/test/configCases/externals/optional-externals-root/index.js\n@@ -3,8 +3,8 @@ it("should not fail on optional externals", function() {\n \t\trequire("external");\n \t} catch(e) {\n \t\te.should.be.instanceof(Error);\n-\t\te.code.should.be.eql("MODULE_NOT_FOUND");\n+\t\texpect(e.code).toBe("MODULE_NOT_FOUND");\n \t\treturn;\n \t}\n \tthrow new Error("It doesn\'t fail");\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/configCases/externals/optional-externals-umd/index.js b/test/configCases/externals/optional-externals-umd/index.js\nindex d38bf3d30..41529ac41 100644\n--- a/test/configCases/externals/optional-externals-umd/index.js\n+++ b/test/configCases/externals/optional-externals-umd/index.js\n@@ -3,8 +3,8 @@ it("should not fail on optional externals", function() {\n \t\trequire("external");\n \t} catch(e) {\n \t\te.should.be.instanceof(Error);\n-\t\te.code.should.be.eql("MODULE_NOT_FOUND");\n+\t\texpect(e.code).toBe("MODULE_NOT_FOUND");\n \t\treturn;\n \t}\n \tthrow new Error("It doesn\'t fail");\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/configCases/externals/optional-externals-umd2-mixed/index.js b/test/configCases/externals/optional-externals-umd2-mixed/index.js\nindex 67be49aaa..1c0ecd4da 100644\n--- a/test/configCases/externals/optional-externals-umd2-mixed/index.js\n+++ b/test/configCases/externals/optional-externals-umd2-mixed/index.js\n@@ -4,8 +4,8 @@ it("should not fail on optional externals", function() {\n \t\trequire("external");\n \t} catch(e) {\n \t\te.should.be.instanceof(Error);\n-\t\te.code.should.be.eql("MODULE_NOT_FOUND");\n+\t\texpect(e.code).toBe("MODULE_NOT_FOUND");\n \t\treturn;\n \t}\n \tthrow new Error("It doesn\'t fail");\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/configCases/externals/optional-externals-umd2/index.js b/test/configCases/externals/optional-externals-umd2/index.js\nindex d38bf3d30..41529ac41 100644\n--- a/test/configCases/externals/optional-externals-umd2/index.js\n+++ b/test/configCases/externals/optional-externals-umd2/index.js\n@@ -3,8 +3,8 @@ it("should not fail on optional externals", function() {\n \t\trequire("external");\n \t} catch(e) {\n \t\te.should.be.instanceof(Error);\n-\t\te.code.should.be.eql("MODULE_NOT_FOUND");\n+\t\texpect(e.code).toBe("MODULE_NOT_FOUND");\n \t\treturn;\n \t}\n \tthrow new Error("It doesn\'t fail");\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/configCases/hash-length/hashed-module-ids/index.js b/test/configCases/hash-length/hashed-module-ids/index.js\nindex 903df73bd..9a989c6c4 100644\n--- a/test/configCases/hash-length/hashed-module-ids/index.js\n+++ b/test/configCases/hash-length/hashed-module-ids/index.js\n@@ -2,7 +2,7 @@ it("should have unique ids", function () {\n \tvar ids = [];\n \tfor(var i = 1; i <= 15; i++) {\n \t\tvar id = require("./files/file" + i + ".js");\n-\t\tids.indexOf(id).should.be.eql(-1);\n+\t\texpect(ids.indexOf(id)).toBe(-1);\n \t\tids.push(id);\n \t}\n });\ndiff --git a/test/configCases/library/1-use-library/default-test.js b/test/configCases/library/1-use-library/default-test.js\nindex 0f0075243..ea4e84d0d 100644\n--- a/test/configCases/library/1-use-library/default-test.js\n+++ b/test/configCases/library/1-use-library/default-test.js\n@@ -2,6 +2,6 @@ import d from "library";\n var data = require("library");\n \n it("should get default export from library (" + NAME + ")", function() {\n-\tdata.should.be.eql("default-value");\n-\td.should.be.eql("default-value");\n+\texpect(data).toBe("default-value");\n+\texpect(d).toBe("default-value");\n });\ndiff --git a/test/configCases/library/1-use-library/index.js b/test/configCases/library/1-use-library/index.js\nindex 6aa92b911..9372b9067 100644\n--- a/test/configCases/library/1-use-library/index.js\n+++ b/test/configCases/library/1-use-library/index.js\n@@ -2,13 +2,13 @@ import d from "library";\n import { a, b, external } from "library";\n \n it("should be able to import hamorny exports from library (" + NAME + ")", function() {\n-\td.should.be.eql("default-value");\n-\ta.should.be.eql("a");\n-\tb.should.be.eql("b");\n+\texpect(d).toBe("default-value");\n+\texpect(a).toBe("a");\n+\texpect(b).toBe("b");\n \tif(typeof TEST_EXTERNAL !== "undefined" && TEST_EXTERNAL) {\n-\t\texternal.should.be.eql(["external"]);\n+\t\texpect(external).toEqual(["external"]);\n \t\texternal.should.be.equal(require("external"));\n \t} else {\n-\t\texternal.should.be.eql("non-external");\n+\t\texpect(external).toBe("non-external");\n \t}\n });\ndiff --git a/test/configCases/library/b/index.js b/test/configCases/library/b/index.js\nindex ec6626bc0..6fe35d718 100644\n--- a/test/configCases/library/b/index.js\n+++ b/test/configCases/library/b/index.js\n@@ -4,8 +4,8 @@ it("should run", function() {\n \n it("should have exported", function(done) {\n \tsetTimeout(function() {\n-\t\texported.object.should.be.eql(module.exports.object);\n-\t\texported.second.should.be.eql(module.exports.second);\n+\t\texpect(exported.object).toBe(module.exports.object);\n+\t\texpect(exported.second).toBe(module.exports.second);\n \t\tdone();\n \t}, 1);\n });\ndiff --git a/test/configCases/loaders/generate-ident/index.js b/test/configCases/loaders/generate-ident/index.js\nindex 1ba367dbe..f4693e19c 100644\n--- a/test/configCases/loaders/generate-ident/index.js\n+++ b/test/configCases/loaders/generate-ident/index.js\n@@ -1,6 +1,6 @@\n it("should correctly pass complex query object with remaining request", function() {\n-\trequire("./a").should.be.eql("ok");\n-\trequire("./b").should.be.eql("maybe");\n-\trequire("./c").should.be.eql("yes");\n-\trequire("./d").should.be.eql("ok");\n+\texpect(require("./a")).toBe("ok");\n+\texpect(require("./b")).toBe("maybe");\n+\texpect(require("./c")).toBe("yes");\n+\texpect(require("./d")).toBe("ok");\n });\ndiff --git a/test/configCases/loaders/hot-in-context/index.js b/test/configCases/loaders/hot-in-context/index.js\nindex 87b8abaca..a150c3a92 100644\n--- a/test/configCases/loaders/hot-in-context/index.js\n+++ b/test/configCases/loaders/hot-in-context/index.js\n@@ -1,3 +1,3 @@\n it("should have hmr flag in loader context", function() {\n-\trequire("./loader!").should.be.eql(!!module.hot);\n+\texpect(require("./loader!")).toBe(!!module.hot);\n });\ndiff --git a/test/configCases/loaders/issue-3320/index.js b/test/configCases/loaders/issue-3320/index.js\nindex 7dbdbd576..7d496b8eb 100644\n--- a/test/configCases/loaders/issue-3320/index.js\n+++ b/test/configCases/loaders/issue-3320/index.js\n@@ -1,23 +1,23 @@\n it("should resolve aliased loader module with query", function() {\n \tvar foo = require(\'./a\');\n \n-\tfoo.should.be.eql("someMessage");\n+\texpect(foo).toBe("someMessage");\n });\n \n it("should favor explicit loader query over aliased query (options in rule)", function() {\n \tvar foo = require(\'./b\');\n \n-\tfoo.should.be.eql("someOtherMessage");\n+\texpect(foo).toBe("someOtherMessage");\n });\n \n it("should favor explicit loader query over aliased query (inline query in rule)", function() {\n \tvar foo = require(\'./b2\');\n \n-\tfoo.should.be.eql("someOtherMessage");\n+\texpect(foo).toBe("someOtherMessage");\n });\n \n it("should favor explicit loader query over aliased query (inline query in rule.use)", function() {\n \tvar foo = require(\'./b3\');\n \n-\tfoo.should.be.eql("someOtherMessage");\n+\texpect(foo).toBe("someOtherMessage");\n });\ndiff --git a/test/configCases/loaders/pre-post-loader/index.js b/test/configCases/loaders/pre-post-loader/index.js\nindex 6a18d04e2..d69ad146f 100644\n--- a/test/configCases/loaders/pre-post-loader/index.js\n+++ b/test/configCases/loaders/pre-post-loader/index.js\n@@ -1,6 +1,6 @@\n it("should apply pre and post loaders correctly", function() {\n-\trequire("./a").should.be.eql("resource loader2 loader1 loader3");\n-\trequire("!./a").should.be.eql("resource loader2 loader3");\n-\trequire("!!./a").should.be.eql("resource");\n-\trequire("-!./a").should.be.eql("resource loader3");\n+\texpect(require("./a")).toBe("resource loader2 loader1 loader3");\n+\texpect(require("!./a")).toBe("resource loader2 loader3");\n+\texpect(require("!!./a")).toBe("resource");\n+\texpect(require("-!./a")).toBe("resource loader3");\n });\ndiff --git a/test/configCases/loaders/remaining-request/index.js b/test/configCases/loaders/remaining-request/index.js\nindex 7285ccdba..53247f529 100644\n--- a/test/configCases/loaders/remaining-request/index.js\n+++ b/test/configCases/loaders/remaining-request/index.js\n@@ -1,3 +1,3 @@\n it("should correctly pass complex query object with remaining request", function() {\n-\trequire("./a").should.be.eql("ok");\n+\texpect(require("./a")).toBe("ok");\n });\ndiff --git a/test/configCases/no-parse/module.exports/index.js b/test/configCases/no-parse/module.exports/index.js\nindex fe0db2daa..3db446c82 100644\n--- a/test/configCases/no-parse/module.exports/index.js\n+++ b/test/configCases/no-parse/module.exports/index.js\n@@ -1,4 +1,4 @@\n it("should correctly export stuff from not parsed modules", function() {\n-\trequire("./not-parsed-a").should.be.eql("ok");\n-\trequire("./not-parsed-b").should.be.eql("ok");\n+\texpect(require("./not-parsed-a")).toBe("ok");\n+\texpect(require("./not-parsed-b")).toBe("ok");\n });\ndiff --git a/test/configCases/no-parse/no-parse-function/index.js b/test/configCases/no-parse/no-parse-function/index.js\nindex fe0db2daa..3db446c82 100644\n--- a/test/configCases/no-parse/no-parse-function/index.js\n+++ b/test/configCases/no-parse/no-parse-function/index.js\n@@ -1,4 +1,4 @@\n it("should correctly export stuff from not parsed modules", function() {\n-\trequire("./not-parsed-a").should.be.eql("ok");\n-\trequire("./not-parsed-b").should.be.eql("ok");\n+\texpect(require("./not-parsed-a")).toBe("ok");\n+\texpect(require("./not-parsed-b")).toBe("ok");\n });\ndiff --git a/test/configCases/parsing/context/index.js b/test/configCases/parsing/context/index.js\nindex baffd5e40..c11c62d9e 100644\n--- a/test/configCases/parsing/context/index.js\n+++ b/test/configCases/parsing/context/index.js\n@@ -1,5 +1,5 @@\n it("should automatically create contexts", function() {\n \tvar template = "tmpl", templateFull = "./tmpl.js";\n-\trequire("../../../cases/parsing/context/templates/templateLoader")(templateFull).should.be.eql("test template");\n-\trequire("../../../cases/parsing/context/templates/templateLoaderIndirect")(templateFull).should.be.eql("test template");\n-});\n\\ No newline at end of file\n+\texpect(require("../../../cases/parsing/context/templates/templateLoader")(templateFull)).toBe("test template");\n+\texpect(require("../../../cases/parsing/context/templates/templateLoaderIndirect")(templateFull)).toBe("test template");\n+});\ndiff --git a/test/configCases/parsing/extended-api/index.js b/test/configCases/parsing/extended-api/index.js\nindex b33fb25bd..a1f2c9570 100644\n--- a/test/configCases/parsing/extended-api/index.js\n+++ b/test/configCases/parsing/extended-api/index.js\n@@ -4,5 +4,5 @@ it("should have __webpack_hash__", function() {\n });\n it("should have __webpack_chunkname__", function() {\n \t(typeof __webpack_chunkname__).should.be.type("string");\n-\t__webpack_chunkname__.should.be.eql(\'other\');\n+\texpect(__webpack_chunkname__).toBe(\'other\');\n });\ndiff --git a/test/configCases/parsing/harmony-this-concat/index.js b/test/configCases/parsing/harmony-this-concat/index.js\nindex af774470b..07e61a898 100644\n--- a/test/configCases/parsing/harmony-this-concat/index.js\n+++ b/test/configCases/parsing/harmony-this-concat/index.js\n@@ -7,16 +7,16 @@ import * as abc from "./abc";\n function x() { throw new Error("should not be executed"); }\n it("should have this = undefined on imported non-strict functions", function() {\n \tx\n-\td().should.be.eql("undefined");\n+\texpect(d()).toBe("undefined");\n \tx\n-\ta().should.be.eql("undefined");\n+\texpect(a()).toBe("undefined");\n \tx\n-\tB().should.be.eql("undefined");\n+\texpect(B()).toBe("undefined");\n \tx\n \tabc.a().should.be.type("object");\n \tx\n \tvar thing = abc.a();\n-\tObject.keys(thing).should.be.eql(["a", "b", "default"]);\n+\texpect(Object.keys(thing)).toEqual(["a", "b", "default"]);\n });\n \n import C2, { C } from "./new";\ndiff --git a/test/configCases/parsing/harmony-this/index.js b/test/configCases/parsing/harmony-this/index.js\nindex 5d3f2984e..b78f7db60 100644\n--- a/test/configCases/parsing/harmony-this/index.js\n+++ b/test/configCases/parsing/harmony-this/index.js\n@@ -5,10 +5,10 @@ import d, {a, b as B, C as _C, D as _D, returnThisArrow, returnThisMember, that}\n import * as abc from "./abc";\n \n it("should have this = undefined on harmony modules", function() {\n-\t(typeof that).should.be.eql("undefined");\n-\t(typeof abc.that).should.be.eql("undefined");\n-\t(typeof returnThisArrow()).should.be.eql("undefined");\n-\t(typeof abc.returnThisArrow()).should.be.eql("undefined");\n+\texpect((typeof that)).toBe("undefined");\n+\texpect((typeof abc.that)).toBe("undefined");\n+\texpect((typeof returnThisArrow())).toBe("undefined");\n+\texpect((typeof abc.returnThisArrow())).toBe("undefined");\n \t(function() {\n \t\treturnThisMember();\n \t}).should.throw();\n@@ -18,23 +18,23 @@ it("should have this = undefined on harmony modules", function() {\n });\n \n it("should not break classes and functions", function() {\n-\t(new _C).foo().should.be.eql("bar");\n-\t(new _D).prop().should.be.eql("ok");\n+\texpect((new _C).foo()).toBe("bar");\n+\texpect((new _D).prop()).toBe("ok");\n });\n \n function x() { throw new Error("should not be executed"); }\n it("should have this = undefined on imported non-strict functions", function() {\n \tx\n-\td().should.be.eql("undefined");\n+\texpect(d()).toBe("undefined");\n \tx\n-\ta().should.be.eql("undefined");\n+\texpect(a()).toBe("undefined");\n \tx\n-\tB().should.be.eql("undefined");\n+\texpect(B()).toBe("undefined");\n \tx\n \tabc.a().should.be.type("object");\n \tx\n \tvar thing = abc.a();\n-\tObject.keys(thing).should.be.eql(Object.keys(abc));\n+\texpect(Object.keys(thing)).toBe(Object.keys(abc));\n });\n \n import C2, { C } from "./new";\ndiff --git a/test/configCases/parsing/issue-336/index.js b/test/configCases/parsing/issue-336/index.js\nindex b6b5e2f84..5b4f4798e 100644\n--- a/test/configCases/parsing/issue-336/index.js\n+++ b/test/configCases/parsing/issue-336/index.js\n@@ -1,4 +1,4 @@\n it("should provide a module to a free var in a var decl", function() {\n \tvar x = aaa.test;\n-\tx.should.be.eql("test");\n-});\n\\ No newline at end of file\n+\texpect(x).toBe("test");\n+});\ndiff --git a/test/configCases/parsing/issue-4857/index.js b/test/configCases/parsing/issue-4857/index.js\nindex db6e32229..d04250a98 100644\n--- a/test/configCases/parsing/issue-4857/index.js\n+++ b/test/configCases/parsing/issue-4857/index.js\n@@ -23,7 +23,7 @@ it("should transpile unreachable branches", () => {\n \ttrue ? count++ : import("NOT_REACHABLE");\n \tfalse ? import("NOT_REACHABLE") : count++;\n \n-\tcount.should.be.eql(6);\n+\texpect(count).toBe(6);\n });\n \n it("should not remove hoisted variable declarations", () => {\ndiff --git a/test/configCases/parsing/issue-5624/index.js b/test/configCases/parsing/issue-5624/index.js\nindex 04fe1e478..8b4624326 100644\n--- a/test/configCases/parsing/issue-5624/index.js\n+++ b/test/configCases/parsing/issue-5624/index.js\n@@ -2,10 +2,10 @@ import * as M from "./module";\n \n it("should allow conditionals as callee", function() {\n \tvar x = (true ? M.fn : M.fn)();\n-\tx.should.be.eql("ok");\n+\texpect(x).toBe("ok");\n });\n \n it("should allow conditionals as object", function() {\n \tvar x = (true ? M : M).fn();\n-\tx.should.be.eql("ok");\n+\texpect(x).toBe("ok");\n });\ndiff --git a/test/configCases/parsing/node-source-plugin-off/index.js b/test/configCases/parsing/node-source-plugin-off/index.js\nindex ed447c13f..a31f12595 100644\n--- a/test/configCases/parsing/node-source-plugin-off/index.js\n+++ b/test/configCases/parsing/node-source-plugin-off/index.js\n@@ -1,5 +1,5 @@\n require("should");\n \n it("should not load node-libs-browser when node option is false", function() {\n-\t(typeof process).should.be.eql("undefined");\n+\texpect((typeof process)).toBe("undefined");\n });\ndiff --git a/test/configCases/parsing/node-source-plugin/index.js b/test/configCases/parsing/node-source-plugin/index.js\nindex 2e945a3e2..105368218 100644\n--- a/test/configCases/parsing/node-source-plugin/index.js\n+++ b/test/configCases/parsing/node-source-plugin/index.js\n@@ -1,5 +1,5 @@\n require("should");\n \n it("should add node-libs-browser to target web by default", function() {\n-\tprocess.browser.should.be.eql(true);\n+\texpect(process.browser).toBe(true);\n });\ndiff --git a/test/configCases/parsing/relative-filedirname/index.js b/test/configCases/parsing/relative-filedirname/index.js\nindex 6f2e4fc53..67ba48a4a 100644\n--- a/test/configCases/parsing/relative-filedirname/index.js\n+++ b/test/configCases/parsing/relative-filedirname/index.js\n@@ -1,6 +1,6 @@\n it("should define __dirname and __filename", function() {\n-\t__dirname.should.be.eql("");\n-\t__filename.should.be.eql("index.js");\n-\trequire("./dir/file").dirname.should.be.eql("dir");\n+\texpect(__dirname).toBe("");\n+\texpect(__filename).toBe("index.js");\n+\texpect(require("./dir/file").dirname).toBe("dir");\n \trequire("./dir/file").filename.should.match(/^dir[\\\\\\/]file.js$/);\n-});\n\\ No newline at end of file\n+});\ndiff --git a/test/configCases/parsing/require.main/index.js b/test/configCases/parsing/require.main/index.js\nindex c72bb927a..91a94843f 100644\n--- a/test/configCases/parsing/require.main/index.js\n+++ b/test/configCases/parsing/require.main/index.js\n@@ -1,3 +1,3 @@\n it("should define require.main", function() {\n-\trequire.main.should.be.eql(module);\n+\texpect(require.main).toBe(module);\n });\ndiff --git a/test/configCases/parsing/system.import/index.js b/test/configCases/parsing/system.import/index.js\nindex d294961f8..f6c2d8f8b 100644\n--- a/test/configCases/parsing/system.import/index.js\n+++ b/test/configCases/parsing/system.import/index.js\n@@ -1,8 +1,8 @@\n it("should answer typeof System correctly", () => {\n \tif(__SYSTEM__ === false) {\n-\t\t(typeof System).should.be.eql("undefined");\n+\t\texpect((typeof System)).toBe("undefined");\n \t} else {\n-\t\t(typeof System).should.be.eql("object");\n+\t\texpect((typeof System)).toBe("object");\n \t}\n });\n \n@@ -12,7 +12,7 @@ it("should answer typeof System.import correctly", () => {\n \t\t\ttypeof System.import;\n \t\t}).should.throw();\n \t} else {\n-\t\t(typeof System.import).should.be.eql("function");\n+\t\texpect((typeof System.import)).toBe("function");\n \t}\n });\n \n@@ -22,7 +22,7 @@ it("should be able to use System.import()", done => {\n \t\t\tif(__SYSTEM__ === false) {\n \t\t\t\tdone(new Error("System.import should not be parsed"));\n \t\t\t} else {\n-\t\t\t\tmod.should.be.eql({ default: "ok" });\n+\t\t\t\texpect(mod).toEqual({ default: "ok" });\n \t\t\t\tdone();\n \t\t\t}\n \t\t});\ndiff --git a/test/configCases/performance/many-exports/index.js b/test/configCases/performance/many-exports/index.js\nindex 09e6f3203..a68c803f1 100644\n--- a/test/configCases/performance/many-exports/index.js\n+++ b/test/configCases/performance/many-exports/index.js\n@@ -1,5 +1,5 @@\n import sum from "./reexport.loader.js!";\n \n it("should compile a module with many harmony exports in acceptable time", function() {\n-\tsum.should.be.eql(499500);\n+\texpect(sum).toBe(499500);\n });\ndiff --git a/test/configCases/plugins/define-plugin/index.js b/test/configCases/plugins/define-plugin/index.js\nindex 1e2051e50..152078c37 100644\n--- a/test/configCases/plugins/define-plugin/index.js\n+++ b/test/configCases/plugins/define-plugin/index.js\n@@ -1,77 +1,77 @@\n /* globals it, should */\n it("should define FALSE", function() {\n-\tFALSE.should.be.eql(false);\n-\t(typeof TRUE).should.be.eql("boolean");\n+\texpect(FALSE).toBe(false);\n+\texpect((typeof TRUE)).toBe("boolean");\n \tvar x = require(FALSE ? "fail" : "./a");\n \tvar y = FALSE ? require("fail") : require("./a");\n });\n \n it("should define CODE", function() {\n-\tCODE.should.be.eql(3);\n-\t(typeof CODE).should.be.eql("number");\n+\texpect(CODE).toBe(3);\n+\texpect((typeof CODE)).toBe("number");\n \tif(CODE !== 3) require("fail");\n \tif(typeof CODE !== "number") require("fail");\n });\n it("should define FUNCTION", function() {\n-\t(FUNCTION(5)).should.be.eql(6);\n-\t(typeof FUNCTION).should.be.eql("function");\n+\texpect((FUNCTION(5))).toBe(6);\n+\texpect((typeof FUNCTION)).toBe("function");\n \tif(typeof FUNCTION !== "function") require("fail");\n });\n it("should define UNDEFINED", function() {\n-\t(typeof UNDEFINED).should.be.eql("undefined");\n+\texpect((typeof UNDEFINED)).toBe("undefined");\n \tif(typeof UNDEFINED !== "undefined") require("fail");\n });\n it("should define REGEXP", function() {\n-\tREGEXP.toString().should.be.eql("/abc/i");\n-\t(typeof REGEXP).should.be.eql("object");\n+\texpect(REGEXP.toString()).toBe("/abc/i");\n+\texpect((typeof REGEXP)).toBe("object");\n \tif(typeof REGEXP !== "object") require("fail");\n });\n it("should define OBJECT", function() {\n \tvar o = OBJECT;\n-\to.SUB.FUNCTION(10).should.be.eql(11);\n+\texpect(o.SUB.FUNCTION(10)).toBe(11);\n });\n it("should define OBJECT.SUB.CODE", function() {\n-\t(typeof OBJECT.SUB.CODE).should.be.eql("number");\n-\tOBJECT.SUB.CODE.should.be.eql(3);\n+\texpect((typeof OBJECT.SUB.CODE)).toBe("number");\n+\texpect(OBJECT.SUB.CODE).toBe(3);\n \tif(OBJECT.SUB.CODE !== 3) require("fail");\n \tif(typeof OBJECT.SUB.CODE !== "number") require("fail");\n \n \t(function(sub) {\n \t\t// should not crash\n-\t\tsub.CODE.should.be.eql(3);\n+\t\texpect(sub.CODE).toBe(3);\n \t}(OBJECT.SUB));\n });\n it("should define OBJECT.SUB.STRING", function() {\n-\t(typeof OBJECT.SUB.STRING).should.be.eql("string");\n-\tOBJECT.SUB.STRING.should.be.eql("string");\n+\texpect((typeof OBJECT.SUB.STRING)).toBe("string");\n+\texpect(OBJECT.SUB.STRING).toBe("string");\n \tif(OBJECT.SUB.STRING !== "string") require("fail");\n \tif(typeof OBJECT.SUB.STRING !== "string") require("fail");\n \n \t(function(sub) {\n \t\t// should not crash\n-\t\tsub.STRING.should.be.eql("string");\n+\t\texpect(sub.STRING).toBe("string");\n \t}(OBJECT.SUB));\n });\n it("should define process.env.DEFINED_NESTED_KEY", function() {\n-\t(process.env.DEFINED_NESTED_KEY).should.be.eql(5);\n-\t(typeof process.env.DEFINED_NESTED_KEY).should.be.eql("number");\n+\texpect((process.env.DEFINED_NESTED_KEY)).toBe(5);\n+\texpect((typeof process.env.DEFINED_NESTED_KEY)).toBe("number");\n \tif(process.env.DEFINED_NESTED_KEY !== 5) require("fail");\n \tif(typeof process.env.DEFINED_NESTED_KEY !== "number") require("fail");\n \n \tvar x = process.env.DEFINED_NESTED_KEY;\n-\tx.should.be.eql(5);\n+\texpect(x).toBe(5);\n \n \tvar indirect = process.env;\n-\t(indirect.DEFINED_NESTED_KEY).should.be.eql(5);\n+\texpect((indirect.DEFINED_NESTED_KEY)).toBe(5);\n \n \t(function(env) {\n-\t\t(env.DEFINED_NESTED_KEY).should.be.eql(5);\n-\t\t(typeof env.DEFINED_NESTED_KEY).should.be.eql("number");\n+\t\texpect((env.DEFINED_NESTED_KEY)).toBe(5);\n+\t\texpect((typeof env.DEFINED_NESTED_KEY)).toBe("number");\n \t\tif(env.DEFINED_NESTED_KEY !== 5) require("fail");\n \t\tif(typeof env.DEFINED_NESTED_KEY !== "number") require("fail");\n \n \t\tvar x = env.DEFINED_NESTED_KEY;\n-\t\tx.should.be.eql(5);\n+\t\texpect(x).toBe(5);\n \t}(process.env));\n });\n it("should define process.env.DEFINED_NESTED_KEY_STRING", function() {\n@@ -79,7 +79,7 @@ it("should define process.env.DEFINED_NESTED_KEY_STRING", function() {\n });\n it("should assign to process.env", function() {\n \tprocess.env.TEST = "test";\n-\tprocess.env.TEST.should.be.eql("test");\n+\texpect(process.env.TEST).toBe("test");\n });\n it("should not have brakets on start", function() {\n \tfunction f() {\n@@ -111,6 +111,6 @@ it("should follow renamings in var (issue 5215)", function() {\n \tvar _process$env = process.env,\n \t\tTEST = _process$env.TEST,\n \t\tDEFINED_NESTED_KEY = _process$env.DEFINED_NESTED_KEY;\n-\tTEST.should.be.eql("test");\n-\tDEFINED_NESTED_KEY.should.be.eql(5);\n+\texpect(TEST).toBe("test");\n+\texpect(DEFINED_NESTED_KEY).toBe(5);\n });\ndiff --git a/test/configCases/plugins/lib-manifest-plugin/index.js b/test/configCases/plugins/lib-manifest-plugin/index.js\nindex 30e1318de..4db3af83b 100644\n--- a/test/configCases/plugins/lib-manifest-plugin/index.js\n+++ b/test/configCases/plugins/lib-manifest-plugin/index.js\n@@ -3,7 +3,7 @@ var path = require("path");\n \n it("should complete", function(done) {\n \trequire.ensure(["./a"], function(require) {\n-\t\trequire("./a").should.be.eql("a");\n+\t\texpect(require("./a")).toBe("a");\n \t\tdone();\n \t});\n });\ndiff --git a/test/configCases/plugins/loader-options-plugin/index.js b/test/configCases/plugins/loader-options-plugin/index.js\nindex ec6279f29..efce2b7fc 100644\n--- a/test/configCases/plugins/loader-options-plugin/index.js\n+++ b/test/configCases/plugins/loader-options-plugin/index.js\n@@ -1,11 +1,11 @@\n it("should set correct options on js files", function() {\n-\trequire("./loader!./index.js").should.be.eql({\n+\texpect(require("./loader!./index.js")).toEqual({\n \t\tminimize: true,\n \t\tjsfile: true\n \t});\n });\n it("should set correct options on other files", function() {\n-\trequire("./loader!./txt.txt").should.be.eql({\n+\texpect(require("./loader!./txt.txt")).toEqual({\n \t\tminimize: true\n \t});\n });\ndiff --git a/test/configCases/plugins/min-chunk-size/index.js b/test/configCases/plugins/min-chunk-size/index.js\nindex 33290592b..fb7861444 100644\n--- a/test/configCases/plugins/min-chunk-size/index.js\n+++ b/test/configCases/plugins/min-chunk-size/index.js\n@@ -1,18 +1,18 @@\n it("should combine two chunk if too small", done => {\n \t// b should not yet available\n \tvar bf = __webpack_modules__[require.resolveWeak("./b")];\n-\t(typeof bf).should.be.eql("undefined");\n+\texpect((typeof bf)).toBe("undefined");\n \n \t// load a\n \timport("./a").then(a => {\n-\t\ta.default.should.be.eql("a");\n+\t\texpect(a.default).toBe("a");\n \t\t// check if b is available too\n \t\tvar bf = __webpack_modules__[require.resolveWeak("./b")];\n-\t\t(typeof bf).should.be.eql("function");\n+\t\texpect((typeof bf)).toBe("function");\n \n \t\t// load b (just to check if it\'s ok)\n \t\timport("./b").then(b => {\n-\t\t\tb.default.should.be.eql("b");\n+\t\t\texpect(b.default).toBe("b");\n \t\t\tdone();\n \t\t}).catch(done);\n \t}).catch(done);\ndiff --git a/test/configCases/plugins/provide-plugin/index.js b/test/configCases/plugins/provide-plugin/index.js\nindex 5f1c9a45d..50a792f35 100644\n--- a/test/configCases/plugins/provide-plugin/index.js\n+++ b/test/configCases/plugins/provide-plugin/index.js\n@@ -1,54 +1,54 @@\n it("should provide a module for a simple free var", function() {\n-\taaa.should.be.eql("aaa");\n+\texpect(aaa).toBe("aaa");\n });\n \n it("should provide a module for a nested var", function() {\n-\t(bbb.ccc).should.be.eql("bbbccc");\n+\texpect((bbb.ccc)).toBe("bbbccc");\n \tvar x = bbb.ccc;\n-\tx.should.be.eql("bbbccc");\n+\texpect(x).toBe("bbbccc");\n });\n \n it("should provide a module for a nested var within a IIFE\'s argument", function() {\n \t(function(process) {\n-\t\t(process.env.NODE_ENV).should.be.eql("development");\n+\t\texpect((process.env.NODE_ENV)).toBe("development");\n \t\tvar x = process.env.NODE_ENV;\n-\t\tx.should.be.eql("development");\n+\t\texpect(x).toBe("development");\n \t}(process));\n });\n \n it("should provide a module for a nested var within a IIFE\'s this", function() {\n \t(function() {\n-\t\t(this.env.NODE_ENV).should.be.eql("development");\n+\t\texpect((this.env.NODE_ENV)).toBe("development");\n \t\tvar x = this.env.NODE_ENV;\n-\t\tx.should.be.eql("development");\n+\t\texpect(x).toBe("development");\n \t}.call(process));\n });\n \n it("should provide a module for a nested var within a nested IIFE\'s this", function() {\n \t(function() {\n \t\t(function() {\n-\t\t\t(this.env.NODE_ENV).should.be.eql("development");\n+\t\t\texpect((this.env.NODE_ENV)).toBe("development");\n \t\t\tvar x = this.env.NODE_ENV;\n-\t\t\tx.should.be.eql("development");\n+\t\t\texpect(x).toBe("development");\n \t\t}.call(this));\n \t}.call(process));\n });\n \n it("should not provide a module for a part of a var", function() {\n-\t(typeof bbb).should.be.eql("undefined");\n+\texpect((typeof bbb)).toBe("undefined");\n });\n \n it("should provide a module for a property request", function() {\n-\t(dddeeefff).should.be.eql("fff");\n+\texpect((dddeeefff)).toBe("fff");\n \tvar x = dddeeefff;\n-\tx.should.be.eql("fff");\n+\texpect(x).toBe("fff");\n });\n \n it("should provide ES2015 modules", function() {\n-\t(es2015.default).should.be.eql("ECMAScript 2015");\n-\t(es2015.alias).should.be.eql("ECMAScript Harmony");\n-\t(es2015.year).should.be.eql(2015);\n-\t(es2015_name).should.be.eql("ECMAScript 2015");\n-\t(es2015_alias).should.be.eql("ECMAScript Harmony");\n-\t(es2015_year).should.be.eql(2015);\n+\texpect((es2015.default)).toBe("ECMAScript 2015");\n+\texpect((es2015.alias)).toBe("ECMAScript Harmony");\n+\texpect((es2015.year)).toBe(2015);\n+\texpect((es2015_name)).toBe("ECMAScript 2015");\n+\texpect((es2015_alias)).toBe("ECMAScript Harmony");\n+\texpect((es2015_year)).toBe(2015);\n });\ndiff --git a/test/configCases/rule-set/chaining/index.js b/test/configCases/rule-set/chaining/index.js\nindex ca3b76c2c..ccb162203 100644\n--- a/test/configCases/rule-set/chaining/index.js\n+++ b/test/configCases/rule-set/chaining/index.js\n@@ -1,6 +1,6 @@\n it("should match rule with multiple loaders in \'loader\'", function() {\n \tvar abc = require("./abc");\n-\tabc.should.be.eql([\n+\texpect(abc).toEqual([\n \t\t"abc",\n \t\t"?b",\n \t\t"?a"\n@@ -8,7 +8,7 @@ it("should match rule with multiple loaders in \'loader\'", function() {\n });\n it("should match rule with multiple loaders in \'loaders\'", function() {\n \tvar def = require("./def");\n-\tdef.should.be.eql([\n+\texpect(def).toEqual([\n \t\t"def",\n \t\t"?d",\n \t\t"?c"\ndiff --git a/test/configCases/rule-set/compiler/index.js b/test/configCases/rule-set/compiler/index.js\nindex ae9a155a9..6eb52e6c4 100644\n--- a/test/configCases/rule-set/compiler/index.js\n+++ b/test/configCases/rule-set/compiler/index.js\n@@ -1,6 +1,6 @@\n it("should match rule with compiler name", function() {\n \tvar a = require("./a");\n-\ta.should.be.eql("loader matched");\n+\texpect(a).toBe("loader matched");\n \tvar b = require("./b");\n-\tb.should.be.eql("loader not matched");\n+\texpect(b).toBe("loader not matched");\n });\ndiff --git a/test/configCases/rule-set/custom/index.js b/test/configCases/rule-set/custom/index.js\nindex 8c73ef9fa..e4894af51 100644\n--- a/test/configCases/rule-set/custom/index.js\n+++ b/test/configCases/rule-set/custom/index.js\n@@ -1,6 +1,6 @@\n it("should match a custom loader", function() {\n \tvar a = require("./a");\n-\ta.should.be.eql([\n+\texpect(a).toEqual([\n \t\t"a",\n \t\t{\n \t\t\tissuer: "index.js",\n@@ -9,7 +9,7 @@ it("should match a custom loader", function() {\n \t\t}\n \t]);\n \tvar b = require("./b?hello");\n-\tb.should.be.eql([\n+\texpect(b).toEqual([\n \t\t"b",\n \t\t{\n \t\t\tissuer: "index.js",\n@@ -18,7 +18,7 @@ it("should match a custom loader", function() {\n \t\t}\n \t]);\n \tvar ca = require("./call-a?hello");\n-\tca.should.be.eql([\n+\texpect(ca).toEqual([\n \t\t"a",\n \t\t{\n \t\t\tissuer: "call-a.js",\ndiff --git a/test/configCases/rule-set/query/index.js b/test/configCases/rule-set/query/index.js\nindex baeb9e1e9..7114b9778 100644\n--- a/test/configCases/rule-set/query/index.js\n+++ b/test/configCases/rule-set/query/index.js\n@@ -1,15 +1,15 @@\n it("should match rule with resource query", function() {\n \tvar a1 = require("./a");\n-\ta1.should.be.eql([\n+\texpect(a1).toEqual([\n \t\t"a"\n \t]);\n \tvar a2 = require("./a?loader");\n-\ta2.should.be.eql([\n+\texpect(a2).toEqual([\n \t\t"a",\n \t\t"?query"\n \t]);\n \tvar a3 = require("./a?other");\n-\ta3.should.be.eql([\n+\texpect(a3).toEqual([\n \t\t"a"\n \t]);\n });\ndiff --git a/test/configCases/rule-set/resolve-options/index.js b/test/configCases/rule-set/resolve-options/index.js\nindex c5da4bedd..5baf4c239 100644\n--- a/test/configCases/rule-set/resolve-options/index.js\n+++ b/test/configCases/rule-set/resolve-options/index.js\n@@ -1,6 +1,6 @@\n it("should allow to set custom resolving rules", function() {\n \tvar a = require("./a");\n-\ta.should.be.eql("ok");\n+\texpect(a).toBe("ok");\n \tvar b = require("./b");\n-\tb.should.be.eql("wrong");\n+\texpect(b).toBe("wrong");\n });\ndiff --git a/test/configCases/rule-set/simple-use-array-fn/index.js b/test/configCases/rule-set/simple-use-array-fn/index.js\nindex 5c0fb1255..64637f8ab 100644\n--- a/test/configCases/rule-set/simple-use-array-fn/index.js\n+++ b/test/configCases/rule-set/simple-use-array-fn/index.js\n@@ -1,6 +1,6 @@\n it("should match only one rule in a oneOf block", function() {\n \tvar ab = require("./ab");\n-\tab.should.be.eql([\n+\texpect(ab).toEqual([\n \t\t"ab",\n \t\t"?first"\n \t]);\n@@ -8,11 +8,11 @@ it("should match only one rule in a oneOf block", function() {\n it("should match with issuer and any option value", function() {\n \tvar a = require("./a");\n \tvar b = require("./b");\n-\ta.should.be.eql([\n+\texpect(a).toEqual([\n \t\t"a",\n \t\t"?third",\n \t]);\n-\tb.should.be.eql([[\n+\texpect(b).toEqual([[\n \t\t"a",\n \t\t"second-3",\n \t\t"?second-2",\ndiff --git a/test/configCases/rule-set/simple-use-fn-array/index.js b/test/configCases/rule-set/simple-use-fn-array/index.js\nindex 5c0fb1255..64637f8ab 100644\n--- a/test/configCases/rule-set/simple-use-fn-array/index.js\n+++ b/test/configCases/rule-set/simple-use-fn-array/index.js\n@@ -1,6 +1,6 @@\n it("should match only one rule in a oneOf block", function() {\n \tvar ab = require("./ab");\n-\tab.should.be.eql([\n+\texpect(ab).toEqual([\n \t\t"ab",\n \t\t"?first"\n \t]);\n@@ -8,11 +8,11 @@ it("should match only one rule in a oneOf block", function() {\n it("should match with issuer and any option value", function() {\n \tvar a = require("./a");\n \tvar b = require("./b");\n-\ta.should.be.eql([\n+\texpect(a).toEqual([\n \t\t"a",\n \t\t"?third",\n \t]);\n-\tb.should.be.eql([[\n+\texpect(b).toEqual([[\n \t\t"a",\n \t\t"second-3",\n \t\t"?second-2",\ndiff --git a/test/configCases/rule-set/simple/index.js b/test/configCases/rule-set/simple/index.js\nindex 5c0fb1255..64637f8ab 100644\n--- a/test/configCases/rule-set/simple/index.js\n+++ b/test/configCases/rule-set/simple/index.js\n@@ -1,6 +1,6 @@\n it("should match only one rule in a oneOf block", function() {\n \tvar ab = require("./ab");\n-\tab.should.be.eql([\n+\texpect(ab).toEqual([\n \t\t"ab",\n \t\t"?first"\n \t]);\n@@ -8,11 +8,11 @@ it("should match only one rule in a oneOf block", function() {\n it("should match with issuer and any option value", function() {\n \tvar a = require("./a");\n \tvar b = require("./b");\n-\ta.should.be.eql([\n+\texpect(a).toEqual([\n \t\t"a",\n \t\t"?third",\n \t]);\n-\tb.should.be.eql([[\n+\texpect(b).toEqual([[\n \t\t"a",\n \t\t"second-3",\n \t\t"?second-2",\ndiff --git a/test/configCases/scope-hoisting/dll-plugin/index.js b/test/configCases/scope-hoisting/dll-plugin/index.js\nindex 90b28ea4e..c1533a31a 100644\n--- a/test/configCases/scope-hoisting/dll-plugin/index.js\n+++ b/test/configCases/scope-hoisting/dll-plugin/index.js\n@@ -1,5 +1,5 @@\n import value from "dll/module";\n \n it("should not scope hoist delegated modules", function() {\n-\tvalue.should.be.eql("ok");\n+\texpect(value).toBe("ok");\n });\ndiff --git a/test/configCases/scope-hoisting/named-modules/index.js b/test/configCases/scope-hoisting/named-modules/index.js\nindex 2339e0ccd..9e915eb93 100644\n--- a/test/configCases/scope-hoisting/named-modules/index.js\n+++ b/test/configCases/scope-hoisting/named-modules/index.js\n@@ -1,5 +1,5 @@\n import value from "./module";\n \n it("should generate valid code", function() {\n-\tvalue.should.be.eql("ok");\n+\texpect(value).toBe("ok");\n });\ndiff --git a/test/configCases/scope-hoisting/strictThisContextOnImports/index.js b/test/configCases/scope-hoisting/strictThisContextOnImports/index.js\nindex 9f14a7229..174d19ee4 100644\n--- a/test/configCases/scope-hoisting/strictThisContextOnImports/index.js\n+++ b/test/configCases/scope-hoisting/strictThisContextOnImports/index.js\n@@ -2,10 +2,10 @@ import value, { identity } from "./module";\n import * as m from "./module";\n \n it("should parse and translate identifiers correctly", function() {\n-\tidentity(value).should.be.eql(1234);\n-\tm.identity(value).should.be.eql(1234);\n-\tm.identity(identity).should.be.eql(identity);\n-\tm.identity(m.identity).should.be.eql(m.identity);\n-\tidentity(m.identity).should.be.eql(m.identity);\n-\tidentity(m.default).should.be.eql(1234);\n+\texpect(identity(value)).toBe(1234);\n+\texpect(m.identity(value)).toBe(1234);\n+\texpect(m.identity(identity)).toBe(identity);\n+\texpect(m.identity(m.identity)).toBe(m.identity);\n+\texpect(identity(m.identity)).toBe(m.identity);\n+\texpect(identity(m.default)).toBe(1234);\n });\ndiff --git a/test/configCases/side-effects/side-effects-override/index.js b/test/configCases/side-effects/side-effects-override/index.js\nindex b15057fe0..ca444036a 100644\n--- a/test/configCases/side-effects/side-effects-override/index.js\n+++ b/test/configCases/side-effects/side-effects-override/index.js\n@@ -4,8 +4,8 @@ import p from "pmodule";\n import n from "nmodule";\n \n it("should be able to override side effects", function() {\n-\tp.should.be.eql("def");\n-\tn.should.be.eql("def");\n-\tplog.should.be.eql(["a.js", "b.js", "c.js", "index.js"]);\n-\tnlog.should.be.eql(["index.js"]);\n+\texpect(p).toBe("def");\n+\texpect(n).toBe("def");\n+\texpect(plog).toEqual(["a.js", "b.js", "c.js", "index.js"]);\n+\texpect(nlog).toEqual(["index.js"]);\n });\ndiff --git a/test/configCases/source-map/relative-source-map-path/index.js b/test/configCases/source-map/relative-source-map-path/index.js\nindex 3a94a8228..801f5b353 100644\n--- a/test/configCases/source-map/relative-source-map-path/index.js\n+++ b/test/configCases/source-map/relative-source-map-path/index.js\n@@ -2,7 +2,7 @@ it("should have a relative url to the source-map", function() {\n \tvar fs = require("fs");\n \tvar source = fs.readFileSync(__filename, "utf-8");\n \tvar match = /sourceMappingURL\\s*=\\s*(.*)/.exec(source);\n-\tmatch[1].should.be.eql("bundle0.js.map");\n+\texpect(match[1]).toBe("bundle0.js.map");\n });\n \n it("should have a relative url to the source-map with prefix", function(done) {\ndiff --git a/test/configCases/source-map/relative-source-map-path/test.js b/test/configCases/source-map/relative-source-map-path/test.js\nindex 46627acd3..02ac3dd39 100644\n--- a/test/configCases/source-map/relative-source-map-path/test.js\n+++ b/test/configCases/source-map/relative-source-map-path/test.js\n@@ -1,4 +1,4 @@\n var fs = require("fs");\n var source = fs.readFileSync(__filename, "utf-8");\n var match = /sourceMappingURL\\s*=\\s*(.*)/.exec(source);\n-match[1].should.be.eql("c.js.map");\n\\ No newline at end of file\n+expect(match[1]).toBe("c.js.map");\ndiff --git a/test/configCases/source-map/source-map-filename-contenthash/index.js b/test/configCases/source-map/source-map-filename-contenthash/index.js\nindex 455b624c9..dd9fc97ab 100644\n--- a/test/configCases/source-map/source-map-filename-contenthash/index.js\n+++ b/test/configCases/source-map/source-map-filename-contenthash/index.js\n@@ -2,5 +2,5 @@ it("should contain contenthash as query parameter and path", function() {\n \tvar fs = require("fs");\n \tvar source = fs.readFileSync(__filename, "utf-8");\n \tvar match = /sourceMappingURL\\s*=.*-([A-Fa-f0-9]{32})\\.map\\?([A-Fa-f0-9]{32})-([A-Fa-f0-9]{32})/.exec(source);\n-\tmatch.length.should.be.eql(4);\n+\texpect(match.length).toBe(4);\n });\ndiff --git a/test/configCases/target/buffer-default/index.js b/test/configCases/target/buffer-default/index.js\nindex 8ffa85e2f..9b2008684 100644\n--- a/test/configCases/target/buffer-default/index.js\n+++ b/test/configCases/target/buffer-default/index.js\n@@ -6,5 +6,5 @@ it("should provide a global Buffer shim", function () {\n \n it("should provide the buffer module", function () {\n \tvar buffer = require("buffer");\n-\t(typeof buffer).should.be.eql("object");\n+\texpect((typeof buffer)).toBe("object");\n });\ndiff --git a/test/configCases/target/node-dynamic-import/index.js b/test/configCases/target/node-dynamic-import/index.js\nindex e5bcc97a8..0a0ac4e00 100644\n--- a/test/configCases/target/node-dynamic-import/index.js\n+++ b/test/configCases/target/node-dynamic-import/index.js\n@@ -2,11 +2,11 @@ function testCase(load, done) {\n \tload("two", 2, function() {\n \t\tvar sync = true;\n \t\tload("one", 1, function() {\n-\t\t\tsync.should.be.eql(false);\n+\t\t\texpect(sync).toBe(false);\n \t\t\tload("three", 3, function() {\n \t\t\t\tvar sync = true;\n \t\t\t\tload("two", 2, function() {\n-\t\t\t\t\tsync.should.be.eql(true);\n+\t\t\t\t\texpect(sync).toBe(true);\n \t\t\t\t\tdone();\n \t\t\t\t});\n \t\t\t\tPromise.resolve().then(function() {}).then(function() {}).then(function() {\n@@ -23,7 +23,7 @@ function testCase(load, done) {\n it("should be able to use expressions in import", function(done) {\n \tfunction load(name, expected, callback) {\n \t\timport("./dir/" + name + \'.js\')\n-\t\t\t.then((result) => {result.should.be.eql({ default: expected }); callback()})\n+\t\t\t.then((result) => {expect(result).toEqual({ default: expected }); callback()})\n \t\t\t.catch((err) => {done(err)});\n \t}\n \ttestCase(load, done);\n@@ -32,7 +32,7 @@ it("should be able to use expressions in import", function(done) {\n it("should be able to use expressions in lazy-once import", function(done) {\n \tfunction load(name, expected, callback) {\n \t\timport(/* webpackMode: "lazy-once" */ "./dir/" + name + \'.js\')\n-\t\t\t.then((result) => {result.should.be.eql({ default: expected }); callback()})\n+\t\t\t.then((result) => {expect(result).toEqual({ default: expected }); callback()})\n \t\t\t.catch((err) => {done(err)});\n \t}\n \ttestCase(load, done);\n@@ -41,7 +41,7 @@ it("should be able to use expressions in lazy-once import", function(done) {\n it("should be able to use expressions in import", function(done) {\n \tfunction load(name, expected, callback) {\n \t\timport("./dir2/" + name).then((result) => {\n-\t\t\tresult.should.be.eql({ default: expected });\n+\t\t\texpect(result).toEqual({ default: expected });\n \t\t\tcallback();\n \t\t}).catch((err) => {\n \t\t\tdone(err);\n@@ -51,12 +51,12 @@ it("should be able to use expressions in import", function(done) {\n });\n \n it("should convert to function in node", function() {\n-\t(typeof __webpack_require__.e).should.be.eql("function");\n+\texpect((typeof __webpack_require__.e)).toBe("function");\n })\n \n it("should be able to use import", function(done) {\n \timport("./two").then((two) => {\n-\t\ttwo.should.be.eql({ default: 2 });\n+\t\texpect(two).toEqual({ default: 2 });\n \t\tdone();\n \t}).catch(function(err) {\n \t\tdone(err);\ndiff --git a/test/configCases/target/strict-mode-global/index.js b/test/configCases/target/strict-mode-global/index.js\nindex da530ef4d..1ac581718 100644\n--- a/test/configCases/target/strict-mode-global/index.js\n+++ b/test/configCases/target/strict-mode-global/index.js\n@@ -3,6 +3,6 @@\n require("should");\n \n it("should be able to use global in strict mode", function() {\n-\t(typeof global).should.be.eql("object");\n-\t(global === null).should.be.eql(false)\n+\texpect((typeof global)).toBe("object");\n+\texpect((global === null)).toBe(false)\n });\ndiff --git a/test/configCases/target/web/index.js b/test/configCases/target/web/index.js\nindex 5b659b746..63fd0dbe8 100644\n--- a/test/configCases/target/web/index.js\n+++ b/test/configCases/target/web/index.js\n@@ -97,5 +97,5 @@ it("should provide a zlib shim", function () {\n });\n \n it("should provide a shim for a path in a build-in module", function () {\n-\trequire("process/in.js").should.be.eql("in process");\n+\texpect(require("process/in.js")).toBe("in process");\n });\ndiff --git a/test/configCases/target/webworker/index.js b/test/configCases/target/webworker/index.js\nindex 63a9cf2ce..79b3752c3 100644\n--- a/test/configCases/target/webworker/index.js\n+++ b/test/configCases/target/webworker/index.js\n@@ -94,5 +94,5 @@ it("should provide a zlib shim", function () {\n });\n \n it("should provide a shim for a path in a build-in module", function () {\n-\trequire("process/in.js").should.be.eql("in process");\n+\texpect(require("process/in.js")).toBe("in process");\n });\n', 'commit_subject': 'migrate should to expect, part 1', 'repo_name': 'webpack/webpack', 'committer': {'name': 'Bazyli Brzóska', 'email': '65696035288f13b1b104a62077f41b99b4065f9d@gmail.com', 'time_sec': '1517003463', 'tz_offset': '60', 'date': {'seconds': '1517003463'}}, 'commit_tree': 'a6f1f13060064ddce93e1811f2d53a9c6ecfd314', 'commit_message': 'migrate should to expect, part 1\n\nused regexps:\n\n([\\(\\)a-zA-Z0-9\\."\'/ +{}\\[\\]=\\-,:?_!]+)\\.should\\.be\\.eql\n➡️\nexpect($1).toBe\n\nexpect\\(([\\(\\)a-zA-Z0-9\\."\'/ +{}\\[\\]=\\-,:?_!]+)\\)\\.toBe\\(\\[\n➡️\nexpect($1).toEqual([\n\nexpect\\(([\\(\\)a-zA-Z0-9\\."\'/ +{}\\[\\]=\\-,:?_!]+)\\)\\.toBe\\(\\{\n➡️\nexpect($1).toEqual({\n', 'language_name': 'Shell', 'license': 'mit', 'hunks': '@@ -3,6 +3,6 @@\n require("should");\n \n it("should be able to use global in strict mode", function() {\n-\t(typeof global).should.be.eql("object");\n-\t(global === null).should.be.eql(false)\n+\texpect((typeof global)).toBe("object");\n+\texpect((global === null)).toBe(false)\n });\n', 'addition_count': 2, 'deletion_count': 2, 'src_file': 'a/test/configCases/target/strict-mode-global/index.js', 'tgt_file': 'b/test/configCases/target/strict-mode-global/index.js', 'file_extension': '.js', 'before_file': '"use strict";\n\nrequire("should");\n\nit("should be able to use global in strict mode", function() {\n\t(typeof global).should.be.eql("object");\n\t(global === null).should.be.eql(false)\n});\n', 'message': 'migrate should to expect, part 1\n\nused regexps:\n\n([\\(\\)a-zA-Z0-9\\."\'/ +{}\\[\\]=\\-,:?_!]+)\\.should\\.be\\.eql\n➡️\nexpect($1).toBe\n\nexpect\\(([\\(\\)a-zA-Z0-9\\."\'/ +{}\\[\\]=\\-,:?_!]+)\\)\\.toBe\\(\\[\n➡️\nexpect($1).toEqual([\n\nexpect\\(([\\(\\)a-zA-Z0-9\\."\'/ +{}\\[\\]=\\-,:?_!]+)\\)\\.toBe\\(\\{\n➡️\nexpect($1).toEqual({\n', 'author_name': 'Bazyli Brzóska', 'lang': 'js'}