Skip to content

Commit df3ef28

Browse files
committed
Add tests
1 parent 261495d commit df3ef28

5 files changed

Lines changed: 75 additions & 26 deletions

File tree

addon/instance-initializers/clear-double-boot.js

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,29 @@
66
//
77
// This removes any pre-rendered ember-view elements, so that the booting
88
// application will replace the pre-rendered output
9-
9+
export function clearHtml() {
10+
let current = document.getElementById('fastboot-body-start');
11+
if (current) {
12+
let endMarker = document.getElementById('fastboot-body-end');
13+
let parent = current.parentElement;
14+
let nextNode;
15+
do {
16+
nextNode = current.nextSibling;
17+
parent.removeChild(current);
18+
current = nextNode;
19+
} while (nextNode && nextNode !== endMarker);
20+
parent.removeChild(endMarker);
21+
}
22+
}
1023
export default {
1124
name: "clear-double-boot",
1225

13-
initialize: function(instance) {
26+
initialize(instance) {
1427
if (typeof FastBoot === 'undefined') {
1528
var originalDidCreateRootView = instance.didCreateRootView;
1629

1730
instance.didCreateRootView = function() {
18-
let current = document.getElementById('fastboot-body-start');
19-
if (current) {
20-
let endMarker = document.getElementById('fastboot-body-end');
21-
let parent = current.parentElement;
22-
let nextNode;
23-
do {
24-
nextNode = current.nextSibling;
25-
parent.removeChild(current);
26-
current = nextNode;
27-
} while(nextNode && nextNode !== endMarker);
28-
parent.removeChild(endMarker);
29-
}
31+
clearHtml();
3032
originalDidCreateRootView.apply(instance, arguments);
3133
};
3234
}

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
"chalk": "^2.0.1",
2828
"ember-cli-babel": "^6.7.2",
2929
"ember-cli-lodash-subset": "2.0.1",
30-
"ember-cli-version-checker": "^2.1.0",
3130
"ember-cli-preprocess-registry": "^3.1.0",
31+
"ember-cli-version-checker": "^2.1.0",
3232
"fastboot": "^1.1.3",
3333
"fastboot-express-middleware": "^1.1.0",
3434
"fastboot-transform": "^0.1.2",
@@ -52,13 +52,14 @@
5252
"ember-cli-htmlbars": "^2.0.2",
5353
"ember-cli-htmlbars-inline-precompile": "^1.0.2",
5454
"ember-cli-inject-live-reload": "^1.4.1",
55-
"ember-cli-qunit": "^4.2.1",
55+
"ember-cli-qunit": "^4.3.0",
5656
"ember-cli-shims": "^1.2.0",
5757
"ember-cli-sri": "^2.1.0",
5858
"ember-cli-uglify": "^2.0.0",
5959
"ember-disable-prototype-extensions": "^1.1.2",
6060
"ember-export-application-global": "^2.0.0",
6161
"ember-load-initializers": "^1.0.0",
62+
"ember-maybe-import-regenerator-for-testing": "^1.0.0",
6263
"ember-resolver": "^4.3.0",
6364
"ember-sinon": "^1.0.0",
6465
"ember-source": "~2.18.0",

test/response-details-test.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,17 @@ describe('response details', function() {
5353
expect(response.statusCode).to.equal(418);
5454
});
5555
});
56+
57+
it('the body is contained between markers', function () {
58+
return get({
59+
url: 'http://localhost:49741/',
60+
headers: {
61+
'Accept': 'text/html'
62+
}
63+
})
64+
.then(function (response) {
65+
expect(response.body).to.contain('<script type="x/boundary" id="fastboot-body-start"></script>')
66+
expect(response.body).to.contain('<script type="x/boundary" id="fastboot-body-end"></script>')
67+
});
68+
});
5669
});
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { module, test } from 'qunit';
2+
import { setupRenderingTest } from 'ember-qunit';
3+
import { render } from '@ember/test-helpers';
4+
import hbs from 'htmlbars-inline-precompile';
5+
import { clearHtml } from 'ember-cli-fastboot/instance-initializers/clear-double-boot';
6+
7+
module('Instance-initializer: clear-double-boot', function(hooks) {
8+
setupRenderingTest(hooks);
9+
10+
test('It removes the fastboot markers and anything between them', async function(assert) {
11+
await render(hbs`
12+
<script type="x/boundary" id="fastboot-body-start"></script>
13+
<div id="content-in-between"></div>
14+
<script type="x/boundary" id="fastboot-body-end"></script>
15+
`);
16+
clearHtml();
17+
assert.notOk(this.element.querySelector('#fastboot-body-start'), 'There is no start marker');
18+
assert.notOk(this.element.querySelector('#fastboot-body-end'), 'There is no end marker');
19+
assert.notOk(this.element.querySelector('#content-in-between'), 'The content is between is gone');
20+
});
21+
});

yarn.lock

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2076,7 +2076,7 @@ ember-cli-addon-tests@^0.11.0:
20762076
symlink-or-copy "^1.1.3"
20772077
temp "^0.8.3"
20782078

2079-
ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.10.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.7.2, ember-cli-babel@^6.8.1:
2079+
ember-cli-babel@^6.0.0, ember-cli-babel@^6.0.0-beta.7, ember-cli-babel@^6.10.0, ember-cli-babel@^6.3.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.7.2, ember-cli-babel@^6.8.1:
20802080
version "6.11.0"
20812081
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-6.11.0.tgz#79cb184bac3c05bfe181ddc306bac100ab1f9493"
20822082
dependencies:
@@ -2210,12 +2210,12 @@ ember-cli-preprocess-registry@^3.1.0:
22102210
process-relative-require "^1.0.0"
22112211
silent-error "^1.0.0"
22122212

2213-
ember-cli-qunit@^4.2.1:
2214-
version "4.2.1"
2215-
resolved "https://registry.yarnpkg.com/ember-cli-qunit/-/ember-cli-qunit-4.2.1.tgz#89580e6eb157ee98b9eefbd48fba9bb75ea64544"
2213+
ember-cli-qunit@^4.3.0:
2214+
version "4.3.0"
2215+
resolved "https://registry.yarnpkg.com/ember-cli-qunit/-/ember-cli-qunit-4.3.0.tgz#1ce65dea553d18f5fd9b6b08d3d5128afb2ab94e"
22162216
dependencies:
22172217
ember-cli-babel "^6.8.1"
2218-
ember-qunit "^3.2.2"
2218+
ember-qunit "^3.3.0"
22192219

22202220
ember-cli-shims@^1.2.0:
22212221
version "1.2.0"
@@ -2374,17 +2374,25 @@ ember-load-initializers@^1.0.0:
23742374
dependencies:
23752375
ember-cli-babel "^6.0.0-beta.7"
23762376

2377-
ember-qunit@^3.2.2:
2378-
version "3.2.2"
2379-
resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-3.2.2.tgz#96c8818ecfa3894580a3dc805f7e7f1e82e07c4a"
2377+
ember-maybe-import-regenerator-for-testing@^1.0.0:
2378+
version "1.0.0"
2379+
resolved "https://registry.yarnpkg.com/ember-maybe-import-regenerator-for-testing/-/ember-maybe-import-regenerator-for-testing-1.0.0.tgz#894b8089c5b3067c920b492c81233603852d5c2f"
2380+
dependencies:
2381+
broccoli-funnel "^1.0.1"
2382+
ember-cli-babel "^6.6.0"
2383+
regenerator-runtime "^0.9.5"
2384+
2385+
ember-qunit@^3.3.0:
2386+
version "3.3.0"
2387+
resolved "https://registry.yarnpkg.com/ember-qunit/-/ember-qunit-3.3.0.tgz#98c0c8d9473808fa7be48808989255cbfa70e760"
23802388
dependencies:
23812389
"@ember/test-helpers" "^0.7.9"
23822390
broccoli-funnel "^2.0.1"
23832391
broccoli-merge-trees "^2.0.0"
23842392
common-tags "^1.4.0"
23852393
ember-cli-babel "^6.3.0"
23862394
ember-cli-test-loader "^2.2.0"
2387-
qunit "^2.4.1"
2395+
qunit "^2.5.0"
23882396

23892397
ember-resolver@^4.3.0:
23902398
version "4.5.0"
@@ -5287,7 +5295,7 @@ quick-temp@^0.1.0, quick-temp@^0.1.2, quick-temp@^0.1.3, quick-temp@^0.1.5, quic
52875295
rimraf "^2.5.4"
52885296
underscore.string "~3.3.4"
52895297

5290-
qunit@^2.4.1:
5298+
qunit@^2.5.0:
52915299
version "2.5.0"
52925300
resolved "https://registry.yarnpkg.com/qunit/-/qunit-2.5.0.tgz#64cbe30a1193ef02edc5b278efcdf1d0bae96b22"
52935301
dependencies:
@@ -5423,6 +5431,10 @@ regenerator-runtime@^0.11.0:
54235431
version "0.11.1"
54245432
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
54255433

5434+
regenerator-runtime@^0.9.5:
5435+
version "0.9.6"
5436+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.9.6.tgz#d33eb95d0d2001a4be39659707c51b0cb71ce029"
5437+
54265438
regenerator-transform@^0.10.0:
54275439
version "0.10.1"
54285440
resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd"

0 commit comments

Comments
 (0)