Я обнаружил, что у меня много повторных тестов в нескольких интеграционных тестах в REST API Node.js.Так, например, я тестирую недопустимые запросы для каждой конечной точки, где я ожидаю, что ошибка всегда будет иметь одинаковые свойства.
import { app } from 'server';
import * as request from 'supertest';
describe('Authentication tests', () => {
describe('POST /login', () => {
// other test cases
// describe('valid request should ...', () => {...})
describe('invalid requests with missing fields', () => {
let response = null;
beforeAll(async () => {
await request(app)
.post('/login')
.expect('Content-Type', 'application/json; charset=utf-8')
.field('email', 'invalid@test.com')
.then(res => {
response = res;
});
});
it('should return an invalid status code', () => {
expect(response.status).toBe(400);
});
it('should return a valid error schema', () => {
expect(typeof response.body).toBe('object');
expect(response.body).toHaveProperty('error');
expect(response.body.error).toHaveProperty('code');
expect(response.body.error).toHaveProperty('message');
});
it('should return an error with explicit message', () => {
expect(response.body.error).toHaveProperty('message');
});
});
});
});
Предоставляет ли Jest какой-либо способ создания некоторых тестов общего ресурса, чтобы я мог инкапсулировать эту проверку ошибок иобъявить это в других случаях, чтобы избежать повторения?