bredikhin / barrels

Simple DB Fixtures for Sails.js
MIT License
85 stars 34 forks source link

Support for non-integer IDs #37

Open JibstaMan opened 8 years ago

JibstaMan commented 8 years ago

For a project I'm working on, we're using sails-mongo for our production database. To keep things as similar as possible for the test suite, I'd like to have string IDs which are effectively ObjectId's.

This didn't work, since the code assumes IDs are auto-increment integers. The code replaced the correct string IDs with undefined. The line that does this is:

item[alias] = that.idMap[associatedModelName][item[alias] - 1];

This becomes that.idMap[associatedModelName][NaN], which returns undefined. Setting autoAssociations to false didn't solve this. I've added checks to see whether the ID is an integers (or can be coerced to an integer) before replacing the value of the association.

I've also added two new test cases (which can be run using npm run test:...) with string IDs which can be coerced to integers and object IDs which can't be coerced.