Skip to content

Commit 067283c

Browse files
committed
fix(serializer): support reflexive relationships
1 parent 4fda519 commit 067283c

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

lib/serializer.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ function parseRelations (data, relations, options) {
256256

257257
var relationship = null
258258

259-
if (!_.isUndefined(fk)) {
259+
if (!_.isUndefined(fk) && relation.modelTo !== relation.modelFrom) {
260260
if (_.isArray(fk)) {
261261
relationship = makeRelations(toType, fk, options)
262262
} else {

test/reflexiveRelationship.test.js

+4-6
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ var request = require('supertest')
44
var loopback = require('loopback')
55
var expect = require('chai').expect
66
var JSONAPIComponent = require('../')
7-
var RSVP = require('rsvp')
87

9-
var app, Folder;
8+
var app, Folder
109

1110
describe('reflexive relationship', function () {
1211
beforeEach(function (done) {
@@ -42,7 +41,6 @@ describe('reflexive relationship', function () {
4241
JSONAPIComponent(app, { restApiRoot: '' })
4342
})
4443

45-
4644
it('should make initial data', function (done) {
4745
request(app).get('/folders').end(function (err, res) {
4846
expect(err).to.equal(null)
@@ -55,9 +53,9 @@ describe('reflexive relationship', function () {
5553
request(app).get('/folders/1/children').end(function (err, res) {
5654
expect(err).to.equal(null)
5755
expect(res.body.data.length).to.equal(2)
58-
expect(res.body.data[0].relationships.children.data).to.equal(null)
59-
expect(res.body.data[1].relationships.children.data).to.be.an('array')
56+
expect(res.body.data[0].relationships.children.data).to.equal(undefined)
57+
expect(res.body.data[1].relationships.children.data).to.equal(undefined)
6058
done(err)
6159
})
6260
})
63-
})
61+
})

0 commit comments

Comments
 (0)