«Не удалось получить конфигурацию» с использованием клиента Wolkenkit в тесте Mocha через Node - PullRequest
1 голос
/ 24 февраля 2020

Я пытаюсь взаимодействовать с моим приложением Wolkenkit с помощью теста Mocha в Node.

Следуя инструкции для клиентских подключений , при выполнении теста я получаю следующую ошибку:

Error: Failed to get configuration.
  at ConfigurationWatcher.wentOffline (node_modules/wolkenkit-client/dist/ConfigurationWatcher.js:113:28)
  at /home/aef/Projects/experiments/wolkenkit_bullet/node_modules/wolkenkit-client/dist/ConfigurationWatcher.js:101:16
  at tryCatch (node_modules/es6-promise/dist/es6-promise.js:409:12)
  at invokeCallback (node_modules/es6-promise/dist/es6-promise.js:424:13)
  at publish (node_modules/es6-promise/dist/es6-promise.js:398:7)
  at publishRejection (node_modules/es6-promise/dist/es6-promise.js:339:3)
  at flush (node_modules/es6-promise/dist/es6-promise.js:128:5)
  at processTicksAndRejections (internal/process/task_queues.js:79:11)

Любая помощь в решении этой проблемы очень ценится.

Я добавил следующие зависимости в package.json:

"devDependencies": {
  "chai": "^4.2.0",
  "mocha": "^7.0.1"
},
"dependencies": {
  "wolkenkit": "^3.1.2",
  "wolkenkit-client": "^3.1.0"
},

Мой тестовый код выглядит следующим образом:

'using strict';

const expect = require('chai').expect;
const wolkenkit = require('wolkenkit-client');

describe("wolkenkit app", () => {
    it("first test", async () => {
        const app = await wolkenkit.connect({host: 'local.wolkenkit.io', port: 3000});
    });
})

Ответы [ 2 ]

3 голосов
/ 25 февраля 2020

Хотя установка переменной среды в узле не работала, проблема была решена путем установки NODE_TLS_REJECT_UNAUTHORIZED в 0 в системной среде, например:

export NODE_TLS_REJECT_UNAUTHORIZED=0

Спасибо @mattwagl за указание в правильном направлении.

2 голосов
/ 24 февраля 2020

Эта ошибка, вероятно, вызвана вашим локальным самоподписанным сертификатом. Клиент не может подключиться к бэкэнду, поскольку он не доверяет этому сертификату. Вы можете обойти эту проверку, используя флаг process.env.NODE_TLS_REJECT_UNAUTHORIZED, подобный следующему…

process.env.NODE_TLS_REJECT_UNAUTHORIZED = 0;

suite('integration', () => {
  let application;

  suiteSetup(async () => {
    application = await wolkenkit.connect({ host: 'local.wolkenkit.io', port: 3000 });
  });

Другой вариант - добавить сертификат в доверенные сертификаты.

...