loopback-fixtures-loader v0.0.3
loopback-fixtures-loader
Expressive fixtures generator for Loopback
Installation
Basic usage
npm install --save loopback-fixtures-loaderThen, in your server/component-config.json, add :
{
"loopback-fixtures": {
"fixturePath": "/fixtures/data/",
"append": false,
"autoLoad": false
}
}Write your YML fixture file /fixture/data/data.yml (adapt according your model) :
Group:
group{1..10}:
name: "Groupe {@} depuis les fixtures"
User:
user{1..10}:
name: "User {@} : {{name.lastName}}"
groupId: @group{@}
email: "{{internet.email}}"
birthDate: "2016-01-01"
favoriteNumber: "(function() { return Math.round(Math.random()*1000);})()"How to load fixtures ?
If
autoLoadis set totrue, fixtures will be loaded when you start your applicationWith the server:
app.loadFixtures()(return a promise)e.g:
app.loadFixtures() .then(function() { console.log('Done!'); }) .catch(function(err) { console.log('Errors:', err); });With a node command:
./node_modules/loopback-fixtures-loader/lib/load-fixtures.js
Configuration options
fixturePath(default value'/fixtures/data')The directory to load data fixtures from
append(default valuefalse)If set to
true, data fixtures will be append instead of deleting all data from the database first. WARNINGfalsewill erase your databaseautoLoad(default valuefalse)
Features
Load data according your model
Multiple generators :
User: user{1..45}: name: "User number {@}"{@}represents the current identifier for the generatorReferences :
Group: group{1..3}: name: "Groupe number {@}" User: user{1..9}: name: "User number {@}" group: @group1 # Reference to group1 user{10..19}: name: "User number {@}" group: @group.* # Reference to any matching group@group1represents the reference for the group1 and can be used in other fixtures@group.*represents the reference for a random matching groupFakers :
User: user{1..10}: name: "User n°{@} : {{name.lastName}} {{name.firstName}}" email: "{{internet.email}}"You can use Faker.js API to provide fake data
Custom function :
User: user{1..10}: favoriteNumber: "(function() { return Math.round(Math.random()*1000);})()"You can use custom functions too
Credits
License
ISC