@janiscommerce/model-test v1.1.0
model-test
A helper package to test Janis Model created with @janiscommerce/model.
:hammer: Usage
You must add a ./tests/model-test.js file like the following.
'use strict';
const modelTest = require('@janiscommerce/model-test');
modelTest();Models
The package will look for the models of a service located in the ./{process.env.MS_PATH}/models/ folder.
Exclude models from testing
You can exclude specific model files from being tested by passing an exclude array to the test function.
const modelTest = require('@janiscommerce/model-test');
modelTest({
exclude: ['model-to-skip', 'another-model']
});Each item in the array should be the filename of the model you want to skip — do not include the .js extension.
📝 The names are matched against the model filenames located in your models folder. Matching is case-sensitive.
Validations
The package automatically will validate each model according @janiscommerce/model.
The validations performed by the package are as follows
Table/Collection
The table/collection is validated using the static getter table. Should return a String value.
Database Key
The databaseKey is validated using the non-static getter databaseKey. Should return a String value.
Statuses
The statuses are validated using the static getter statuses. Should return an Object with keys and values as Strings.
Fields
The fields are validated using the static getter fields. Should return an Object with keys and values as Strings.
The validation is performed with a struct.
'use strict';
const { struct } = require('superstruct');
module.exports = struct.partial({
field: 'string?',
type: 'string?'
});Indexes
The indexes are validated using the static getter indexes. Should return an Object with keys and values as Strings.
The validation is performed with a struct.
'use strict';
const { struct } = require('superstruct');
module.exports = struct.partial({
name: 'string',
key: 'object',
unique: 'boolean?',
expireAfterSeconds: 'number?',
partialFilterExpression: 'object?',
sparse: 'boolean?'
});For more information see @janiscommerce/mongodb-index-creator.
Log Creation
The automatic Log Creation is validated using the static getter shouldCreateLogs. Should return a Boolean.
For more information see @janiscommerce/log.
Excluding fields from logs
The validation is performed using the static getter excludeFieldsInLog. Should return a String Array.
For more information see @janiscommerce/log.