Skip to content

Commit f5f1eb4

Browse files
committed
Fix standard errors
1 parent d6a4b79 commit f5f1eb4

File tree

5 files changed

+24
-30
lines changed

5 files changed

+24
-30
lines changed

lib/serialize.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,8 @@ module.exports = function (app, defaults) {
8383
var relation = model.relations[relationName]
8484
if (relationName && relation) {
8585
if (relation.polymorphic && utils.relationFkOnModelFrom(relation)) {
86-
var discriminator = utils.clone(ctx.instance)[
87-
relation.polymorphic.discriminator
88-
]
86+
let discriminator = relation.polymorphic.discriminator
87+
discriminator = utils.clone(ctx.instance)[discriminator]
8988
relatedModel = app.models[discriminator]
9089
} else {
9190
relatedModel = relation.modelTo

lib/serializer.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -403,10 +403,8 @@ function handleIncludes (resp, includes, relations, options) {
403403
)
404404
})
405405
embeds = _.compact(embeds)
406-
407-
resource.relationships[include].data = resource.attributes[
408-
include
409-
].map(function (relData) {
406+
const included = resource.attributes[include]
407+
resource.relationships[include].data = included.map(relData => {
410408
return {
411409
id: String(relData[propertyKey]),
412410
type: plural

test/hasMany.test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,10 @@ describe('loopback json api hasMany relationships', function () {
267267
function (done) {
268268
request(app).get('/posts?include=comments').end(function (err, res) {
269269
expect(err).to.equal(null)
270+
const relatedReplies = id => {
271+
const included = res.body.included
272+
return included[id].relationships.replies.links.related
273+
}
270274
expect(res.body.included).to.be.an('array')
271275
expect(res.body.included.length).to.equal(2)
272276
expect(res.body.data[0].attributes).to.not.have.keys('comments')
@@ -280,9 +284,7 @@ describe('loopback json api hasMany relationships', function () {
280284
relationships: {
281285
replies: {
282286
links: {
283-
related: res.body.included[
284-
0
285-
].relationships.replies.links.related
287+
related: relatedReplies(0)
286288
}
287289
}
288290
}
@@ -297,9 +299,7 @@ describe('loopback json api hasMany relationships', function () {
297299
relationships: {
298300
replies: {
299301
links: {
300-
related: res.body.included[
301-
1
302-
].relationships.replies.links.related
302+
related: relatedReplies(1)
303303
}
304304
}
305305
}

test/hasManyPolymorphic.test.js

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -88,20 +88,16 @@ describe('loopback json api hasMany polymorphic relationships', function () {
8888
request(app).get('/posts/1').end(function (err, res) {
8989
expect(err).to.equal(null)
9090
expect(res.body).to.not.have.key('errors')
91-
request(app)
92-
.get(
93-
res.body.data.relationships.resources.links.related.split('api')[
94-
1
95-
]
96-
)
97-
.end(function (err, res) {
98-
expect(err).to.equal(null)
99-
expect(res.body).to.not.have.key('errors')
100-
expect(res.body.data).to.be.an('array')
101-
expect(res.body.data[0].type).to.equal('resources')
102-
expect(res.body.data[0].id).to.equal('1')
103-
done()
104-
})
91+
const relationships = res.body.data.relationships
92+
const url = relationships.resources.links.related.split('api')[1]
93+
request(app).get(url).end(function (err, res) {
94+
expect(err).to.equal(null)
95+
expect(res.body).to.not.have.key('errors')
96+
expect(res.body.data).to.be.an('array')
97+
expect(res.body.data[0].type).to.equal('resources')
98+
expect(res.body.data[0].id).to.equal('1')
99+
done()
100+
})
105101
})
106102
}
107103
)

test/hasManyRelationships.test.js

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,9 @@ describe('loopback json api hasMany relationships', function () {
9898
})
9999
expect(res.body.included).to.be.an('array')
100100
expect(res.body.included.length).to.equal(3)
101+
const relatedPostLink = id => {
102+
return res.body.included[0].relationships.posts.links.related
103+
}
101104
expect(res.body.included[0]).to.deep.equal({
102105
id: '1',
103106
type: 'authors',
@@ -108,9 +111,7 @@ describe('loopback json api hasMany relationships', function () {
108111
relationships: {
109112
posts: {
110113
links: {
111-
related: res.body.included[
112-
0
113-
].relationships.posts.links.related
114+
related: relatedPostLink(0)
114115
}
115116
}
116117
}

0 commit comments

Comments
 (0)