jest-json-schema-matchers ![CircleCI](https://camo.githubusercontent.com/6defc504c0b494ca8e8d386a1007a5478115f65f62043b586bf39ceabc8e6c96/68747470733a2f2f636972636c6563692e636f6d2f67682f697473746861746775792f6a6573742d6a736f6e2d736368656d612d6d617463686572732f747265652f6d61737465722e7376673f7374796c653d737667)
![npm version](https://camo.githubusercontent.com/5923cefe9d08829da1fc31aa46e8c559c9fa5979cf94742487d878c00b9c8bd6/68747470733a2f2f62616467652e667572792e696f2f6a732f6a6573742d6a736f6e2d736368656d612d6d617463686572732e737667)
npm install jest-json-schema-matchers
// __tests__/data/data.json
{
"base": {
"referenced": {
"name": "Referenced data schema"
}
}
}
// __tests__/schemas/base.json
{
"type": "object",
"required": ["base"],
"properties": {
"base": {
"type": "object",
"required": ["referenced"],
"properties": {
"referenced": {
"$ref": "descriptions/referenced.json"
}
}
}
}
}
// __tests__/schemas/descriptions/referenced.json
{
"type": "object",
"required": ["name"],
"properties": {
"name": {
"type": "string"
}
}
}
// __tests__/index.spec.js
const matchers = require('jest-json-schema-matchers');
expect.extend(matchers({
schemaRoot: '__tests__/schemas/',
}));
describe('jest-json-schema-matchers', () => {
it('matches json schema and resolves references', () => {
const data = require('./data/data.json');
expect(data).toMatchSchema('base.json');
});
})