FeathersJS: внедрение HTTP-заголовков в Service Test - PullRequest
1 голос
/ 20 марта 2019

В сервисе feathersJS у меня запускается ловушка before, которая ожидает, что существует определенный заголовок HTTP:

src / services / service_name / service_name.hooks.js

const validationHook = () => (context, next) => {
  if (!context.params.headers.hasOwnProperty('header-wanted'))
    throw new errors.BadRequest();
  next(null, context);
};

module.exports = {
    before: {
        all: [cronValidationHook()],
...
..
.

Однако при тестировании этой службы в сгенерированном тестовом файле из feathers-cli я не нашел способа внедрить заголовки перед вызовом ловушки before.Рассматриваемый тест:

test / services / service_name.test.js

describe('get', () => {
  it('should run "id" endpoint', async () => {
    const service = app.service('v1/cron');
    const resp = await service.get('id', params);
    // Assertions exist after this call
   });
});

Есть ли способ сделать это, не требующий использования HTTPзвоните через node-fetch или requests?

1 Ответ

2 голосов
/ 21 марта 2019

params будет то, что вы пройдете.Просто установите params.headers на то, что вы хотите проверить, например,

const getParams =  {
   ...params,
   headers: { 'header-wanted': 'something' }
};
const resp = await service.get('id', getParams);
...