Итак, я немного новичок в nodejs и обработке обещаний, и я пытаюсь понять, что я здесь делаю неправильно.
Прямо сейчас, когда я запускаю этот тест, я ожидаю, что он потерпит неудачу с сообщением об ошибке в throw new Error
, но вместо этого тест проходит, а затем просто печатает сообщение об ошибке Invalid: XXXXXXX
как часть UnhandledPromiseRejectionWarning
.
Вот как выглядит мой тест. Как я могу сделать этот тест непройденным, если valid
не true
? Этот тест проводится с шуткой. Я приложил скриншот прохождения теста (когда он должен завершиться неудачно).
const request = require('supertest');
const { verifyJsonResponse } = require('../verifiers/verifiers');
const Ajv = require('ajv');
const ajv = new Ajv({allErrors: true});
const assert = require('assert');
const baseURL = 'myAPIBaseUrl';
const endPointExtensions = ['myAPIExtension'];
const schema = require('./../pathToJsonSchema/schemaFile.json');
describe('runs remotely specified test cases', () => {
it('should receive expected response for each parameter group', () => {
request(baseURL).get(endPointExtensions[0]).then((res) => {
const validate = ajv.compile(schema);
const valid = validate(res.body);
if (valid) console.log('Valid!');
else throw new Error('Invalid: ' + ajv.errorsText(validate.errors));
});
});
});