node-fit-model
Checks whether an object is fits into a model.
Motivation
When writing an E2E test regarding REST API, it is annoying to keep specifying that some parameters exist. This library makes that easy by writing the model requirements first then making objects fit into it.
Usage
/* * * File: test/SomeTest.js * Using mocha and chai for BDD * */ var expect = expect // Expect for BDD fitModel = Modelling = modelDir: __dirname + '/test/models' // locate the models directory postFix: 'Model.js' // attach pattern in the model directory files ; ;
/* * * File: test/data/UserModel.js * Represents a User Model * **/var prototype = name: 'profile_id' type: 'integer' required: true canBeNull: false name: 'name' type: 'string' required: true canBeNull: false name: 'gender' type: 'enum' required: true canBeNull: false options: 'Male' 'Female' name: 'locale' type: 'string' required: true canBeNull: false maxLength: 5 name: 'create_time' type: 'timestamp' required: true canBeNull: false name: 'timezone_offset' type: 'integer' required: true canBeNull: true name: 'latitude' type: 'float' required: true canBeNull: false name: 'longitude' type: 'float' required: true canBeNull: false name: 'weight' type: 'number' required: true canBeNull: false name: 'review' type: 'object(Stats)' required: true canBeNull: false name: 'activities' type: 'array(Activity)' required: true canBeNull: false ; moduleexports = prototype;
Installation
npm install node-fit-model
Testing
npm test
Coverage:
- Data type tests
- Required value and 'canBeNull' tests
Contribute
- Submit a Pull Request