query.count.transform.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. var assert = require('assert');
  2. var Waterline = require('../../../lib/waterline');
  3. describe('Collection Query ::', function() {
  4. describe('.count()', function() {
  5. describe('with transformed values', function() {
  6. var query;
  7. before(function(done) {
  8. var waterline = new Waterline();
  9. var Model = Waterline.Model.extend({
  10. identity: 'user',
  11. datastore: 'foo',
  12. primaryKey: 'id',
  13. attributes: {
  14. id: {
  15. type: 'number'
  16. },
  17. name: {
  18. type: 'string',
  19. columnName: 'login'
  20. }
  21. }
  22. });
  23. waterline.registerModel(Model);
  24. // Fixture Adapter Def
  25. var adapterDef = {
  26. count: function(con, query, cb) {
  27. assert(query.criteria.where.login);
  28. return cb(null, 1);
  29. }
  30. };
  31. var connections = {
  32. 'foo': {
  33. adapter: 'foobar'
  34. }
  35. };
  36. waterline.initialize({ adapters: { foobar: adapterDef }, datastores: connections }, function(err, orm) {
  37. if (err) {
  38. return done(err);
  39. }
  40. query = orm.collections.user;
  41. return done();
  42. });
  43. });
  44. it('should transform values before sending to adapter', function(done) {
  45. query.count({ name: 'foo' }, function(err, obj) {
  46. if(err) {
  47. return done(err);
  48. }
  49. assert.equal(obj, 1);
  50. return done();
  51. });
  52. });
  53. });
  54. });
  55. });