Подделка сервисов с использованием server.js и proxy.config.json с использованием Protractor - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь смоделировать сервис, используя server.js и файл proxy.config.json, чтобы я мог использовать этот смоделированный сервис в тесте Protractor. У меня есть тестовый файл, подобный следующему:

const server = require('server');
const { get, post } = server.router;
const { json } = server.reply;

server({ port: 3000 }, [
    get('/abc', ctx => { 
        return json({
            foo: "bar"
        })
    })
]);

и файл proxy.config.json, например:

{
    "/xyz": {
        "target": "http://localhost:3000/abc",
        "changeOrigin": true,
        "secure": false,
        "logLevel": "debug",
        "pathRewrite": {
            "^/xyz": ""
        }
    }
}

Затем я запускаю свои тесты, вызывая

ng e2e --proxy-config proxy.config.json

Однако я не добился успеха, потому что мое приложение запускается, например, в http://localhost:49156, а служба, которую я хочу смоделировать, запускается в https://localhost:8443/xyz. Если я хочу смоделировать и прокси-сервер что-то из тот же порт / протокол, что и в приложении (49156 и HTTP), я могу это сделать, однако для службы, работающей в порту 8443 и https, я не могу. Может кто-то помочь мне с этим? Что я делаю неправильно? Спасибо за ваше время.

1 Ответ

0 голосов
/ 07 мая 2019

Я наконец смог решить свою начальную проблему, создав файл environmentE2E.ts следующим образом:

export const environment = {
  production: false,
  baseURL: 'http://localhost:49156'
};

, добавив в файл angular-cli.json следующее:

      "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts",
        "e2e": "environments/environmentE2E.ts"  // Added only this line, the others were already there
      }

и вызвал тесты с помощью следующей команды:

ng e2e --proxy-config proxy.config.json --environment e2e

Надеюсь, это поможет другим.Спасибо.

...