UNPKG

2.86 kBJavaScriptView Raw
1"use strict";
2/**
3 * @license
4 * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
5 * This code may only be used under the BSD style license found at
6 * http://polymer.github.io/LICENSE.txt
7 * The complete set of authors may be found at
8 * http://polymer.github.io/AUTHORS.txt
9 * The complete set of contributors may be found at
10 * http://polymer.github.io/CONTRIBUTORS.txt
11 * Code distributed by Google as part of the polymer project is also
12 * subject to an additional IP rights grant found at
13 * http://polymer.github.io/PATENTS.txt
14 */
15Object.defineProperty(exports, "__esModule", { value: true });
16const babelCore = require("@babel/core");
17const stripIndent = require("strip-indent");
18const chai_1 = require("chai");
19const babel_plugin_dynamic_import_amd_1 = require("../babel-plugin-dynamic-import-amd");
20const babelTransformModulesAmd = require('@babel/plugin-transform-modules-amd');
21suite('babel-plugin-transform-modules-amd', () => {
22 test('transforms import()', () => {
23 const input = stripIndent(`
24 const foo = import('./foo.js');
25 `);
26 const expected = stripIndent(`
27 import * as _require from 'require';
28 const foo = new Promise((res, rej) => _require.default(['./foo.js'], res, rej));
29 `);
30 const result = babelCore.transform(input, { plugins: [babel_plugin_dynamic_import_amd_1.dynamicImportAmd] }).code;
31 chai_1.assert.equal(result.trim(), expected.trim());
32 });
33 test('chooses unique name for require()', () => {
34 const input = stripIndent(`
35 let _require = true;
36 const foo = import('./foo.js');
37 {
38 let _require2 = true;
39 import('./bar.js');
40 }
41 `);
42 const expected = stripIndent(`
43 import * as _require3 from 'require';
44 let _require = true;
45 const foo = new Promise((res, rej) => _require3.default(['./foo.js'], res, rej));
46 {
47 let _require2 = true;
48 new Promise((res, rej) => _require3.default(['./bar.js'], res, rej));
49 }
50 `);
51 const result = babelCore.transform(input, { plugins: [babel_plugin_dynamic_import_amd_1.dynamicImportAmd] }).code;
52 chai_1.assert.equal(result.trim(), expected.trim());
53 });
54 test('integrates with AMD transform', () => {
55 const input = stripIndent(`
56 import {bar} from './bar.js';
57 const foo = import('./foo.js');
58 `);
59 const result = babelCore
60 .transform(input, { plugins: [babel_plugin_dynamic_import_amd_1.dynamicImportAmd, babelTransformModulesAmd] })
61 .code;
62 chai_1.assert.include(result, `define(["require", "./bar.js"], function (_require, _bar) {`);
63 chai_1.assert.include(result, `const foo = new Promise((res, rej) => _require.default(['./foo.js'], res, rej));`);
64 });
65});
66//# sourceMappingURL=babel-plugin-dynamic-import-amd_test.js.map
\No newline at end of file