https://github.com/jc21/cypress-jsonschema-validation
https://github.com/jc21/cypress-jsonschema-validation
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/jc21/cypress-jsonschema-validation
- Owner: jc21
- License: mit
- Created: 2020-08-11T22:11:25.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-06T06:13:12.000Z (9 months ago)
- Last Synced: 2025-04-09T15:07:35.289Z (2 months ago)
- Language: TypeScript
- Size: 953 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cypress JSON Schema Validation Plugin
Validate data payload against a given JSON Schema.
[](https://www.npmjs.com/package/@jc21/cypress-jsonschema-validation)
[](https://www.npmjs.com/package/@jc21/cypress-jsonschema-validation)
[](https://www.npmjs.com/package/@jc21/cypress-jsonschema-validation)### Cypress Installation
```bash
yarn add @jc21/cypress-jsonschema-validation
```Then in your cypress Plugins file:
```javascript
const {JsonSchemaValidation} = require('@jc21/cypress-jsonschema-validation');module.exports = (on, config) => {
// ...
on('task', JsonSchemaValidation(config));
// ...
return config;
};
```### Cypress Usage
```javascript
describe('Basic API checks', () => {
it('Should return a valid health payload', function () {
cy.request('/healthz').then($response => {
cy.task('validateJsonSchema', {
data: $response.body,
verbose: true, // optional, default: false
schemaFile: './testing/schema.json', // path or full URL, see below
// Or you can also define the schema inline:
schema: {
"type": "object",
"properties": {
"id": {
"type": "integer"
}
}
},
}).should('equal', null);
});
});
});
```### The Schema
You can provide the `schemaFile` or the `schema`. One of these options is required and using both will cause an error.
The `schemaFile` can either be a file on disk or a URL. When using a file on disk and due to the fact that this plugin
runs on the Cypress Backend, the location of the file must be defined as either the full path on disk or relative path
to the running of the cypress command.### Options
| Option | Description | Optional | Default |
| ---------------- | ------------------------------------------------------------- | -------------------------- | ------------------------ |
| `schemaFile` | The location of the schema file to use for validation | when `schema` provided | |
| `schema` | Schema to use for validation. Cannot be used with schemaFile | when `schemaFile` provided | |
| `data` | The payload to validate | | |
| `verbose` | Console.log more info when validation fails | true | false |### Compiling Source
```bash
yarn install
yarn build
yarn test
```