Skip to content

Commit 08179b3

Browse files
committed
Add tests for .concat alongside template literals.
1 parent 817f4f6 commit 08179b3

3 files changed

Lines changed: 70 additions & 1 deletion

File tree

test/cases/parsing/complex-require/amd.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,22 @@ it("should parse template strings in amd requires", function(done) {
1818
}
1919
}
2020
})
21+
22+
it("should parse .concat strings in amd requires", function(done) {
23+
var name = "abc";
24+
var suffix = "Test";
25+
26+
var pending = [
27+
require(["./abc/abcTest"], test),
28+
require(["./abc/".concat(name, "Test")], test),
29+
require(["./".concat(name, "/").concat(name, "Test")], test),
30+
require(["./abc/".concat(name).concat(suffix)], test)
31+
].length;
32+
33+
function test (result) {
34+
result.default.should.eql("ok")
35+
if (--pending <= 0) {
36+
done()
37+
}
38+
}
39+
})

test/cases/parsing/complex-require/cjs.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ it("should parse template strings in require.ensure requires", function(done) {
55

66
require.ensure([], function(require) {
77
var imports = [
8-
require(`./abc/${name}Test`),
98
require(`./abc/${name}Test`),
109
require(`./${name}/${name}Test`),
1110
require(`./abc/${name}${suffix}`),
@@ -43,3 +42,44 @@ it("should parse template strings in require.resolve", function() {
4342
// can't use typeof as that depends on webpack config.
4443
require.resolve(`./sync/${name}Test`).should.not.be.undefined();
4544
})
45+
46+
it("should parse .concat strings in require.ensure requires", function(done) {
47+
var name = "abc";
48+
var suffix = "Test";
49+
50+
require.ensure([], function(require) {
51+
var imports = [
52+
require("./abc/".concat(name, "Test")),
53+
require("./".concat(name, "/").concat(name, "Test")),
54+
require("./abc/".concat(name).concat(suffix))
55+
];
56+
57+
for (var i = 0; i < imports.length; i++) {
58+
imports[i].default.should.eql("ok");
59+
}
60+
done()
61+
})
62+
})
63+
64+
it("should parse .concat strings in sync requires", function() {
65+
var name = "sync";
66+
var suffix = "Test";
67+
68+
var imports = [
69+
require("./sync/".concat(name, "Test")),
70+
require("./sync/".concat(name).concat(suffix)),
71+
require("./sync/sync".concat("Test"))
72+
];
73+
74+
for (var i = 0; i < imports.length; i++) {
75+
imports[i].default.should.eql("sync");
76+
}
77+
})
78+
79+
it("should parse .concat strings in require.resolve", function() {
80+
var name = "sync";
81+
82+
// Arbitrary assertion; can't use .ok() as it could be 0,
83+
// can't use typeof as that depends on webpack config.
84+
require.resolve("./sync/".concat(name, "Test")).should.not.be.undefined();
85+
})

test/cases/parsing/complex-require/index.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,15 @@ it("should parse template strings in import", function(done) {
1616
.then(function () { done(); }, done)
1717
});
1818

19+
it("should parse .concat strings in import", function(done) {
20+
var name = "abc".split("");
21+
var suffix = "Test";
22+
import("./abc/".concat(name[0]).concat(name[1]).concat(name[2], "Test"))
23+
.then(function (imported) {
24+
imported.default.should.eql("ok");
25+
})
26+
.then(function () { done(); }, done)
27+
});
28+
1929
require("./cjs")
2030
require("./amd")

0 commit comments

Comments
 (0)