From 1254a6be3743d21b2d99131d50b9487eec99ac92 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Fri, 11 Sep 2020 11:04:15 -0400 Subject: [PATCH] feat: Normalize host_set_id in target host sets response --- .../addon/serializers/fragment-host-set.js | 18 ++++++++++++ .../api/app/serializers/fragment-host-set.js | 1 + .../serializers/fragment-host-set-test.js | 28 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 addons/api/addon/serializers/fragment-host-set.js create mode 100644 addons/api/app/serializers/fragment-host-set.js create mode 100644 addons/api/tests/unit/serializers/fragment-host-set-test.js diff --git a/addons/api/addon/serializers/fragment-host-set.js b/addons/api/addon/serializers/fragment-host-set.js new file mode 100644 index 000000000..e073397ec --- /dev/null +++ b/addons/api/addon/serializers/fragment-host-set.js @@ -0,0 +1,18 @@ +import JSONSerializer from '@ember-data/serializer/json'; + +export default class FragmentHostSetSerializer extends JSONSerializer { + + // =methods + + /** + * Renames `id` to `host_set_id` because fragments may not have IDs. + * Otherwise normalizes as normal. + * @param {ModelClass} typeClass + * @param {object} resourceHash + * @return {object} + */ + normalize(typeClass, { id: host_set_id, ...obj }) { + return super.normalize(typeClass, { host_set_id, ...obj }); + } + +} diff --git a/addons/api/app/serializers/fragment-host-set.js b/addons/api/app/serializers/fragment-host-set.js new file mode 100644 index 000000000..62d638912 --- /dev/null +++ b/addons/api/app/serializers/fragment-host-set.js @@ -0,0 +1 @@ +export { default } from 'api/serializers/fragment-host-set'; diff --git a/addons/api/tests/unit/serializers/fragment-host-set-test.js b/addons/api/tests/unit/serializers/fragment-host-set-test.js new file mode 100644 index 000000000..beebfd245 --- /dev/null +++ b/addons/api/tests/unit/serializers/fragment-host-set-test.js @@ -0,0 +1,28 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; +import FragmentHostSet from 'api/models/fragment-host-set'; + +module('Unit | Serializer | fragment host set', function(hooks) { + setupTest(hooks); + + test('it normalizes `id` into `host_set_id`', function(assert) { + assert.expect(1); + const store = this.owner.lookup('service:store'); + const serializer = store.serializerFor('fragment-host-set'); + const normalized = serializer.normalize(FragmentHostSet, { + host_set_id: '2', + host_catalog_id: '1' + }); + assert.deepEqual(normalized, { + data: { + attributes: { + host_set_id: '2', + host_catalog_id: '1' + }, + id: null, + relationships: {}, + type: 'fragment-host-set' + } + }); + }); +});