Skip to content

Commit 0a77bbc

Browse files
authored
Fix Ember Data najax errors (#240)
1 parent 019b63c commit 0a77bbc

File tree

6 files changed

+2697
-2934
lines changed

6 files changed

+2697
-2934
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ language: node_js
33
sudo: false
44
dist: trusty
55
node_js:
6-
- "8"
6+
- "10"
77

88
addons:
99
chrome: stable

config/ember-try.js

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,101 @@
1-
'use strict';
1+
"use strict";
22

3-
const getChannelURL = require('ember-source-channel-url');
3+
const getChannelURL = require("ember-source-channel-url");
44

55
module.exports = function() {
66
return Promise.all([
7-
getChannelURL('release'),
8-
getChannelURL('beta'),
9-
getChannelURL('canary')
10-
]).then((urls) => {
7+
getChannelURL("release"),
8+
getChannelURL("beta"),
9+
getChannelURL("canary")
10+
]).then(urls => {
1111
return {
1212
useYarn: true,
1313
scenarios: [
1414
{
15-
name: 'ember-lts-2.8',
16-
bower: {
17-
dependencies: {
18-
'ember': 'components/ember#lts-2-8'
19-
},
20-
resolutions: {
21-
'ember': 'lts-2-8'
22-
}
23-
},
24-
npm: {
25-
devDependencies: {
26-
'ember-source': null,
27-
'ember-cli-head': '0.3.1'
28-
}
29-
}
30-
},
31-
{
32-
name: 'ember-lts-2.18',
15+
name: "ember-lts-2.18",
3316
npm: {
3417
devDependencies: {
35-
'ember-source': '~2.18.0'
18+
"ember-source": "~2.18.0",
19+
"ember-data": "~2.18.0"
3620
}
3721
}
3822
},
3923
{
40-
name: 'ember-lts-3.4',
24+
name: "ember-lts-3.4",
4125
npm: {
4226
devDependencies: {
43-
'ember-source': '~3.4.0'
27+
"ember-source": "~3.4.0",
28+
"ember-data": "~3.4.0"
4429
}
4530
}
4631
},
4732
{
48-
name: 'ember-lts-3.8',
33+
name: "ember-lts-3.8",
4934
npm: {
5035
devDependencies: {
51-
'ember-source': '~3.8.0'
36+
"ember-source": "~3.8.0",
37+
"ember-data": "~3.8.0"
5238
}
5339
}
5440
},
5541
{
56-
name: 'ember-lts-3.12',
42+
name: "ember-lts-3.12",
5743
npm: {
5844
devDependencies: {
59-
'ember-source': '~3.12.0'
45+
"ember-source": "~3.12.0",
46+
"ember-data": "~3.12.0"
47+
},
48+
resolutions: {
49+
"ember-data": "~3.12.0"
6050
}
6151
}
6252
},
6353
{
64-
name: 'fastboot-1.2',
54+
name: "fastboot-1.2",
6555
npm: {
6656
devDependencies: {
67-
'ember-source': '~3.4.0',
68-
'fastboot': '~1.2.0'
57+
"ember-source": "~3.4.0",
58+
"ember-data": "~3.4.0",
59+
fastboot: "~1.2.0"
6960
}
7061
}
7162
},
7263
{
73-
name: 'ember-release',
64+
name: "ember-release",
7465
npm: {
7566
devDependencies: {
76-
'ember-source': urls[0]
67+
"ember-source": urls[0],
68+
// at the time of writing this the current 'latest' of ember-data is
69+
// 3.15, which is broken in fastboot. we're going to use 3.13 since it's
70+
// the closest working version
71+
"ember-data": "~3.13.0"
72+
},
73+
resolutions: {
74+
"ember-data": "~3.13.0"
7775
}
7876
}
7977
},
8078
{
81-
name: 'ember-beta',
79+
name: "ember-beta",
8280
npm: {
8381
devDependencies: {
84-
'ember-source': urls[1]
82+
"ember-source": urls[1],
83+
"ember-data": "beta"
84+
},
85+
resolutions: {
86+
"ember-data": "beta"
8587
}
8688
}
8789
},
8890
{
89-
name: 'ember-canary',
91+
name: "ember-canary",
9092
npm: {
9193
devDependencies: {
92-
'ember-source': urls[2]
94+
"ember-source": urls[2],
95+
"ember-data": "canary"
96+
},
97+
resolutions: {
98+
"ember-data": "canary"
9399
}
94100
}
95101
}

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"broccoli-plugin": "^3.0.0",
3838
"broccoli-stew": "^3.0.0",
3939
"ember-cli": "~3.1.4",
40-
"ember-cli-addon-docs": "0.6.14",
40+
"ember-cli-addon-docs": "0.6.16",
4141
"ember-cli-addon-docs-yuidoc": "^0.2.1",
4242
"ember-cli-dependency-checker": "^3.2.0",
4343
"ember-cli-deploy": "^1.0.2",
@@ -48,13 +48,13 @@
4848
"ember-cli-fastboot": "^2.1.1",
4949
"ember-cli-head": "^0.4.1",
5050
"ember-cli-htmlbars": "^4.0.1",
51-
"ember-cli-htmlbars-inline-precompile": "^3.0.0",
5251
"ember-cli-inject-live-reload": "^2.0.1",
5352
"ember-cli-mirage": "^1.1.0-beta.2",
5453
"ember-cli-qunit": "^4.3.2",
5554
"ember-cli-shims": "^1.2.0",
5655
"ember-cli-sri": "^2.1.0",
5756
"ember-cli-uglify": "^3.0.0",
57+
"ember-data": "~3.2.0",
5858
"ember-disable-prototype-extensions": "^1.1.2",
5959
"ember-export-application-global": "^2.0.0",
6060
"ember-fetch": "^7.0.0",
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
1-
import Route from '@ember/routing/route';
1+
import Route from "@ember/routing/route";
22

33
export default Route.extend({
4-
54
async model() {
6-
return this.store.findAll('note');
5+
return this.store.findAll("note");
76
}
8-
97
});

tests/fastboot/network-mocking-test.js

Lines changed: 44 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,100 +1,98 @@
1-
import { module, test } from 'qunit';
2-
import { setup, visit, mockServer } from 'ember-cli-fastboot-testing/test-support';
3-
4-
module('Fastboot | network mocking', function(hooks) {
1+
import { module, test } from "qunit";
2+
import {
3+
setup,
4+
visit,
5+
mockServer
6+
} from "ember-cli-fastboot-testing/test-support";
7+
8+
module("Fastboot | network mocking", function(hooks) {
59
setup(hooks);
610

7-
test('it will not change an endpoint that already exists', async function(assert) {
8-
await visit('/examples/network/other/echo?message=hello%20world');
11+
test("it will not change an endpoint that already exists", async function(assert) {
12+
await visit("/examples/network/other/echo?message=hello%20world");
913
assert.dom('[data-test-id="echo"]').hasText("hello world");
1014
});
1115

12-
test('it can mock an array of models', async function(assert) {
13-
await mockServer.get('/api/notes', {
16+
test("it can mock an array of models", async function(assert) {
17+
await mockServer.get("/api/notes", {
1418
data: [
1519
{
16-
type: 'note',
17-
id: '1',
20+
type: "note",
21+
id: "1",
1822
attributes: {
19-
title: 'test note'
23+
title: "test note"
2024
}
2125
},
2226
{
23-
type: 'note',
24-
id: '2',
27+
type: "note",
28+
id: "2",
2529
attributes: {
26-
title: 'test 2'
30+
title: "test 2"
2731
}
2832
}
2933
]
3034
});
3135

32-
await visit('/examples/network/notes');
36+
await visit("/examples/network/notes");
3337

34-
assert.dom('[data-test-id="title-1"]').hasText("test note")
35-
assert.dom('[data-test-id="title-2"]').hasText("test 2")
38+
assert.dom('[data-test-id="title-1"]').hasText("test note");
39+
assert.dom('[data-test-id="title-2"]').hasText("test 2");
3640
});
3741

38-
test('it can mock a single model', async function(assert) {
39-
await mockServer.get('/api/notes/1', {
42+
test("it can mock a single model", async function(assert) {
43+
await mockServer.get("/api/notes/1", {
4044
data: {
4145
type: "note",
4246
id: "1",
4347
attributes: {
44-
title: 'test note'
48+
title: "test note"
4549
}
4650
}
4751
});
4852

49-
await visit('/examples/network/notes/1');
53+
await visit("/examples/network/notes/1");
5054

5155
assert.dom('[data-test-id="title"]').hasText("test note");
5256
});
5357

54-
test('it can mock 404s', async function(assert) {
58+
test("it can mock 404s", async function(assert) {
5559
await mockServer.get(
56-
'/api/notes/1',
60+
"/api/notes/1",
5761
{
58-
errors: [
59-
{ title: "Not found" }
60-
]
62+
errors: [{ title: "Not found" }]
6163
},
6264
404
6365
);
6466

65-
await visit('/examples/network/notes/1');
67+
await visit("/examples/network/notes/1");
6668

67-
assert.dom().includesText('Ember Data Request GET /api/notes/1 returned a 404');
69+
assert
70+
.dom()
71+
.includesText("Ember Data Request GET /api/notes/1 returned a 404");
6872
});
6973

70-
test('it can mock a get request', async function(assert) {
71-
await mockServer.get('/api/notes', [
72-
{ id: 1, title: 'get note'},
73-
]);
74+
test("it can mock a get request", async function(assert) {
75+
await mockServer.get("/api/notes", [{ id: 1, title: "get note" }]);
7476

75-
await visit('/examples/network/other/get-request');
77+
await visit("/examples/network/other/get-request");
7678

77-
assert.dom('[data-test-id="title-1"]').hasText("get note")
79+
assert.dom('[data-test-id="title-1"]').hasText("get note");
7880
});
7981

80-
test('it can mock a post request', async function(assert) {
81-
await mockServer.post('/api/notes', [
82-
{ id: 1, title: 'post note'},
83-
]);
82+
test("it can mock a post request", async function(assert) {
83+
await mockServer.post("/api/notes", [{ id: 1, title: "post note" }]);
8484

85-
await visit('/examples/network/other/post-request');
85+
await visit("/examples/network/other/post-request");
8686

87-
assert.dom('[data-test-id="title-1"]').hasText("post note")
87+
assert.dom('[data-test-id="title-1"]').hasText("post note");
8888
});
8989

90-
test('it can mock a large response', async function(assert) {
91-
let title = 'a'.repeat(1024 * 1024 * 5); // 5 MB
90+
test("it can mock a large response", async function(assert) {
91+
let title = "a".repeat(1024 * 1024 * 5); // 5 MB
9292

93-
await mockServer.get('/api/notes', [
94-
{ id: 1, title },
95-
]);
93+
await mockServer.get("/api/notes", [{ id: 1, title }]);
9694

97-
await visit('/examples/network/other/get-request');
95+
await visit("/examples/network/other/get-request");
9896

9997
assert.dom('[data-test-id="title-1"]').exists();
10098
});

0 commit comments

Comments
 (0)