loopback-jest v1.3.0
loopback-jest
Repository of jest matchers for loopback
External Dependencies
This plugin expects that you have jest and loopback packages available to import.
Usage with Jest
Install Jest Plugins
yarn add --dev jest-plugins loopback-jest
Find your jest config which is either in your package.json or in a top-level file called jest.config.js. Add a key setupTestFrameworkScriptFile and point it to another file at the top-level called jest-plugins.js.
require('jest-plugins')(['loopback-jest']);
Added Matchers
.toBeModel()
Expect that a model instance is actually a loopback Model. It uses instanceof loopback.Model
internally.
Example:
const model = new loopback.Model();
expect(model).toBeModel();
.toHaveRelationship(name, model)
Expect that the model class has a relationship called name, with a model called model.
Example:
const Soccer = loopback.createModel({
name: 'Soccer',
relations: {
balls: {
type: 'hasMany',
model: 'Ball'
},
},
});
expect(Soccer).toHaveRelationship('balls', 'Ball');
.toHavePropertyOfType(name, type)
Expect that the model class has a property with name
and type
.
Example:
const Soccer = loopback.createModel({
name: 'Soccer',
properties: {id: 'number'}
});
expect(Soccer).toHavePropertyOfType('id', Number);
.toBelongsTo(model, relationship, foreignKey)
Expect that the model class belongs to an model
with named relationship
, optionally with foreignKey
.
Example:
const Soccer = loopback.createModel({
name: 'Soccer',
relations: {
stadium: {
type: 'belongsTo',
model: 'Stadium',
foreignKey: 'stadiumId',
},
},
});
expect(Soccer).toBelongsTo('Stadium', 'stadium', 'stadiumId');
.toHaveOne(model, relationship, foreignKey)
Expect that the model class has one model
with named relationship
, and optionally with foreignKey
.
Example:
const Soccer = loopback.createModel({
name: 'Soccer',
relations: {
winner: {
type: 'hasOne',
model: 'Winner',
foreignKey: 'winnerId',
},
},
});
expect(Soccer).toHaveOne('Winner', 'winner', 'winnerId');
.toHaveMany(model, relationship, foreignKey)
Expect that the model class have many model
s with named relationship
, and optionally with foreignKey
.
Example:
const Soccer = loopback.createModel({
name: 'Soccer',
relations: {
players: {
type: 'hasMany',
model: 'Player',
foreignKey: 'soccerId',
},
},
});
expect(Soccer).toHaveMany('Player', 'players', 'soccerId');
.toInherits(BaseModel)
Expect that the Model class inherits BaseModel.
Example:
const Game = loopback.createModel({
name: 'Game',
});
const Soccer = loopback.createModel({
name: 'Soccer',
base: Game,
});
expect(Soccer).toInherits(Game);