Generating jquery mockjax mocks for RESTful services
Because I can.
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-mocker --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-mocker');
In your project's Gruntfile, add a section named mocker
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
mocker: {
options: {
// Task-specific options go here.
},
},
});
Type: String
A path to the file with template of mocks (see template format below).
Type: String
A path to the folder where mocks files will created in.
[
{
entity: {entity_name},
count: {count},
data:
{
{field_name}: {FieldType}
}
},
]
String
, NumberInt
, NumberFloat
, Boolean
, Date
.
It will be generated random value with according type.
Use an array of allowable values to make mocker take random element from it.
For example:
"sortDirection": ["ASC", "DESC", "NONE"]
If an entity must refer to another entity, use following syntax:
*{referred_entity_name}
- reference to referred_entity_name
, it will taken random element of generated referred_entity_name
.
*{referred_entity_name}.id
- the same to previous but the only id
of referred_entity_name
element will taken.
[{count}]{referred_entity_name}
- array (with the according length) of references to referred_entity_name
elements, it will taken random elements of generated referred entity name
-entities.
[{count}]{referred_entity_name}.id
- the same to previous but the only id
of referred_entity_name
elements will taken.
For example:
{
"entity": "computer",
{
"user": "*users",
"userId": "*users.id",
"users": "[5]users",
"userIds": "[5]users.id"
}
}
[
{
"entity": "products",
"count": 3,
"data":
{
"name": "String",
"price": "NumberFloat",
"crearedAt": "Date",
"sortDirection": ["ACS", "DESC", "NONE"],
"groupId": "*groups.id"
}
},
{
"entity": "groups",
"count": 3,
"data":
{
"name": "String",
"open": "Boolean"
}
},
{
"entity": "user",
"count": 2,
"data":
{
"firstName": "String",
"lastName": "String",
"groupIds" "[2]groups.id"
}
}
]
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
(Nothing yet)