Супертест возвращает 301 с помощью экспресс-приложения.Приложение принимает только размещенный сервер - PullRequest
0 голосов
/ 05 февраля 2019

Привет! Я использую supertest для тестирования приложения сервера Node js express.

Вот то, чего я пытаюсь достичь.

let request = require('supertest');
let app = require('./server.js');

request(app).get("/api").then(data=>{//*do something here*//});

Однако я получаю 301 Moved Permanently

Если я на самом деле запускаю свой сервер на порту 8008, тогда меняю тест на

let request = require('supertest');
let app = require('./server.js');
let agent = request.agent('localhost:8008');

agent.get("/api").then(data=>{//*do something here*//});

Затем я получаю правильные ответы API, как я и ожидал.

Есть ли способ заставить его работать и получить ответ 200, используя request(app) вместо localhost:8008?

Я буду выполнять тесты в рамках непрерывной интеграции, и у меня нет полного контроля над средой тестирования, так как я не смогу запустить сервер тестирования для доступа к localhost.

Спасибо.

1 Ответ

0 голосов
/ 05 февраля 2019

Я обнаружил, что это проблема с SSL-соединением, которое я выполнял на экспрессе.

Я условно отключил SSL-поддержку в среде тестирования, и она работает, как и ожидалось!

Надеюсь, что это поможет любому, кто столкнется с такой же проблемой в будущем:)

...