Commit Graph

684 Commits

Author SHA1 Message Date
Fabien Franzen f1f692a8a5 Minor touch-ups 2014-08-05 16:26:34 +02:00
Fabien Franzen 1a4e8863ef Basic plugin architecture
Similar to http://mongoosejs.com/docs/plugins.html

Next, loopback-boot should be updated to support loading plugins from
dirs.
2014-08-05 16:16:10 +02:00
Raymond Feng d07b716ae8 Merge pull request #200 from strongloop/feature/emit-events-during-attach
Emit dataAccessConfigured events during attach
2014-08-04 15:27:11 -07:00
Fabien Franzen 93aea7eb66 Changed options.path to option.http.path 2014-08-04 19:45:47 +02:00
Fabien Franzen 81a822524d Removed normalization (see strong-remoting) 2014-08-04 12:17:06 +02:00
Raymond Feng b9d9ab0fb3 Emit dataAccessConfigured events during attach
See discussions at https://github.com/strongloop/loopback/issues/410
2014-08-01 08:22:33 -07:00
Fabien Franzen 71bf0f8240 Customize/Normalize class-level remoting http path 2014-08-01 09:38:25 +02:00
Raymond Feng 6239d8fde5 Merge branch 'patch-4' of github.com:lchenay/loopback-datasource-juggler into lchenay-patch-4 2014-07-30 21:34:41 -07:00
Fabien Franzen 090c738bb5 Correctly handle remoting of scope methods 2014-07-30 17:30:21 +02:00
Fabien Franzen af0ca5b108 Handle remoting of custom scope methods 2014-07-30 16:46:05 +02:00
Fabien Franzen e38c92af87 ReferencesMany fixes after LB integration tests 2014-07-30 15:01:55 +02:00
Raymond Feng 7a9b64f1bf Fix the test failure for mongodb 2014-07-29 22:19:52 -07:00
Fabien Franzen e888b8cff9 Allow custom scopeMethods option (obj/fn) for relation scopes 2014-07-29 22:59:44 +02:00
Fabien Franzen 06f2b32c21 Renamed EmbedsMany 'reference' option to 'belongsTo' 2014-07-29 21:56:59 +02:00
Fabien Franzen 1782b439f1 Implemented referencesMany 2014-07-29 21:46:12 +02:00
Fabien Franzen 60fd39d311 Added option: reference to enable embedsMany add/remove 2014-07-29 17:43:30 +02:00
Fabien Franzen b18384459a Implemented findByIds 2014-07-29 15:01:47 +02:00
Fabien Franzen 296bb0d73e Minor touchups 2014-07-29 14:05:18 +02:00
Fabien Franzen 13cee9502c Tests for polymorphic embedsMany 2014-07-29 13:57:49 +02:00
Fabien Franzen da303b72a5 Implemented more complex scenaro: embedsMany + relations
The test case will denormalize data into the embedded object,
and re-use the actual related object id as its own id.
2014-07-29 12:02:52 +02:00
Laurent Chenay b336166acc Add test to protect the use of include in related method 2014-07-29 11:05:57 +02:00
Fabien Franzen 6ed7a0a5f2 Convenience embedsMany accessors: at(idx), get(id), set(id, data) 2014-07-29 10:51:33 +02:00
Raymond Feng cb43114ab7 Fix test cases 2014-07-28 16:15:37 -07:00
Raymond Feng 1b44a6d779 Merge branch 'feature/embed-hasmany' of github.com:fabien/loopback-datasource-juggler into fabien-feature/embed-hasmany 2014-07-28 14:51:16 -07:00
Raymond Feng 75403ef929 Merge branch 'feature/polymorphic-rel' of github.com:fabien/loopback-datasource-juggler into fabien-feature/polymorphic-rel
Fix test cases
2014-07-28 14:22:45 -07:00
Fabien Franzen 7ddfbb6409 polymorphics can now be declared using object 2014-07-28 10:44:26 +02:00
Fabien Franzen 43e11af942 Test build of embedsMany 2014-07-27 17:16:25 +02:00
Fabien Franzen 1487a592c1 Added validation for embedded items (optional) 2014-07-27 16:54:01 +02:00
Fabien Franzen 59a957b538 Implemented embedsMany relation 2014-07-27 16:30:45 +02:00
Fabien Franzen 5a5aa3f14d Minor tweaks; pass-through properties/scope for hasAndBelongsToMany 2014-07-26 21:32:24 +02:00
Fabien Franzen 5e30ec8637 Implemented polymorphic hasMany through inverse
Added option invert: true to enable inverse polymorphic hasMany
relations.

Fixed missing fk1 in query of HasManyThrough.prototype.exists.
2014-07-26 21:11:25 +02:00
Fabien Franzen d1896553fd More hasAndBelongsToMany tests 2014-07-26 17:20:25 +02:00
Fabien Franzen 00dfe563eb Implemented polymorphic hasOne
Signed-off-by: Fabien Franzen <info@atelierfabien.be>
2014-07-26 15:20:46 +02:00
Fabien Franzen 295e6fc1f1 Implemented polymorphic hasAndBelongsToMany 2014-07-26 14:54:54 +02:00
Fabien Franzen 9b97e1ae77 Implemented polymorphic hasMany 2014-07-26 12:47:55 +02:00
Miroslav Bajtoš cd4dba79dc relation: add `scope._target` for `hasOne`
Add `_target` property to the scope method created by `hasOne`
relationship. The `_target` property is used by loopback-sdk-angular.
2014-07-24 20:22:11 +02:00
Fabien Franzen 973c96268f Fix scoped destroyAll: only use 'where', not full 'filter' args 2014-07-24 15:55:00 +02:00
Fabien Franzen 687eb9888b Added test for belongsTo scope/properties
Note: its seems that keyFrom and keyTo were mistakingly reversed in
BelongsTo.prototype.create, please double check. The added test cases
now pass with pk/fk switched.
2014-07-23 11:10:44 +02:00
Raymond Feng 716b27b0f0 Merge pull request #181 from offlinehacker/master
Add support for disabling relationship includes
2014-07-21 13:46:43 -07:00
Jaka Hudoklin 11679beb14 add support for disabling relationship includes
Signed-off-by: Jaka Hudoklin <jakahudoklin@gmail.com>
2014-07-21 22:39:29 +02:00
Raymond Feng 8f46626c0b Expose base model class as `base` property 2014-07-21 10:21:30 -07:00
Raymond Feng fc710ca55a Merge branch 'master' into 2.0 2014-07-15 17:09:20 -07:00
Raymond Feng 82c6c8e851 Make sure related properties are defined for RDBMS 2014-07-15 16:10:37 -07:00
Raymond Feng dc6ada6348 Merge pull request #165 from strongloop/feature/allow-hook-skip-next
Pass callback to hooks so that next can be skipped
2014-07-15 12:53:52 -07:00
Raymond Feng efeb59178f Merge pull request #174 from fabien/fix/validations
Fix/validations
2014-07-15 12:53:33 -07:00
Raymond Feng 9325ce316b Allow before hooks to pass arguments to next() 2014-07-15 12:51:33 -07:00
Raymond Feng f3dbc6ca5f Remoting methods for hasMany through 2014-07-15 08:50:34 -07:00
Fabien Franzen 03617b58df Sign-off
Signed-off-by: Fabien Franzen <info@atelierfabien.be>
2014-07-12 00:24:07 +02:00
Fabien Franzen 48c4f25b09 Renamed mapping to properties 2014-07-12 00:02:16 +02:00
Fabien Franzen 50656b8206 Handle custom error codes
Fixes #151
2014-07-11 23:03:07 +02:00
Fabien Franzen a58dbe3a54 More validations and tests
Added validatesAbsenceOf. Handle async with if/unless prevention of
validators correctly. See: #170 #158
2014-07-11 22:56:02 +02:00
Fabien Franzen 5f1431aa05 Don't check uniqueness of blank values 2014-07-11 22:07:57 +02:00
Fabien Franzen 6aaa3f216e RelationDefinition applyScope/applyMapping
Add the ability to set static/dynamic filtering (where, order, limit,
skip, fields …) and property mapping/transfer (de-normalization) for
hasMany/hasOne.
2014-07-11 15:29:47 +02:00
Raymond Feng a37129bdff Allows default model class to be configured 2014-07-08 14:04:20 -07:00
Raymond Feng e45834b454 Merge pull request #156 from strongloop/feature/fix-lb-353
Make sure type of the foreign key match the primary key
2014-06-27 10:08:54 -07:00
Raymond Feng e0c7619908 Normalize filter.order and enforce more checks 2014-06-26 23:40:20 -07:00
Raymond Feng 4515491318 Make sure type of the foreign key match the primary key
See https://github.com/strongloop/loopback/issues/353
2014-06-26 23:38:04 -07:00
Raymond Feng ce8254125f Merge branch 'master' into 2.0 2014-06-21 12:53:46 -07:00
Raymond Feng 3edee5c4c5 Work around for Date default
See https://github.com/strongloop/loopback-connector-postgresql/issues/15
2014-06-21 12:53:06 -07:00
Raymond Feng 44de2da21f Merge branch 'master' into 2.0 2014-06-20 23:02:37 -07:00
Raymond Feng a2a91499dd Fix the test case 2014-06-20 21:07:26 -07:00
Raymond Feng 3f7e85101d Merge pull request #140 from strongloop/feature/refactor-relation
Feature/refactor relation
2014-06-20 20:56:44 -07:00
Raymond Feng 86073cb480 Merge pull request #144 from strongloop/feature/add-update
Feature/add update
2014-06-20 12:28:48 -07:00
Raymond Feng b07c36eab7 Use async for flow control 2014-06-20 12:05:42 -07:00
Raymond Feng 1833352238 More clean up for the scope processing 2014-06-19 12:00:49 -07:00
Raymond Feng 177752e144 Add more jsdocs 2014-06-19 11:13:24 -07:00
Raymond Feng 7c71e1e53b Merge pull request #141 from strongloop/feature/fix-perf
Feature/fix perf
2014-06-18 22:40:00 -07:00
Raymond Feng 888d15ce1c Optimize model instantiation and conversion 2014-06-18 22:13:52 -07:00
Raymond Feng a487eb57cd Add like/nlike support for memory connector 2014-06-17 23:19:28 -07:00
Raymond Feng ad3af82923 Add support for updating multiple instances with query 2014-06-17 16:30:02 -07:00
Raymond Feng 4b9d98c6ce Allows skip or offset
See https://github.com/strongloop/loopback/issues/336
2014-06-17 09:07:55 -07:00
Raymond Feng 2db43c58e5 Add support for hasOne 2014-06-16 01:17:37 -07:00
Raymond Feng 1406c22a64 Refactor relation into classes 2014-06-15 15:53:58 -07:00
Raymond Feng bb57fcbe11 Fix the comparison for null/boolean values 2014-06-10 16:11:50 -07:00
Raymond Feng b5816506e0 Add boolean tests 2014-06-06 09:28:08 -07:00
Raymond Feng 171642ff48 Make sure the records are sorted by seq 2014-06-06 09:09:56 -07:00
Raymond Feng 0191e3c2db Add more tests 2014-06-06 08:48:05 -07:00
Raymond Feng 5f3c856d2e Fix the logical operator check 2014-06-04 14:23:53 -07:00
Raymond Feng 42c1ad3dca Normalize/validate the query filter object 2014-06-02 15:57:44 -07:00
Raymond Feng 97b1501c1f Keep undefined/null values for the array type
This allows connectors to distinguish between empty array and
undefined/null. For example, mongodb will not override existing array
properties if the value is undefined.
2014-05-27 21:59:21 -07:00
Miroslav Bajtoš 65fa7a1c00 validations: include more details in `err.message`
Modify ValidationError constructor to include the model name and
a human-readable representation of the validation errors (messages)
in the error message.

Before this change, the message was pointing the reader
to `err.details`.  Most frameworks (e.g. express, mocha) log only
`err.message` but not other error properties, thus the logs were
rather unhelpful.

Example of the new error message:

    The `User` instance is not valid. Details: `name` can't be blank.
2014-05-27 21:59:21 -07:00
Raymond Feng 050353f11d Keep undefined/null values for the array type
This allows connectors to distinguish between empty array and
undefined/null. For example, mongodb will not override existing array
properties if the value is undefined.
2014-05-27 13:18:21 -07:00
Ritchie Martori 69b0355fa7 Merge pull request #115 from strongloop/refactor/remove-remoting
Remove remoting metadata
2014-05-20 13:59:33 -07:00
Miroslav Bajtoš 05410d56e1 validations: include more details in `err.message`
Modify ValidationError constructor to include the model name and
a human-readable representation of the validation errors (messages)
in the error message.

Before this change, the message was pointing the reader
to `err.details`.  Most frameworks (e.g. express, mocha) log only
`err.message` but not other error properties, thus the logs were
rather unhelpful.

Example of the new error message:

    The `User` instance is not valid. Details: `name` can't be blank.
2014-05-20 11:00:19 +02:00
Ritchie Martori dc9c9b2bd4 Remove remoting metadata 2014-05-16 12:33:17 -07:00
Raymond Feng 8f9dc1b867 Add support for logical operator (AND/OR) 2014-05-15 08:56:00 -07:00
Miroslav Bajtoš 2a74bdc4de validations: support multi-key unique constraint
Modify the "unique" validator to accept additional property names to
narrow the space of rows searched for duplicates.

Example:

Consider `SiteUser` belongsTo `Site` via `siteId` foreign key.
Inside every site, the user email must be unique. It is allowed to
register the same email with multiple sites.

    SiteUser.validateUniquenessOf('email', { scopedTo: ['siteId'] });
2014-05-15 09:15:44 +02:00
Raymond Feng 3f410cae21 Add test cases for updateOrCreate/save and fix related issues 2014-05-09 15:27:45 -07:00
Ritchie Martori aea5836569 Add hidden property support 2014-04-11 11:39:57 -07:00
Miroslav Bajtoš 4da4c65faa Re-enable skipped test.
test/relations: hasMany should fetch all scoped instances

The test is passing with the current implementation.
2014-04-02 19:35:14 +02:00
Miroslav Bajtoš abf57ff497 scope: add _targetClass to scope property
Store the class of the results returned by a scope find method.
This class is different from the "targetClass" when the relations
is using a third "through" model (e.g. hasAndBelongsToMany).
2014-04-02 19:32:37 +02:00
Raymond Feng b42f7d2498 Remove the disconnect to avoid race condition 2014-03-27 13:56:24 -07:00
Raymond Feng 0e7acec591 Set the relation property correctly
See https://github.com/strongloop/loopback/issues/218
2014-03-23 21:07:04 -07:00
Raymond Feng cc5975486d Simplify the inclusion processing 2014-03-17 08:40:40 -07:00
Raymond Feng 1dc0c34252 Fix the connector resolver to make sure known connectors are used 2014-03-17 08:32:37 -07:00
Raymond Feng 464d23891b Merge pull request #82 from strongloop/feature/ldl-scopes
Allows scopes to be defined in LDL
2014-03-04 09:50:27 -08:00
Raymond Feng 24c4381221 Allows scopes to be defined in LDL 2014-03-03 17:16:37 -08:00
Raymond Feng 510f5ef6ac Check the Array type
See https://github.com/strongloop/loopback-connector-mongodb/issues/21
2014-03-03 15:52:49 -08:00
Raymond Feng 44a62d01af Allows unknown properties to be saved for non-strict models
See https://github.com/strongloop/loopback/issues/199
2014-02-24 18:38:45 -08:00
Raymond Feng 7e45a1fda1 Fix the include with array value 2014-02-14 10:40:45 -08:00
Raymond Feng 0d3ce00f35 Simplify the test case 2014-02-12 22:49:54 -08:00
Raymond Feng 061b274055 Merge branch 'partial-fix-for-58' of github.com:arlaneenalra/loopback-datasource-juggler 2014-02-12 21:55:53 -08:00
Raymond Feng dbd97eb423 Merge pull request #68 from strongloop/feature/fix-lb-162
Make sure own properties are copied by toObject for non-strict mode
2014-02-11 14:29:21 -08:00
Raymond Feng 22eef6a33d Add a test case 2014-02-10 22:46:25 -08:00
arlaneenalra 99dff35de2 Add unit test for datatype handling in updateAttributes. 2014-02-07 06:50:35 -06:00
Raymond Feng 1961fbeefe Enhance the assertions 2014-02-03 20:52:01 -08:00
Ritchie Martori 61a54da418 Merge pull request #65 from strongloop/feature/change-hook
Add change / delete events
2014-01-30 13:54:47 -08:00
Raymond Feng ee5b351398 Make sure own properties are copied by toObject for non-strict mode
See https://github.com/strongloop/loopback/issues/162
2014-01-30 11:51:34 -08:00
Raymond Feng da571c0c23 Use String[] for types and add test for supported types 2014-01-29 17:19:07 -08:00
Raymond Feng cf200a2e27 Add getType/getDefaultIdType from connectors 2014-01-29 17:19:07 -08:00
Raymond Feng 130dcdb582 Fix the write closure to use the correct task info 2014-01-29 13:41:42 -08:00
Raymond Feng 6b535f5d1c Add a file option for the memeory connector to persist data 2014-01-29 12:04:09 -08:00
Ritchie Martori e909749455 Add tests for change / delete events 2014-01-29 11:03:04 -08:00
Raymond Feng 6e1900ca01 Add tests 2014-01-27 16:04:37 -08:00
Raymond Feng 2b8c1ebaee Reformat the code 2014-01-24 09:09:53 -08:00
Raymond Feng c374cc89cd Use the primary key type for the generated foreign key 2014-01-21 09:47:32 -08:00
Raymond Feng 2a50388894 Make the code testable following the review comments 2014-01-13 11:06:02 -08:00
Raymond Feng acd02bf482 Allows the full module name for connectors 2014-01-09 17:03:37 -08:00
Raymond Feng c9e133d7bc Add a EOL 2013-12-18 17:14:54 -08:00
Raymond Feng e1ec152c78 Add models to LDL options
1. Use 'models' to specify the dependencies to other models
2. The 'models' property is an object, such as:

{
    Model1: 'Model1',
    Model2: Model2
}

3. The model classes will be injected into the newly defined class as
static properties using the keys from the models option.
2013-12-18 16:13:41 -08:00
Raymond Feng aabe5fb1c4 Fix a bug in merging ACLs 2013-12-16 17:14:56 -08:00
Raymond Feng aeecfa5551 Split the tests 2013-12-16 08:36:15 -08:00
Raymond Feng 1b9edbcfcb Fix a regression in mongodb connector 2013-12-15 22:51:47 -08:00
Raymond Feng 9890af119e Check for null & undefined values 2013-12-14 09:54:28 -08:00
Raymond Feng fab504b5d9 Fix the coercion issue related to GeoPoint near 2013-12-14 09:49:11 -08:00
Raymond Feng bf592413e1 Dedupe the alias methods during mixin
To prevent the same method from showing up multiple times in API explorer,
for example, Model.deleteById, Model.removeById
2013-12-13 16:45:31 -08:00
Ritchie Martori 749a494e53 Always call inherits to ensure prototypes are setup 2013-12-13 11:27:29 -08:00
Raymond Feng 441596b870 Merge pull request #47 from strongloop/feature/query-coercing
Coerce query values of where clause based on property types
2013-12-10 10:09:42 -08:00
Raymond Feng 29405976fb Merge settings for base and sub models 2013-12-06 15:52:39 -08:00
Raymond Feng adc9482df0 Enhance the test case with more assertions 2013-12-05 15:19:40 -08:00
Raymond Feng 52d2c8425f Make all methods proxied for DAO 2013-12-04 13:44:25 -08:00
Raymond Feng abe6d2bb22 Add more tests to address the PR comments 2013-12-04 10:00:33 -08:00
Raymond Feng ed6d8839ba Add a test case 2013-12-03 21:27:46 -08:00
Raymond Feng a953ba13de Clone shared methods so that they can be customized per model 2013-12-03 21:14:12 -08:00
Miroslav Bajtos b5e0035d73 Improve properties of ValidationError
- change `statusCode` from 400 to 422
- nest `context` and `codes` inside `details`
- add `details.messages`
- reword the main error message

Remove the call to Error's constructor from ValidationError constructor,
because it's a no-op - Error's constructor creates a new
instance when called via `.call()`.
2013-12-02 21:35:47 +01:00
Raymond Feng 995a2139c8 Rename association to relation 2013-11-15 20:29:20 -08:00
Raymond Feng 7aa2eefec4 Remove inheritence from DataSource to ModelBuilder 2013-11-08 17:13:00 -08:00
Raymond Feng 92d369e609 Add more assertions 2013-11-08 09:02:17 -08:00
Raymond Feng 0b899b0542 Allow settings.base to specify the base model 2013-11-07 17:11:17 -08:00
Raymond Feng 89a30e7edd Add a test case for relations during attach 2013-11-07 13:28:18 -08:00
Raymond Feng 68cf633795 Add support for hasMany-through and more tests 2013-11-05 09:29:24 -08:00
Raymond Feng 4fbec288c4 Enable deferred type/relation resolutions 2013-11-04 22:53:02 -08:00
Ritchie Martori 65bb5c8ead Merge pull request #33 from strongloop/get-datasource
Remove model.dataSource property / Add model.getDataSource() method
2013-10-31 14:50:56 -07:00
Ritchie Martori 597a775e4c Add model.getDataSource() method 2013-10-31 11:46:12 -07:00
Raymond Feng d0055d8591 Fix removeUndefined to bypass non-plain objects
traverse.map() transform custom objects such as Date or ObjectID into
plain objects and it breaks the BSON serialization
2013-10-29 22:16:43 -07:00
Raymond Feng f3011216b5 Support datasource/connector configuration using URL string 2013-10-25 16:18:02 -07:00
Raymond Feng bcf112f042 Add index to name prop 2013-10-17 14:24:47 -07:00
Raymond Feng 9ec9f654c7 Remove undefined values from the query object 2013-10-11 11:50:00 -07:00
Raymond Feng 931636eda4 Allow the id(s) to be redefined by subclass 2013-10-06 21:13:52 -07:00
Raymond Feng 294ebc1ccf Allow to reference a model as type by name 2013-10-05 11:13:10 -07:00
Raymond Feng 7f170a0542 Add more tests and fix toJSON 2013-10-04 21:21:12 -07:00
Raymond Feng 24d87976e8 Merge branch 'master' into juggler-tidyup
Conflicts:
	lib/model.js
2013-10-04 14:32:51 -07:00
Raymond Feng 1963ea9fb1 Use ModelDefinition to access model name/properties/settings 2013-10-02 15:18:50 -07:00
Raymond Feng fad6ee5e1d Refactor/cleanup the data source juggler implementation
- Add a ModelDefinition class to encapsulate the model schema handling
- Add a Connector class as the base class for connector implementations
- Optimize attachTo and mixin
- Rename some properties/methods
2013-10-01 22:14:21 -07:00
Raymond Feng 1575c87caf Make sure schemaless property value is honored over __data 2013-09-18 16:34:52 -07:00
Raymond Feng c2eb1f55f0 Fix the property population for schemaless models 2013-08-28 21:49:05 -07:00
Raymond Feng 04ca1a6333 Clean up the test case based on PR reviews 2013-08-27 10:14:49 -07:00
Raymond Feng 59841a04a8 Set strict to false by default for non-relational data sources 2013-08-26 13:38:24 -07:00
Raymond Feng 463bf69ffc Fix the test description 2013-08-19 10:35:52 -07:00
Raymond Feng 9482d3c7de Fix the where option for delete 2013-08-18 10:58:53 -07:00
Raymond Feng d697fb5d4e Remove the semicov dependency as now we use blanket 2013-08-15 14:10:13 -07:00
Raymond Feng 0a5c0ff77d Refactor introspection to ModelBuilder 2013-08-07 14:51:32 -07:00
Raymond Feng f3443959a1 Rename 'loopback-data' to 'loopback-datasource-juggler' 2013-07-30 14:10:03 -07:00
Raymond Feng 57c181c8b9 Bring up json object introspection to build models 2013-07-26 13:06:43 -07:00
Raymond Feng 8c1a102179 Rename the test case 2013-07-24 23:04:13 -07:00
Raymond Feng 9b422752a6 Allows non-strict mode to accept unknown properties 2013-07-24 22:58:57 -07:00
Raymond Feng 6af4b1ba2f More renames: schema -> dataSource, adapter -> connector 2013-07-23 11:16:43 -07:00
Raymond Feng eeda934cc1 Rename the test case 2013-07-22 13:49:35 -07:00
Raymond Feng 2e81598006 ADL --> LDL 2013-07-22 13:48:28 -07:00
Ritchie Martori d4ca20c01a Add filter.fields support to dao and memory connector 2013-07-16 17:53:52 -07:00
Raymond Feng be21815e7b Rename jugglingdb to loopback-data 2013-07-16 11:59:53 -07:00
Raymond Feng 8e01e17bdb Add support for nesting objects with an array 2013-07-12 18:59:43 -07:00
Raymond Feng 4cd9ea49ec Add plain string array 2013-07-12 12:39:38 -07:00
Raymond Feng 09ab8356b8 Fix the array data population 2013-07-12 12:36:14 -07:00
Raymond Feng 194f68468a Add support for nesting schema 2013-07-11 14:24:47 -07:00
Ritchie Martori 522291bf08 Add support for extending models 2013-07-01 16:49:43 -07:00
Ritchie Martori dbd5efed50 Revert adapter serialization. Remove geo point distance indicator. 2013-07-01 13:16:51 -07:00
Ritchie Martori 008b406dd7 model.find => model.findById, model.all => model.find 2013-06-24 12:42:58 -07:00
Raymond Feng 7b861c2aac Update buildModels and support associations via foreign keys 2013-05-31 10:25:11 -07:00
Raymond Feng 771bf70ec5 Add options including default 2013-05-28 15:40:16 -07:00
Raymond Feng 2a15926318 Add test cases for loading json doc 2013-05-28 15:26:12 -07:00
Raymond Feng 465a963d2d Adding more tests 2013-05-28 13:50:59 -07:00
Anatoliy Chakkaev f98f62388d Temp. disable test for validation 2013-05-13 22:04:29 -07:00
Anatoliy Chakkaev 06641da2c6 Add context info to validation error 2013-05-13 22:04:29 -07:00
dgsan 1a91605340 Adds test for limit and skip + limit on `all()` queries as in docs.
(Currently not all adapters may pass.)
2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev 83027f9ead Accept related objects when creating instance #247 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev eecbd32d07 Allow null properties for headless models 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev a67f75f0be Check types of sync and async getters created by belongsTo, close #266 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev a73f53521e Fix m2m: only add fk when hasMany have no "through" 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev c9e97744dd Many-to-many relation
- hasMany {through: Class}
- hasAndBelongsToMany
- some specs in relations.test.js
2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev 9facf369b1 Some tests for scope 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev 136ea91fbf Organize model.js 2013-05-13 22:04:28 -07:00
Anatoliy Chakkaev c4d4b68413 Datatypes casting 2013-05-13 22:04:28 -07:00
Raymond Feng 3eb6869174 Revert "Fix the test case so that it passes in the same filter"
This reverts commit 7538601b79.
2013-04-15 16:50:49 -07:00
Raymond Feng 7538601b79 Fix the test case so that it passes in the same filter 2013-04-10 21:09:09 -07:00
Anatoliy Chakkaev 43f395d653 Manually require init 2013-04-06 14:57:12 +04:00
Anatoliy Chakkaev 9fc4e5e887 Added datatypes tests 2013-04-06 14:34:16 +04:00
Anatoliy Chakkaev 67d186e26c Fix merged schema test 2013-04-05 02:14:16 +04:00
Anatoliy Chakkaev 4943feb230 Merge transactions 2013-04-05 02:13:14 +04:00
Anatoliy Chakkaev 43d1cbd39e Merge 2013-04-05 02:12:34 +04:00
Anatoliy Chakkaev 3a355851b6 ValidationError instead Error 2013-04-04 19:31:07 +04:00
Anatoliy Chakkaev 704bc965bd Find on hasMany scope method 2013-04-04 00:46:41 +04:00
Anatoliy Chakkaev be17763eca Return valid in case of sync validations 2013-04-01 20:13:55 +04:00
Anatoliy Chakkaev c5019ef354 Test update 2013-04-01 20:10:46 +04:00
Anatoliy Chakkaev b0a1ed3bed Fix validation issue 2013-04-01 20:08:22 +04:00
Anatoliy Chakkaev cf5ed5b877 Transactions 2013-04-01 17:49:12 +04:00
Anatoliy Chakkaev 349931780a Automigrate before relation tests 2013-03-31 15:24:03 +04:00
Anatoliy Chakkaev f36372ba80 Add more love to tests, pr #249 2013-03-31 14:17:25 +04:00
Anatoliy Chakkaev 76c7fbd6ec Merge branch 'http' of github.com:NiKnight/jugglingdb 2013-03-31 14:08:38 +04:00
Anatoliy Chakkaev 0776c51994 Batch create 2013-03-31 13:40:37 +04:00
Scott Nonnenberg 5655e8f4d2 tests only: no afterCreate/afterUpdate on errors
Added tests to ensure that the afterCreate/afterUpdate handlers are not run if the adapter returns an error.
2013-03-30 17:20:32 -07:00
Scott Nonnenberg 2ba862f5af afterDestroy not called on adapter error
Similar to afterCreate and afterUpdate, we don't want to run the afterXXXX handlers if the delete failed according to the adapter.
2013-03-30 17:18:47 -07:00
Anatoliy Chakkaev 5b429e8d41 Fix memory adapter: broken upd attrs 2013-03-30 21:07:16 +04:00
Anatoliy Chakkaev 2f048e79c0 Return instance of object when create 2013-03-30 21:06:09 +04:00
Anatoliy Chakkaev c1e3e78976 Turn off ignoring tests 2013-03-29 12:54:04 +04:00
Anatoliy Chakkaev 839791de2f Upd tests
- skipping
- hook up redis-hq
- some stuff should be moved to advanced-querying tests
2013-03-29 11:43:04 +04:00
Anatoliy Chakkaev 7707b236ff Test hooks and object lifecycle as per #242 2013-03-28 15:27:50 +04:00
Anatoliy Chakkaev 589887715c Tests for data manipulation 2013-03-28 15:27:27 +04:00
Anatoliy Chakkaev e5f541c0b8 Uncomment tests 2013-03-27 22:00:50 +04:00
Anatoliy Chakkaev 2d6cc9aaee Mongodb tolerance 2013-03-27 21:53:07 +04:00
Anatoliy Chakkaev b04a250b63 Update attribute additional test 2013-03-27 18:53:46 +04:00
Anatoliy Chakkaev e75029ebbf Fix memory adapter and test 2013-03-27 17:10:13 +04:00
Anatoliy Chakkaev b6fb04ffe1 Removed include test from common 2013-03-27 04:51:31 +04:00
Anatoliy Chakkaev cfe31d41ec Test destroy 2013-03-27 04:51:00 +04:00
Anatoliy Chakkaev ffdfac30e1 Migration-friendly tests 2013-03-27 04:50:34 +04:00
Anatoliy Chakkaev 7772c32c80 Include test 2013-03-27 04:46:59 +04:00
Anatoliy Chakkaev cba87ce339 Query testing: findOne 2013-03-27 00:50:13 +04:00
Anatoliy Chakkaev 0d5f4a9aad Added test case for #238: password hashing before save 2013-03-27 00:49:02 +04:00
Anatoliy Chakkaev de28603460 Added short syntax for belongsTo 2013-03-27 00:48:14 +04:00
Anatoliy Chakkaev 49be07545a Rewriting tests 2013-03-26 23:33:11 +04:00
Anatoliy Chakkaev d5d07d8806 Make tests importable 2013-03-26 04:41:00 +04:00
Anatoliy Chakkaev f76b56d2fe Another way to define belongsTo 2013-03-26 04:39:47 +04:00
Anatoliy Chakkaev 8d53ed5e82 Docs for models 2013-03-25 15:04:07 +04:00
Anatoliy Chakkaev 567de88a10 Fix test 2013-03-25 02:29:13 +04:00
Anatoliy Chakkaev e91b0d6c49 Switch to mocha testing in travis 2013-03-25 02:25:43 +04:00
Anatoliy Chakkaev 716318bedd Rewrite validations in mocha 2013-03-25 02:21:18 +04:00
Anatoliy Chakkaev 50850d80be Minor test amends 2013-03-25 01:29:07 +04:00
Anatoliy Chakkaev d4a526f5b3 Remove old hooks tests 2013-03-25 01:28:45 +04:00
Anatoliy Chakkaev 5ea5da0153 Rewrite hooks API
This commit breaks compatibility, but adds consistent API and allow modify data of update
2013-03-25 01:25:10 +04:00
Anatoliy Chakkaev fcc2869806 Defaults test and fixes
When property type is "undefined" - apply default value
2013-03-24 17:37:13 +04:00
Anatoliy Chakkaev aad21e916c Added json test 2013-03-19 14:05:38 +04:00
Anatoliy Chakkaev b9eaba0166 Coding style in helper 2013-02-19 16:32:44 +08:00
Anatoliy Chakkaev 7bb233e269 Fix package version exposing 2013-02-19 16:32:21 +08:00
Anatoliy Chakkaev 3d64056c39 Absolute paths in README.md, fixes #208 2013-02-16 23:55:51 +08:00
Anatoliy Chakkaev 27a16dbeae Remove logging 2013-02-10 04:53:53 +08:00
Anatoliy Chakkaev 6e1037f987 Organize test with Log and Dog 2013-02-10 04:53:37 +08:00
Anatoliy Chakkaev 412a46d603 FIxed test for belongsTo 2013-02-10 04:15:43 +08:00
dgsan 497dcc887d Unit test for bug fix related to belongsTo relation.
It declares a Schema, uses memory. If it should be run for ALL DBs it will need to be changed.

Should fail pre cba174b and pass currently.
2013-02-08 10:25:38 -07:00
Anatoliy Chakkaev a5e84c9f32 Update broken test case 2013-01-23 07:48:56 +07:00
Anatoliy Chakkaev c6d7360f51 Update test for #128 2013-01-22 23:57:30 +07:00
1602 a770f20c08 One more fix in updateAttribute test with uniqueness validation 2013-01-22 03:54:06 +07:00
Anatoliy Chakkaev 3919630d9a Update validations test 2013-01-22 03:48:12 +07:00
Anatoliy Chakkaev 0f592d4bf5 Implement schema.extendModel, closes #157 2013-01-22 01:48:04 +07:00
Anatoliy Chakkaev 60a680f039 Add adapter (memory-bogus) test 2013-01-22 01:22:08 +07:00
Anatoliy Chakkaev 91fee1d565 Make memory adapter async 2013-01-22 01:21:43 +07:00
Anatoliy Chakkaev 40b64cfc5e Added test for #191 2013-01-22 00:48:10 +07:00
Robb Lovell 84a9582bc0 attempted to write a test for hasmany all function. this commit has it commented out 2013-01-17 12:00:59 -08:00
Anatoliy Chakkaev 5062beb99b Travis env update, compare ids as strings 2012-12-24 22:47:49 +04:00
Anatoliy Chakkaev 0d433c1c5d merge 2012-12-19 19:00:00 +04:00
Anatoliy Chakkaev acc0a71bde Update railwayjs name, add ability to skip tests 2012-12-19 18:57:21 +04:00
Sébastien Drouyer 61ffdbc513 added filter on schema though I am not sure it will be used 2012-12-17 00:02:38 +01:00
Sébastien Drouyer 708265df22 merged + removed preprocessdata callback as it seems it isn't usefull 2012-12-16 18:58:52 +01:00
Sébastien Drouyer 0b91727a35 removed unused console log and comments 2012-12-16 18:21:07 +01:00
Sébastien Drouyer 3ed14b2ed0 added tests for the include functionnality 2012-12-16 18:07:02 +01:00
Anatoliy Chakkaev 59f873a4f2 Uncomment tests 2012-12-15 16:06:17 +04:00
Anatoliy Chakkaev d1eb481fce Allow extend tests 2012-12-14 21:44:38 +04:00
Sébastien Drouyer 24ccb0ffc2 added relations key 2012-12-14 16:28:29 +01:00
Anatoliy Chakkaev 100b5322c6 Remove sql adapters and tests 2012-12-14 19:25:32 +04:00
Anatoliy Chakkaev a62aab180d Removed nosql adapters (moved to own repos) 2012-12-14 01:50:02 +04:00
Nicholas Westlake 85535dc955 added nano adapter 2012-12-09 03:13:09 -06:00
Sébastien Drouyer b3d92131b3 limited tests to the one I know 2012-11-03 15:53:29 +01:00
Sébastien Drouyer 7930af6eba trying a fix for redis 2012-11-03 15:35:31 +01:00
Sébastien Drouyer 4c8e4d8e4d fixed regression for postgres 2012-11-03 15:25:15 +01:00
Sébastien Drouyer 36b1d91761 fixed tests for mongodb 2012-11-03 14:48:57 +01:00
Sébastien Drouyer 827d32ec47 fixed issue for sqlite 2012-11-03 13:42:40 +01:00
Sébastien Drouyer 77ead6d123 Merge git://github.com/1602/jugglingdb 2012-11-03 13:34:56 +01:00
Sébastien Drouyer c626587d8f added log to data (TEMPORARY) to debug on travis 2012-11-03 13:19:24 +01:00
Anatoliy Chakkaev 0c24dfa035 Merge pull request #141 from sdrdis/master
Added caching in relationships (+ test cases) (enhanced)
2012-11-02 19:20:09 -07:00
Sébastien Drouyer 89b8329764 add test cases for caching in hasMany and fixed test cases for caching in belongsTo 2012-11-01 01:17:09 +01:00
Sébastien Drouyer 6d8454c5ac added test case for the cache of belongsTo 2012-11-01 00:15:23 +01:00
Anatoliy Chakkaev 8cee0ec9b2 Merge pull request #137 from sdrdis/master
Enhanced inq and nin for mysql and postgres and added test cases
2012-10-28 18:06:54 -07:00
Anatoliy Chakkaev c8322eea31 Fix instanceof checking 2012-10-29 04:05:05 +04:00
Sébastien Drouyer 4c95f1dcad added test cases for IN and NOT IN. Only in mysql and postgres for the moment 2012-10-27 20:51:45 +02:00
Anatoliy Chakkaev da9ff3e1e8 Switch test coverage reporting off for travis 2012-10-14 17:04:24 +04:00
Anatoliy Chakkaev a31a10a5ae Merge branch 'master' of github.com:1602/jugglingdb 2012-10-13 18:26:15 +04:00
Anatoliy Chakkaev 1ec419aa42 Better performance on big datasets read 2012-10-13 17:59:25 +04:00
Mikko Lehtinen 075699ee27 Fix for redis adapter when finding records filtered with multiple attributes 2012-10-09 21:19:38 +03:00
Anatoliy Chakkaev ef93cddf45 Fix memory adapter tests 2012-10-01 12:20:55 +04:00
Anatoliy Chakkaev 451000806d Merge mongoose multisort 2012-09-27 11:24:20 +04:00
Anatoliy Chakkaev b6cecc4b78 Added cradle adapter 2012-09-26 09:18:43 +04:00
Anatoliy Chakkaev 46e65b7e63 Update mysql to 2.0 2012-09-26 08:08:27 +04:00
Anatoliy Chakkaev c8b8012e28 List API improvements 2012-09-11 23:22:55 +04:00
Anatoliy Chakkaev e0f5f45b05 List improvements 2012-09-11 20:51:31 +04:00
Anatoliy Chakkaev e938a814e8 Added typed lists support 2012-09-10 19:57:21 +04:00
Anatoliy Chakkaev 44591111b6 Rewritten redis 2012-09-08 17:03:49 +04:00
Anatoliy Chakkaev cc40d15082 Fix autoupdate for mysql
;
2012-08-20 00:44:15 +04:00
Anatoliy Chakkaev 12eadb80ae Autoupdate multicolumn indexes 2012-08-19 19:40:21 +04:00
Anatoliy Chakkaev 62d0e459c0 Single-column indexes in mysql (autoupdate) 2012-08-17 23:39:22 +04:00
Anatoliy Chakkaev 62178c26c9 Unnecessary error on mongodb authentication. Skip checking 2012-08-17 22:48:14 +04:00
Anatoliy Chakkaev 0defc804c0 Remove JSON serialization test case 2012-08-14 18:47:59 +04:00
Anatoliy Chakkaev efdc4548fc JSON in tests, Schema.JSON published 2012-08-13 10:16:01 +04:00
Anatoliy Chakkaev 7a2e300181 Allow relative driver paths, adopt for node 0.8 2012-07-02 15:59:44 +04:00
Aurélien Thieriot d333fe1d30 First version of a cradle adapter 2012-06-10 16:51:56 +02:00
Anatoliy Chakkaev 2bff27fe2d Fix coding style 2012-06-02 22:42:22 +04:00
Anatoliy Chakkaev 2dae68b5e0 Fix coding style 2012-06-02 22:41:28 +04:00
Anatoliy Chakkaev 418cc03a27 Adopt postgres stuff 2012-06-02 22:33:29 +04:00
Anatoliy Chakkaev 40c9923053 Coverage added to gitignore 2012-05-29 15:16:24 +04:00
Joseph Junker 3dcdb1e911 heavily modified sections of postgres adapter, postgres is now passing all tests 2012-05-16 14:39:43 -07:00
Joseph Junker 61a0795447 ran into some confusion with default values while changing postgres adapter, added postgres default values test 2012-05-16 14:19:25 -07:00
Joseph Junker 97ddbe6b54 migration_test is mysql specific, added postgres migration test 2012-05-16 14:18:11 -07:00
Jonathan Spies 3179c05b95 added multiple sort for mongoose 2012-05-13 23:28:37 -05:00
Anatoliy Chakkaev 7d748e9c02 Upsert with setters 2012-04-19 20:06:38 +04:00
Anatoliy Chakkaev 16a1c21d9c Fix sql adapters 2012-04-19 19:20:10 +04:00
Anatoliy Chakkaev 222b457b3f Setters enabled in new and create 2012-04-19 19:01:40 +04:00
Anatoliy Chakkaev 1b83266fd6 Jslinize if blocks, not strict equal for ids on uniqueness checking 2012-04-19 03:20:44 +04:00
Anatoliy Chakkaev 2ce44db4ba Tune propertyChanged behavior 2012-04-11 23:31:10 +04:00
Anatoliy Chakkaev 6be57cf454 Fix test: not strict equal when comparing ids 2012-04-11 19:52:46 +04:00
Anatoliy Chakkaev df57805b94 Turn off caching 2012-04-11 19:36:10 +04:00
Anatoliy Chakkaev 95c0e7d5d0 upsert for redis 2012-03-23 00:24:15 +04:00
Anatoliy Chakkaev c06f28f433 Support upsert 2012-03-22 23:46:16 +04:00
Anatoliy Chakkaev 4ec9757503 Added contributors, MRU cache cleanup, closes #46 2012-03-16 18:42:02 +04:00
Anatoliy Chakkaev f3e80c28f7 Correctly handle callback after blank automigration 2012-03-11 16:42:07 +04:00
Anatoliy Chakkaev 8bb855c88c Mongodb adapter 2012-03-11 08:48:38 +04:00
Anatoliy Chakkaev 3952c329df Remove sequelize tests 2012-03-10 16:12:17 +04:00
Anatoliy Chakkaev 633ae4067a Remove frozen neo4j lib, add neo4j database setup for travis-ci 2012-03-10 15:56:23 +04:00
Anatoliy Chakkaev d3231e7484 Allow custom table name in mysql 2012-03-07 11:29:08 +04:00
Anatoliy Chakkaev c33bc70756 Support reverse sort for redis 2012-03-06 17:05:22 +04:00
Anatoliy Chakkaev 639820bf29 Model.findOne, mongoose reverse sort, closes #38 2012-03-06 16:46:18 +04:00
Anatoliy Chakkaev 53f39a046a Fix unnecessary _was attributes issue, closes #36, #31, #34, #35 2012-03-03 13:55:29 +04:00
Anatoliy Chakkaev 9b3d432942 Reverse sort order in redis and memory, test 2012-03-01 23:57:48 +04:00
Anatoliy Chakkaev 7f073a4622 Test belongsTo 2012-03-01 21:26:52 +04:00
Anatoliy Chakkaev 35e872368a Default should not be handled by database engine 2012-02-20 22:44:02 +04:00
Anatoliy Chakkaev e8c6f68353 Add schema.isActual and automigrate on sqlite start 2012-02-20 22:33:11 +04:00
Anatoliy Chakkaev 63c3a4c4f2 Remove unnecesare code from test helper 2012-02-04 18:17:27 +04:00
Anatoliy Chakkaev 9434ff4169 Disable advanced queries for redis and memory 2012-02-01 21:36:42 +04:00
Anatoliy Chakkaev fb79ca2bf8 Advanced queries for sql-s and mongodb 2012-02-01 21:33:08 +04:00
Anatoliy Chakkaev 4442b42ace Disable neo4j for travis 2012-01-30 23:45:06 +04:00
Anatoliy Chakkaev 643c2879fe Mongoose order/limit/offset and more
- Lazy dependencies loading
- Travis mongoose inetration
- All tests should run on travis
- Model.count for mongoose
2012-01-30 23:34:30 +04:00
Anatoliy Chakkaev 7a52a7cfb6 SQLite3 adapter 2012-01-30 19:43:45 +04:00
Anatoliy Chakkaev 5b308b846e Fix postgres adapter 2012-01-30 17:54:13 +04:00
Anatoliy Chakkaev f096849a06 Setup postgres for travis 2012-01-30 17:33:45 +04:00
Anatoliy Chakkaev ad7d1d568a Model.count with params support, fix time in mysql 2012-01-30 17:27:26 +04:00
Anatoliy Chakkaev b237b7bd4c Allow to call create without callback 2012-01-27 12:48:37 +04:00
Anatoliy Chakkaev f09bb40035 Adjust test 2012-01-20 00:29:12 +04:00
Anatoliy Chakkaev 01955a9de5 Adjust test 2012-01-20 00:25:50 +04:00
Anatoliy Chakkaev 14c34a8058 Mysql sort, where and limit 2012-01-20 00:16:30 +04:00
Anatoliy Chakkaev eb4e13922a Rewrite redis test to make possible filter and sort simultaneously 2012-01-19 20:18:57 +04:00
Anatoliy Chakkaev f0a34bf008 Redis-adapter: test sorting, support alpha-sort, fix destroyAll issue 2012-01-18 22:49:30 +04:00
Anatoliy Chakkaev 08cc5eb105 Return name of type 2012-01-18 19:20:05 +04:00
Anatoliy Chakkaev 1f9038834c Update package 2012-01-16 03:11:00 +04:00