Skip to content

Commit

Permalink
tests
Browse files Browse the repository at this point in the history
  • Loading branch information
runspired committed Feb 4, 2020
1 parent 8b2b305 commit 875af1a
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 6 deletions.
84 changes: 83 additions & 1 deletion node-tests/addon-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -1358,7 +1358,89 @@ describe('EmberData Packages Polyfill', function() {
output.read()
).to.deep.equal({
"foo.js": `import DS from "ember-data";\nexport default DS.Store;`,
"bar.js": `import DS from "ember-data";\nexport var User = DS.Model;\nexport var name = DS.attr;`,
"bar.js": `import DS from "ember-data";\nvar Model = DS.Model;\nvar attr = DS.attr;\nexport var User = Model;\nexport var name = attr;`,
});
}));

it("conversion works with compilation to AMD modules", co.wrap(function*() {
yield setupForVersion('3.11.99');
input.write({
"foo.js": `export { default } from '@ember-data/store';`,
"bem.js": `export { default } from 'ember-data';`,
"bar.js": `import Model, { attr } from '@ember-data/model';\nexport var User = Model;export var name = attr;`,
"baz.js": `import EmberData from 'ember-data';\nexport var User = EmberData.Model;`,
});

subject = this.addon.transpileTree(input.path(), {
'ember-cli-babel': {
compileModules: true,
disableDebugTooling: true,
}
});

output = createBuilder(subject);

yield output.build();

function moduleOutput(moduleName, transpiledModuleBodyCode) {
return `define("${moduleName}", ["exports", "ember-data"], function (_exports, _emberData) {\n "use strict";\n\n Object.defineProperty(_exports, "__esModule", {\n value: true\n });\n${transpiledModuleBodyCode}\n});`
}

let fooOutput = moduleOutput(
'foo',
assembleLines([
`_exports.default = void 0;`,
`var _default = _emberData.default.Store;`,
`_exports.default = _default;`
])
);
let bemOutput = moduleOutput(
'bem',
assembleLines([
`Object.defineProperty(_exports, "default", {`,
` enumerable: true,`,
` get: function get() {`,
` return _emberData.default;`,
` }`,
`});`
])
);
let barOutput = moduleOutput(
'bar',
assembleLines([
`_exports.name = _exports.User = void 0;`,
`var Model = _emberData.default.Model;`,
`var attr = _emberData.default.attr;`,
`var User = Model;`,
`_exports.User = User;`,
`var name = attr;`,
`_exports.name = name;`
])
);
let bazOutput = moduleOutput(
'baz',
assembleLines([
`_exports.User = void 0;`,
`var EmberData = _emberData.default;`,
`var User = EmberData.Model;`,
`_exports.User = User;`
])
);

let transpiled = output.read();
expect(transpiled['foo.js']).to.equal(fooOutput);
expect(transpiled['bem.js']).to.equal(bemOutput);
expect(transpiled['bar.js']).to.equal(barOutput);
expect(transpiled['baz.js']).to.equal(bazOutput);
}));
});

function leftPad(str, num) {
while (num-- > 0) {
str = ` ${str}`;
}
return str;
}
function assembleLines(lines, indent = 2) {
return lines.map(l => leftPad(l, indent)).join('\n');
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
"@babel/runtime": "^7.8.3",
"amd-name-resolver": "^1.2.1",
"babel-plugin-debug-macros": "^0.3.0",
"babel-plugin-ember-data-packages-polyfill": "^0.1.0",
"babel-plugin-ember-data-packages-polyfill": "^0.1.1",
"babel-plugin-ember-modules-api-polyfill": "^2.12.0",
"babel-plugin-module-resolver": "^3.1.1",
"broccoli-babel-transpiler": "^7.4.0",
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1569,10 +1569,10 @@ babel-plugin-dynamic-import-node@^2.3.0:
dependencies:
object.assign "^4.1.0"

babel-plugin-ember-data-packages-polyfill@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/babel-plugin-ember-data-packages-polyfill/-/babel-plugin-ember-data-packages-polyfill-0.1.0.tgz#fa63867de4a717df572776ba528d270ff74db125"
integrity sha512-MZBdY+i1aZuShfTDq2RIcuE8usGFsqle0+ziV0kZjf6nTzZjEILYRkiaXG6om6I7qKYYoS1Lcs8zsQA9ZJ1Xkw==
babel-plugin-ember-data-packages-polyfill@^0.1.1:
version "0.1.1"
resolved "https://registry.yarnpkg.com/babel-plugin-ember-data-packages-polyfill/-/babel-plugin-ember-data-packages-polyfill-0.1.1.tgz#428217228bedb95215bcaac6da83f59488b40edd"
integrity sha512-WQlevWS8RNNVCm4SNI6PogUMhH4Eu2ectRd/SVcKVnLnzaOHJjN9W1eaoQ9dwBidDgHhtXUbvkBSdLExaW+MYA==
dependencies:
"@ember-data/rfc395-data" "^0.0.4"

Expand Down

0 comments on commit 875af1a

Please sign in to comment.