Advertisement
Guest User

Untitled

a guest
May 25th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.56 KB | None | 0 0
  1. import { setupTest } from 'ember-qunit';
  2. import { setupFactoryGuy } from 'ember-data-factory-guy';
  3. import { module, test } from 'qunit';
  4. import EmberModelBelongsTo from 'embercom/transforms/ember-model-belongs-to';
  5. import { attr } from 'ember-model';
  6. import IntercomModel from 'embercom/models/types/intercom-model';
  7. import sinon from 'sinon';
  8.  
  9. let FakeModel = IntercomModel.extend({
  10. id: attr(),
  11. name: attr(),
  12. });
  13.  
  14. module('Team Core | Transform: EmberModelBelongsTo', function(hooks) {
  15. setupTest(hooks);
  16. setupFactoryGuy(hooks);
  17.  
  18. hooks.beforeEach(function() {
  19. this.transform = EmberModelBelongsTo.create();
  20. });
  21.  
  22. test('Deserializing an embedded relation creates ember model instance', function(assert) {
  23. let data = { id: 1, name: 'my-fake-model' };
  24. let opts = { modelClass: FakeModel, embedded: true };
  25. let deserialized = this.transform.deserialize(data, opts);
  26. assert.equal(deserialized.get('id'), 1);
  27. assert.equal(deserialized.get('name'), 'my-fake-model');
  28. });
  29.  
  30. test('Deserializing emdedded relation without id adds fake id', function(assert) {
  31. let data = { name: 'my-fake-model' };
  32. let opts = { modelClass: FakeModel, embedded: true };
  33. let deserialized = this.transform.deserialize(data, opts);
  34. assert.ok(deserialized.get('id') > 0);
  35. });
  36.  
  37. test('Deserializing not emdedded relation loads models', function(assert) {
  38. let data = 1;
  39. let opts = { modelClass: FakeModel, embedded: false };
  40. sinon.stub(FakeModel, 'find');
  41. this.transform.deserialize(data, opts);
  42. assert.ok(FakeModel.find.calledWith(1));
  43. FakeModel.find.restore();
  44. });
  45.  
  46. test('Serializing embedded records', function(assert) {
  47. let data = { id: 1, name: 'my-fake-model' };
  48. let opts = { modelClass: FakeModel, embedded: true };
  49. let deserialized = this.transform.deserialize(data, opts);
  50. let serialized = this.transform.serialize(deserialized, opts);
  51. assert.deepEqual(serialized, data);
  52. });
  53.  
  54. test('Serializing reference records', function(assert) {
  55. let data = 1;
  56. let opts = { modelClass: FakeModel, embedded: false };
  57. let deserialized = this.transform.deserialize(data, opts);
  58. let serialized = this.transform.serialize(deserialized, opts);
  59. assert.deepEqual(serialized, data);
  60. });
  61.  
  62. test('Deserializing and serializing embedded undefined values', function(assert) {
  63. let data = undefined;
  64. let opts = { modelClass: FakeModel, embedded: true };
  65. let deserialized = this.transform.deserialize(data, opts);
  66. let serialized = this.transform.serialize(deserialized, opts);
  67. assert.deepEqual(serialized, data);
  68. });
  69. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement