Я пытаюсь написать модульные тесты для кода узла с chai/chai-http. Все работало нормально, пока я не переключил свой сервер на HTTPS-сервер, но поскольку мой сертификат подписан внутренним корнем компании, а общее имя используемого сертификата не совпадает с localhost, chai бросает ошибку на мой запрос ,Установить принятый список CA и игнорировать ошибки SSL с chai-http
Я хотел бы сделать следующее:
Игнорировать SSL ошибки, связанные с проверкой домена.
Установить список ЦС для проверки. Если этого не сделать, мне будет хорошо, если вы просто пропустите все проверки сертификатов на стороне клиента.
Мой код выглядит следующим образом:
var chai = require('chai');
var chaiHttp = require('chai-http');
var https = require('https');
var fs = require('fs');
var server = require('../app.js');
chai.should();
chai.use(chaiHttp);
https.globalAgent.options.ca = [
fs.readFileSync('./ssl/Root.cer'),
];
describe('Attachments', function() {
it('should succeed when passed valid arguments', function (done) {
chai.request(server)
.get('/10881057300D0A4E8E8586542AA3626E41')
.set('userId', 'user')
.set('region', 'US')
.end(function (err, res) {
chai.assert(res);
res.should.have.status(200);
chai.assert(res.body);
done();
});
});
it('should return error without userId header', function (done) {
chai.request(server)
.get('/10881057300D0A4E8E8586542AA3626E41')
.end(function (err, res) {
chai.assert(res);
res.should.have.status(500);
chai.assert(res.type == 'application/json');
done();
});
});
});
И я получаю следующую трассировку стека:
Uncaught AssertionError: Unspecified AssertionError
at test\test.js:21:18
at Test.Request.callback (node_modules\superagent\lib\node\index.js:615:12
)
at ClientRequest.<anonymous> (node_modules\superagent\lib\node\index.js:56
7:10)
at TLSSocket.socketErrorListener (_http_client.js:267:9)
at emitErrorNT (net.js:1253:8)
У меня есть один и тот же вопрос. Вы нашли решение? –