Getting Started
Install Rivet using npm:
npm install --save-dev rivetOr via yarn:
yarn add --dev rivetLet's get started by creating a simple service API. First, create a file route.js
module.exports = function (request, response) {
const payload = {
data: {
userId: 1,
id: 1,
title: 'sunt aut facere repellat provident occaecati excepturi optio reprehenderit',
body: 'quia et suscipit suscipit recusandae consequuntur expedita et cum reprehenderit molestiae ut ut quas totam nostrum rerum est autem sunt rem eveniet architecto'
}
};
response.status(200).json(payload);
};Then, create a basic consumer contract file at contracts/example.contract.js
module.exports = {
title: 'Example',
type: 'object',
properties: {
data: {
type: 'object',
properties: {
userId: { type: 'integer' },
id: { type: 'integer' },
title: { type: 'string' },
body: { type: 'string' }
},
required: ['userId', 'id', 'title', 'body'],
}
},
required: ['data'],
};Writing Tests
Consumer Test: Stubbing Data with a Contract
By using the contract to generate data for your contract tests, changes to the contract should expose any breaking-changes to the service API.
Install dependencies:
Create a consumer.test.js file
consumer.test.js fileService Test: Satisfying a Contract
Contracts can be used in any environment, given that they are JSON Schema files. The example here shows testing in a node environment, with jest, to validate that your api satisfies a consumer contract.
Install dependencies:
Create a service.test.js file
service.test.js fileLast updated
Was this helpful?