query.autocreatedat.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. var assert = require('assert');
  2. var _ = require('@sailshq/lodash');
  3. var Waterline = require('../../../lib/waterline');
  4. describe('Collection Query ::', function() {
  5. describe('.create()', function() {
  6. describe('with autoCreatedAt', function() {
  7. var modelDef = {
  8. identity: 'user',
  9. datastore: 'foo',
  10. primaryKey: 'id',
  11. fetchRecordsOnCreate: true,
  12. attributes: {
  13. id: {
  14. type: 'number'
  15. },
  16. stringdate: {
  17. type: 'string',
  18. autoCreatedAt: true
  19. },
  20. numberdate: {
  21. type: 'number',
  22. autoCreatedAt: true
  23. },
  24. refdate: {
  25. type: 'ref',
  26. autoCreatedAt: true
  27. },
  28. }
  29. };
  30. it('should use correct types for autoCreatedAt fields based on the attribute `type`', function(done) {
  31. var waterline = new Waterline();
  32. waterline.registerModel(Waterline.Model.extend(_.extend({}, modelDef)));
  33. // Fixture Adapter Def
  34. var adapterDef = {
  35. create: function(con, query, cb) {
  36. assert.equal(typeof query.newRecord.numberdate, 'number');
  37. assert.equal(typeof query.newRecord.stringdate, 'string');
  38. assert.equal(typeof query.newRecord.refdate, 'object');
  39. return cb(null, query.newRecord);
  40. }
  41. };
  42. var connections = {
  43. 'foo': {
  44. adapter: 'foobar'
  45. }
  46. };
  47. waterline.initialize({ adapters: { foobar: adapterDef }, datastores: connections }, function(err, orm) {
  48. if (err) {
  49. return done(err);
  50. }
  51. orm.collections.user.create({ id: 1 }, done);
  52. });
  53. });
  54. });
  55. });
  56. });