Skip to content

Commit e3a76b2

Browse files
author
Kelly Selden
authored
Merge pull request #406 from kellyselden/shoebox-tests
add shoebox retrieve tests
2 parents 2d429ce + d0768dc commit e3a76b2

File tree

3 files changed

+108
-26
lines changed

3 files changed

+108
-26
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
"ember-export-application-global": "^1.0.5",
6565
"ember-load-initializers": "^0.6.0",
6666
"ember-resolver": "^2.0.3",
67+
"ember-sinon": "^0.7.0",
6768
"ember-source": "^2.12.0-beta.1",
6869
"fs-extra": "^1.0.0",
6970
"glob": "^7.0.0",
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
import { moduleFor, test } from 'ember-qunit';
2+
import sinon from 'sinon';
3+
4+
let sandbox;
5+
6+
moduleFor('service:fastboot', 'Unit | Service | fastboot | shoebox', {
7+
beforeEach() {
8+
sandbox = sinon.sandbox.create();
9+
},
10+
afterEach() {
11+
sandbox.restore();
12+
}
13+
});
14+
15+
test('retrieve returns value if isFastBoot false and key is cached', function(assert) {
16+
let service = this.subject();
17+
18+
service.set('shoebox.foo', 'bar');
19+
20+
assert.strictEqual(service.get('shoebox').retrieve('foo'), 'bar');
21+
});
22+
23+
test('retrieve returns undefined if isFastBoot false and shoebox is missing', function(assert) {
24+
let service = this.subject();
25+
26+
let stub = sandbox.stub(document, 'querySelector').withArgs('#shoebox-foo');
27+
28+
assert.strictEqual(service.get('shoebox').retrieve('foo'), undefined);
29+
30+
sinon.assert.calledOnce(stub);
31+
});
32+
33+
test('retrieve returns undefined if isFastBoot false and textContent is missing', function(assert) {
34+
let service = this.subject();
35+
36+
let stub = sandbox.stub(document, 'querySelector').withArgs('#shoebox-foo').returns({});
37+
38+
assert.strictEqual(service.get('shoebox').retrieve('foo'), undefined);
39+
40+
sinon.assert.calledOnce(stub);
41+
});
42+
43+
test('retrieve returns value if isFastBoot false and textContent is present', function(assert) {
44+
let service = this.subject();
45+
46+
let stub = sandbox.stub(document, 'querySelector').withArgs('#shoebox-foo').returns({
47+
textContent: '{"foo":"bar"}'
48+
});
49+
50+
assert.deepEqual(service.get('shoebox').retrieve('foo'), {
51+
foo: 'bar'
52+
});
53+
54+
sinon.assert.calledOnce(stub);
55+
});
56+
57+
test('retrieve returns undefined if isFastBoot true and shoebox is missing', function(assert) {
58+
let service = this.subject({
59+
isFastBoot: true,
60+
_fastbootInfo: {}
61+
});
62+
63+
assert.strictEqual(service.get('shoebox').retrieve('foo'), undefined);
64+
});
65+
66+
test('retrieve returns undefined if isFastBoot true and key is missing', function(assert) {
67+
let service = this.subject({
68+
isFastBoot: true,
69+
_fastbootInfo: {
70+
shoebox: {}
71+
}
72+
});
73+
74+
assert.strictEqual(service.get('shoebox').retrieve('foo'), undefined);
75+
});
76+
77+
test('retrieve returns value if isFastBoot true and key is present', function(assert) {
78+
let service = this.subject({
79+
isFastBoot: true,
80+
_fastbootInfo: {
81+
shoebox: {
82+
foo: 'bar'
83+
}
84+
}
85+
});
86+
87+
assert.strictEqual(service.get('shoebox').retrieve('foo'), 'bar');
88+
});

yarn.lock

Lines changed: 19 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,15 +1165,15 @@ broccoli-config-replace@^1.1.2:
11651165
fs-extra "^0.24.0"
11661166

11671167
broccoli-debug@^0.6.1:
1168-
version "0.6.1"
1169-
resolved "https://registry.yarnpkg.com/broccoli-debug/-/broccoli-debug-0.6.1.tgz#aec612ba8e5419952f44dc78be52bfabcbc087f6"
1168+
version "0.6.2"
1169+
resolved "https://registry.yarnpkg.com/broccoli-debug/-/broccoli-debug-0.6.2.tgz#4c6e89459fc3de7d5d4fc7b77e57f46019f44db1"
11701170
dependencies:
11711171
broccoli-plugin "^1.2.1"
11721172
fs-tree-diff "^0.5.2"
11731173
heimdalljs "^0.2.1"
11741174
heimdalljs-logger "^0.1.7"
11751175
minimatch "^3.0.3"
1176-
sanitize-filename "^1.6.1"
1176+
symlink-or-copy "^1.1.8"
11771177
tree-sync "^1.2.2"
11781178

11791179
broccoli-file-creator@^1.0.0:
@@ -1205,7 +1205,7 @@ broccoli-funnel-reducer@^1.0.0:
12051205
version "1.0.0"
12061206
resolved "https://registry.yarnpkg.com/broccoli-funnel-reducer/-/broccoli-funnel-reducer-1.0.0.tgz#11365b2a785aec9b17972a36df87eef24c5cc0ea"
12071207

1208-
broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.6, broccoli-funnel@^1.2.0:
1208+
broccoli-funnel@^1.0.0, broccoli-funnel@^1.0.1, broccoli-funnel@^1.0.6, broccoli-funnel@^1.1.0, broccoli-funnel@^1.2.0:
12091209
version "1.2.0"
12101210
resolved "https://registry.yarnpkg.com/broccoli-funnel/-/broccoli-funnel-1.2.0.tgz#cddc3afc5ff1685a8023488fff74ce6fb5a51296"
12111211
dependencies:
@@ -1250,7 +1250,7 @@ broccoli-lint-eslint@^3.3.0:
12501250
lodash.defaultsdeep "^4.6.0"
12511251
md5-hex "^2.0.0"
12521252

1253-
broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.1.0, broccoli-merge-trees@^1.1.1, broccoli-merge-trees@^1.1.4:
1253+
broccoli-merge-trees@^1.0.0, broccoli-merge-trees@^1.1.0, broccoli-merge-trees@^1.1.1, broccoli-merge-trees@^1.1.4, broccoli-merge-trees@^1.2.1:
12541254
version "1.2.4"
12551255
resolved "https://registry.yarnpkg.com/broccoli-merge-trees/-/broccoli-merge-trees-1.2.4.tgz#a001519bb5067f06589d91afa2942445a2d0fdb5"
12561256
dependencies:
@@ -1441,8 +1441,8 @@ can-symlink@^1.0.0:
14411441
tmp "0.0.28"
14421442

14431443
caniuse-lite@^1.0.30000670:
1444-
version "1.0.30000671"
1445-
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000671.tgz#c206c2f1a1feb34de46064407c4356818389bf1e"
1444+
version "1.0.30000672"
1445+
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000672.tgz#3f89b9907db78653f88bc4d056ed626e8ec74357"
14461446

14471447
capture-exit@^1.1.0:
14481448
version "1.2.0"
@@ -1968,8 +1968,8 @@ [email protected]:
19681968
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
19691969

19701970
electron-to-chromium@^1.3.11:
1971-
version "1.3.11"
1972-
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.11.tgz#744761df1d67b492b322ce9aa0aba5393260eb61"
1971+
version "1.3.12"
1972+
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.12.tgz#62f33e4a59b4855f0de4bb8972bf1b841b98b6d2"
19731973

19741974
ember-ajax@^2.4.1:
19751975
version "2.5.6"
@@ -2379,6 +2379,15 @@ ember-runtime-enumerable-includes-polyfill@^2.0.0:
23792379
ember-cli-babel "^6.0.0"
23802380
ember-cli-version-checker "^1.1.6"
23812381

2382+
ember-sinon@^0.7.0:
2383+
version "0.7.0"
2384+
resolved "https://registry.yarnpkg.com/ember-sinon/-/ember-sinon-0.7.0.tgz#41b83b5b1c71626db26e8ffb4a52cdab9c039a29"
2385+
dependencies:
2386+
broccoli-funnel "^1.1.0"
2387+
broccoli-merge-trees "^1.2.1"
2388+
ember-cli-babel "^5.1.7"
2389+
sinon "^2.1.0"
2390+
23822391
ember-source@^2.12.0-beta.1:
23832392
version "2.13.2"
23842393
resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-2.13.2.tgz#9fa9439a26515890981aa5d466f23da20adccff8"
@@ -5071,12 +5080,6 @@ sane@^1.1.1, sane@^1.6.0:
50715080
walker "~1.0.5"
50725081
watch "~0.10.0"
50735082

5074-
sanitize-filename@^1.6.1:
5075-
version "1.6.1"
5076-
resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.1.tgz#612da1c96473fa02dccda92dcd5b4ab164a6772a"
5077-
dependencies:
5078-
truncate-utf8-bytes "^1.0.0"
5079-
50805083
semver@^4.1.0, semver@^4.3.1:
50815084
version "4.3.6"
50825085
resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da"
@@ -5172,7 +5175,7 @@ simple-is@~0.2.0:
51725175
version "0.2.0"
51735176
resolved "https://registry.yarnpkg.com/simple-is/-/simple-is-0.2.0.tgz#2abb75aade39deb5cc815ce10e6191164850baf0"
51745177

5175-
sinon@^2.3.2:
5178+
sinon@^2.1.0, sinon@^2.3.2:
51765179
version "2.3.2"
51775180
resolved "https://registry.yarnpkg.com/sinon/-/sinon-2.3.2.tgz#c43a9c570f32baac1159505cfeed19108855df89"
51785181
dependencies:
@@ -5604,12 +5607,6 @@ trim-right@^1.0.0, trim-right@^1.0.1:
56045607
version "1.0.1"
56055608
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
56065609

5607-
truncate-utf8-bytes@^1.0.0:
5608-
version "1.0.2"
5609-
resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b"
5610-
dependencies:
5611-
utf8-byte-length "^1.0.1"
5612-
56135610
try-resolve@^1.0.0:
56145611
version "1.0.1"
56155612
resolved "https://registry.yarnpkg.com/try-resolve/-/try-resolve-1.0.1.tgz#cfde6fabd72d63e5797cfaab873abbe8e700e912"
@@ -5731,10 +5728,6 @@ [email protected]:
57315728
version "1.0.1"
57325729
resolved "https://registry.yarnpkg.com/username-sync/-/username-sync-1.0.1.tgz#1cde87eefcf94b8822984d938ba2b797426dae1f"
57335730

5734-
utf8-byte-length@^1.0.1:
5735-
version "1.0.4"
5736-
resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
5737-
57385731
util-deprecate@^1.0.2, util-deprecate@~1.0.1:
57395732
version "1.0.2"
57405733
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"

0 commit comments

Comments
 (0)