Ошибка тайм-аута Zapier при тестировании

Я получаю ошибку тайм-аута в большинстве, но не всегда, когда я запускаю zapier test независимо от того, добавляю ли я --debug или нет, вот мой код:

require('should');

const zapier = require('zapier-platform-core');

// Use this to make test calls into your app:
const App = require('../index');
const appTester = zapier.createAppTester(App);

describe('Zapier - ON24 CLI Auth App', () => {

  it('should have Access Tokens pass the authentication from ON24 APIs', (done) => {

    const bundle = {
        authData:{
        accessTokenKey: 'abc', 
        accessTokenSecret: 'def',
        client_id: '123'
        }
    };

    appTester(App.authentication.test, bundle)
      .then((response) => {        

        response.status.should.eql(200);        
        done();
      })
      .catch(done);
  });
});

Ошибка:

Ошибка: превышено время ожидания 2000 мс. Для асинхронных тестов и ловушек убедитесь, что вызывается "done()"; если возвращаете обещание, убедитесь, что оно разрешается

Пытался добавить this.timeout(5000); выше const bundle, но это говорит о том, что timeout не является функцией.

Обновление - тестовый модуль:

const testAuth = (z, bundle) => {

    return z.request({
              url: `https://wccqa.on24.com/wcc/api/v2/client/${bundle.authData.client_id}/languages`

            }).then((response) => {

                if(response.status === 401){
                    throw new Error('The API Keys provided are invalid');
                }
                return response;
            });
};

module.exports = {

    type: 'custom',
    fields: [
        {
            key: 'accessTokenKey', label: 'Access Token Key', required: true, type: 'string'
        },
        {
            key: 'accessTokenSecret', label: 'Access Token Secret', required: true, type: 'string'
        },
                                {
            key: 'client_id', label: 'Client Id', required: true, type: 'string'
        }
    ],
    test: testAuth,
    connectionLabel: 'testAuth connectionLabel'
};

person esteban rincon    schedule 15.12.2017    source источник
comment
Я никогда не использовал это, но, глядя на документы, может быть что-то не так с аргументом для appTester(...). Как выглядит ваш App.authentication.test файл/метод?   -  person Phix    schedule 16.12.2017
comment
вроде должно работать. когда тест терпит неудачу, запрос также терпит неудачу? вы можете проверить, добавив журналы консоли в функцию catch (и также журнал успеха, чтобы вы видели, что случилось)   -  person xavdid    schedule 16.12.2017


Ответы (2)


Я очень страдал от этой ошибки. Ошибка связана с тестовой средой, которая обычно не ждет больше 2 seconds. Что бы вы ни делали в тестах, тайм-аут возникает, если не обрабатывается с помощью чего-то вроде следующего. В package.json вашего приложения добавьте время ожидания для среды выполнения mocha (15 seconds) в этом примере. Пожалуйста, не стесняйтесь устанавливать более высокий тайм-аут во время тестирования.

"scripts": { "test": "node node_modules/mocha/bin/mocha --recursive --timeout 15000" },

Как сказали другие респонденты, изначально добавляйте z.console.log(msg) в свой код, чтобы увидеть, что происходит с вашими запросами.

person Prasad    schedule 26.01.2018
comment
Добавление тайм-аута в package.json сработало для меня. Спасибо. - person Haris ur Rehman; 03.03.2018

Что сработало для меня, так это запуск тестов с дополнительным параметром

тест Zapier -t 15000

Версия командной строки 10.0.1.

person Dmitry Kh    schedule 23.07.2020