1 | "use strict";
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 | Object.defineProperty(exports, "__esModule", { value: true });
|
16 | const babelCore = require("@babel/core");
|
17 | const stripIndent = require("strip-indent");
|
18 | const chai_1 = require("chai");
|
19 | const babel_plugin_dynamic_import_amd_1 = require("../babel-plugin-dynamic-import-amd");
|
20 | const babelTransformModulesAmd = require('@babel/plugin-transform-modules-amd');
|
21 | suite('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 |
|
\ | No newline at end of file |