From d70603ffa993ade60f9ea6debbcea2c67f025d59 Mon Sep 17 00:00:00 2001 From: Noah Lemen Date: Tue, 29 Aug 2017 21:06:05 -0400 Subject: [PATCH] re-add template literals tests, add ones that were missing (#6169) --- .../default/expression-first/actual.js | 9 +++++++ .../default/expression-first/expected.js | 9 +++++++ .../test/fixtures/default/literals/actual.js | 2 +- .../test/fixtures/default/tag/actual.js | 3 +++ .../test/fixtures/default/tag/expected.js | 9 +++++++ .../test/fixtures/loose/literals/actual.js | 1 + .../test/fixtures/loose/literals/expected.js | 1 + .../test/fixtures/loose/order/exec.js | 24 +++++++++++++++++++ .../test/fixtures/loose/order/options.json | 3 +++ .../test/fixtures/loose/order2/exec.js | 19 +++++++++++++++ .../test/fixtures/loose/order2/options.json | 3 +++ .../test/fixtures/loose/symbol/exec.js | 3 +++ .../test/fixtures/loose/tag/actual.js | 2 ++ .../test/fixtures/loose/tag/expected.js | 6 ++++- 14 files changed, 92 insertions(+), 2 deletions(-) create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/expression-first/actual.js create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/expression-first/expected.js create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/actual.js create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/expected.js create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/literals/actual.js create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/literals/expected.js create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order/exec.js create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order/options.json create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order2/exec.js create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order2/options.json create mode 100644 packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/symbol/exec.js diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/expression-first/actual.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/expression-first/actual.js new file mode 100644 index 0000000000..0f3a53f8a1 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/expression-first/actual.js @@ -0,0 +1,9 @@ +var foo = 5; +var bar = 10; +var baz = 15; + +var example = `${"a"}`; +var example2 = `${1}`; +var example3 = 1 + `${foo}${bar}${baz}`; +var example4 = 1 + `${foo}bar${baz}`; +var example5 = `${""}`; diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/expression-first/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/expression-first/expected.js new file mode 100644 index 0000000000..5880e3d75e --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/expression-first/expected.js @@ -0,0 +1,9 @@ +var foo = 5; +var bar = 10; +var baz = 15; +var example = "a"; +var example2 = "".concat(1); +var example3 = 1 + "".concat(foo).concat(bar).concat(baz); +var example4 = 1 + "".concat(foo, "bar").concat(baz); +var example5 = ""; + diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/literals/actual.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/literals/actual.js index a6e9c4a836..d832691974 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/literals/actual.js +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/literals/actual.js @@ -1 +1 @@ -var foo = `${1}${f}oo${true}${b}ar${0}${baz}`; \ No newline at end of file +var foo = `${1}${f}oo${true}${b}ar${0}${baz}`; diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/actual.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/actual.js new file mode 100644 index 0000000000..52419bb505 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/actual.js @@ -0,0 +1,3 @@ +var foo = bar`wow\na${ 42 }b ${_.foobar()}`; +var bar = bar`wow\nab${ 42 } ${_.foobar()}`; +var bar = bar`wow\naB${ 42 } ${_.baz()}`; diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/expected.js new file mode 100644 index 0000000000..5615639572 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/default/tag/expected.js @@ -0,0 +1,9 @@ +var _templateObject = _taggedTemplateLiteral(["wow\na", "b ", ""], ["wow\\na", "b ", ""]), + _templateObject2 = _taggedTemplateLiteral(["wow\nab", " ", ""], ["wow\\nab", " ", ""]), + _templateObject3 = _taggedTemplateLiteral(["wow\naB", " ", ""], ["wow\\naB", " ", ""]); + +function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); } + +var foo = bar(_templateObject, 42, _.foobar()); +var bar = bar(_templateObject2, 42, _.foobar()); +var bar = bar(_templateObject3, 42, _.baz()); diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/literals/actual.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/literals/actual.js new file mode 100644 index 0000000000..d832691974 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/literals/actual.js @@ -0,0 +1 @@ +var foo = `${1}${f}oo${true}${b}ar${0}${baz}`; diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/literals/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/literals/expected.js new file mode 100644 index 0000000000..fee0cf2411 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/literals/expected.js @@ -0,0 +1 @@ +var foo = "" + 1 + f + "oo" + true + b + "ar" + 0 + baz; diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order/exec.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order/exec.js new file mode 100644 index 0000000000..895677e3a2 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order/exec.js @@ -0,0 +1,24 @@ +const calls = []; + +` + ${ + calls.push(1), + { + [Symbol.toPrimitive](){ + calls.push(2); + return 'foo'; + } + } + } + ${ + calls.push(3), + { + [Symbol.toPrimitive](){ + calls.push(4); + return 'bar'; + } + } + } +`; + +assert.deepEqual(calls, [1, 2, 3, 4]); diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order/options.json b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order/options.json new file mode 100644 index 0000000000..7d8c3c204c --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order/options.json @@ -0,0 +1,3 @@ +{ + "minNodeVersion": "6.0.0" +} diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order2/exec.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order2/exec.js new file mode 100644 index 0000000000..6883703459 --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order2/exec.js @@ -0,0 +1,19 @@ +const calls = []; + +` + ${{ + [Symbol.toPrimitive]() { + calls.push(1); + return "foo"; + } + }} + ${1 + + { + valueOf() { + calls.push(2); + return 2; + } + }} +`; + +assert.deepEqual(calls, [1, 2]); diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order2/options.json b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order2/options.json new file mode 100644 index 0000000000..7d8c3c204c --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/order2/options.json @@ -0,0 +1,3 @@ +{ + "minNodeVersion": "6.0.0" +} diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/symbol/exec.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/symbol/exec.js new file mode 100644 index 0000000000..39316c78ef --- /dev/null +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/symbol/exec.js @@ -0,0 +1,3 @@ +const fn = () => `${Symbol()}`; + +assert.throws(fn, TypeError); diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/actual.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/actual.js index 7fe1864736..52419bb505 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/actual.js +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/actual.js @@ -1 +1,3 @@ var foo = bar`wow\na${ 42 }b ${_.foobar()}`; +var bar = bar`wow\nab${ 42 } ${_.foobar()}`; +var bar = bar`wow\naB${ 42 } ${_.baz()}`; diff --git a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/expected.js b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/expected.js index a8bf66d461..d8563b0301 100644 --- a/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/expected.js +++ b/packages/babel-plugin-transform-es2015-template-literals/test/fixtures/loose/tag/expected.js @@ -1,5 +1,9 @@ -var _templateObject = _taggedTemplateLiteralLoose(["wow\na", "b ", ""], ["wow\\na", "b ", ""]); +var _templateObject = _taggedTemplateLiteralLoose(["wow\na", "b ", ""], ["wow\\na", "b ", ""]), + _templateObject2 = _taggedTemplateLiteralLoose(["wow\nab", " ", ""], ["wow\\nab", " ", ""]), + _templateObject3 = _taggedTemplateLiteralLoose(["wow\naB", " ", ""], ["wow\\naB", " ", ""]); function _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; } var foo = bar(_templateObject, 42, _.foobar()); +var bar = bar(_templateObject2, 42, _.foobar()); +var bar = bar(_templateObject3, 42, _.baz());