Skip to content

Commit

Permalink
Merge pull request #17403 from rwjblue/fix-legacy-template-compiler
Browse files Browse the repository at this point in the history
[BUGFIX release] Ensure legacy build of template compiler can be loaded.
  • Loading branch information
rwjblue authored Dec 21, 2018
2 parents b20aacb + 03be800 commit 1f96b17
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 31 deletions.
1 change: 1 addition & 0 deletions ember-cli-build.js
Original file line number Diff line number Diff line change
Expand Up @@ -209,6 +209,7 @@ function buildBundles(packagesES, dependenciesES, templateCompilerDependenciesES
'@ember/polyfills/index.js',
'@ember/polyfills/lib/**',
'ember/version.js',
'ember-babel.js',
'ember-template-compiler/**',
],
}),
Expand Down
80 changes: 49 additions & 31 deletions tests/node/template-compiler-test.js
Original file line number Diff line number Diff line change
@@ -1,49 +1,67 @@
var path = require('path');

var distPath = path.join(__dirname, '../../dist');
var templateCompilerPath = path.join(distPath, 'ember-template-compiler');

var module = QUnit.module;
var test = QUnit.test;

var templateCompiler;

module('ember-template-compiler.js', function(hooks) {
hooks.beforeEach(function() {
templateCompiler = require(templateCompilerPath);
});
module('ember-template-compiler.js', function() {
['', 'legacy'].forEach(type => {
module(`${type || 'modern'}`, function(hooks) {
hooks.beforeEach(function() {
this.templateCompilerPath = path.resolve(
path.join(distPath, type, 'ember-template-compiler.js')
);
templateCompiler = require(this.templateCompilerPath);
});

hooks.afterEach(function() {
// clear the previously cached version of this module
delete require.cache[templateCompilerPath + '.js'];
});
hooks.afterEach(function() {
// clear the previously cached version of this module
delete require.cache[this.templateCompilerPath];
});

test('can be required', function(assert) {
assert.strictEqual(
typeof templateCompiler.precompile,
'function',
'precompile function is present'
);
assert.strictEqual(typeof templateCompiler.compile, 'function', 'compile function is present');
});
test('can be required', function(assert) {
assert.strictEqual(
typeof templateCompiler.precompile,
'function',
'precompile function is present'
);
assert.strictEqual(
typeof templateCompiler.compile,
'function',
'compile function is present'
);
});

test('can access _Ember.ENV (private API used by ember-cli-htmlbars)', function(assert) {
assert.equal(typeof templateCompiler._Ember.ENV, 'object', '_Ember.ENV is present');
assert.notEqual(typeof templateCompiler._Ember.ENV, null, '_Ember.ENV is not null');
});
test('can access _Ember.ENV (private API used by ember-cli-htmlbars)', function(assert) {
assert.equal(typeof templateCompiler._Ember.ENV, 'object', '_Ember.ENV is present');
assert.notEqual(typeof templateCompiler._Ember.ENV, null, '_Ember.ENV is not null');
});

test('can access _Ember.FEATURES (private API used by ember-cli-htmlbars)', function(assert) {
assert.equal(typeof templateCompiler._Ember.FEATURES, 'object', '_Ember.FEATURES is present');
assert.notEqual(typeof templateCompiler._Ember.FEATURES, null, '_Ember.FEATURES is not null');
});
test('can access _Ember.FEATURES (private API used by ember-cli-htmlbars)', function(assert) {
assert.equal(
typeof templateCompiler._Ember.FEATURES,
'object',
'_Ember.FEATURES is present'
);
assert.notEqual(
typeof templateCompiler._Ember.FEATURES,
null,
'_Ember.FEATURES is not null'
);
});

test('can access _Ember.VERSION (private API used by ember-cli-htmlbars)', function(assert) {
assert.equal(typeof templateCompiler._Ember.VERSION, 'string', '_Ember.VERSION is present');
});
test('can access _Ember.VERSION (private API used by ember-cli-htmlbars)', function(assert) {
assert.equal(typeof templateCompiler._Ember.VERSION, 'string', '_Ember.VERSION is present');
});

test('can generate a template with a server side generated `id`', function(assert) {
var TemplateJSON = JSON.parse(templateCompiler.precompile('<div>simple text</div>'));
test('can generate a template with a server side generated `id`', function(assert) {
var TemplateJSON = JSON.parse(templateCompiler.precompile('<div>simple text</div>'));

assert.ok(TemplateJSON.id, 'an `id` was generated');
assert.ok(TemplateJSON.id, 'an `id` was generated');
});
});
});
});

0 comments on commit 1f96b17

Please sign in to comment.