Example #1
0
function converts(assert, type, provided, expected, options = {}) {
  const Model = DS.Model.extend({
    name: DS.attr(type, options)
  });

  let registry, container;
  if (Ember.Registry) {
    registry = new Ember.Registry();
    container = registry.container();
  } else {
    container = new Ember.Container();
    registry = container;
  }

  let testStore = createStore({
    model: Model
  });
  getOwner(testStore).register('serializer:model', DS.JSONSerializer);

  run(() => {
    testStore.push(testStore.normalize('model', { id: 1, name: provided }));
    testStore.push(testStore.normalize('model', { id: 2 }));

    let record = testStore.peekRecord('model', 1);

    assert.deepEqual(get(record, 'name'), expected, type + ' coerces ' + provided + ' to ' + expected);
  });

  // See: Github issue #421
  // record = testStore.find(Model, 2);
  // set(record, 'name', provided);
  // deepEqual(get(record, 'name'), expected, type + " coerces " + provided + " to " + expected);
}
Example #2
0
function convertsFromServer(assert, type, provided, expected) {
  const Model = DS.Model.extend({
    name: DS.attr(type)
  });

  let registry, container;
  if (Ember.Registry) {
    registry = new Ember.Registry();
    container = registry.container();
  } else {
    container = new Ember.Container();
    registry = container;
  }
  let testStore = createStore({
    model: Model,
    adapter: DS.Adapter.extend({
      shouldBackgroundReloadRecord() { return false; }
    })
  });
  getOwner(testStore).register('serializer:model', DS.JSONSerializer);

  return run(() => {
    testStore.push(testStore.normalize('model', {
      id: '1',
      name: provided
    }));

    return testStore.findRecord('model', 1).then(record => {
      assert.deepEqual(get(record, 'name'), expected, type + ' coerces ' + provided + ' to ' + expected);
    });
  });
}
Example #3
0
function convertsWhenSet(assert, type, provided, expected) {
  let testStore = createStore({
    model: DS.Model.extend({
      name: DS.attr(type)
    }),
    adapter: DS.Adapter.extend({
      shouldBackgroundReloadRecord() {
        return false;
      }
    })
  });
  getOwner(testStore).register('serializer:model', DS.JSONSerializer);

  return run(() => {
    testStore.push({
      data: {
        type: 'model',
        id: '2'
      }
    });

    return testStore.findRecord('model', 2).then(record => {
      set(record, 'name', provided);
      assert.deepEqual(record.serialize().name, expected, type + ' saves ' + provided + ' as ' + expected);
    });
  });
}