From 54e5f929ac2000992410889bb166bbb5cdff9624 Mon Sep 17 00:00:00 2001 From: Rodrigo Duarte Date: Thu, 14 Nov 2019 17:28:44 -0300 Subject: [PATCH 1/3] initial fix --- addon/serializer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addon/serializer.js b/addon/serializer.js index 9cc699d..1732cc5 100644 --- a/addon/serializer.js +++ b/addon/serializer.js @@ -44,7 +44,7 @@ export default DS.JSONSerializer.extend(DS.EmbeddedRecordsMixin, { payloadKey = this.keyForAttribute(key); } - json[payloadKey] = value; + json[payloadKey] = typeof value !== 'undefined' ? value : null; } }, From d100641f362e1cfb8d4075662ecd4ff6396aec42 Mon Sep 17 00:00:00 2001 From: Rodrigo Duarte Date: Thu, 14 Nov 2019 17:52:20 -0300 Subject: [PATCH 2/3] test --- tests/integration/serializer-test.js | 32 +++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/tests/integration/serializer-test.js b/tests/integration/serializer-test.js index 0623a5f..bc60fa9 100644 --- a/tests/integration/serializer-test.js +++ b/tests/integration/serializer-test.js @@ -4,7 +4,7 @@ import DS from 'ember-data'; import { module, test } from 'qunit'; let env, store; -let Address, Blog, Profile, Post, User; +let Address, Blog, Profile, Post, User, NullUndefined; module("integration/serializer - GraphQL serializer", { beforeEach() { @@ -31,10 +31,16 @@ module("integration/serializer - GraphQL serializer", { profile: DS.belongsTo('profile', { async: false }) }); + NullUndefined = DS.Model.extend({ + undefinedStringField: DS.attr('string'), + nullStringField: DS.attr('string'), + }); + env = setupStore({ adapter: '-graphql', address: Address, blog: Blog, + nullUndefined: NullUndefined, post: Post, profile: Profile, user: User @@ -367,6 +373,30 @@ test('serialize - simple', function(assert) { }); }); +test('serialize - extra simple null undefined cases', function(assert) { + assert.expect(1); + + run(function() { + store.push({ + data: { + type: 'null-undefined', + id: '1', + attributes: { nullStringField: null, undefinedStringField: undefined }, + } + }); + }); + + let expected = { + 'nullStringField': null, + 'undefinedStringField': null + }; + + run(function() { + let entity = store.peekRecord('null-undefined', 1); + assert.deepEqual(entity.serialize(), expected); + }); +}); + test('serialize - complex', function(assert) { assert.expect(1); From b08ac43f3b1acc06d4374bbceb2774e15c1d7673 Mon Sep 17 00:00:00 2001 From: Rodrigo Duarte Date: Thu, 21 Nov 2019 10:02:32 -0300 Subject: [PATCH 3/3] bump version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b357b67..db951be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ember-graphql-adapter", - "version": "1.1.3", + "version": "1.1.4", "description": "An Ember CLI adapter for GraphQL", "keywords": [ "ember-addon"