FeathersJS:在服务测试中注入 HTTP headers
FeathersJS: Injecting HTTP headers in Service Test
在 feathersJS 服务中,我有一个 before
钩子 运行 期望某个 HTTP header 存在:
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 挂钩之前注入 headers 的方法。有问题的测试是:
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
});
});
有没有不需要通过 node-fetch
或 requests
使用 HTTP 调用的方法?
params
将是您传递的任何内容。只需将 params.headers
设置为您想要测试的内容,例如
const getParams = {
...params,
headers: { 'header-wanted': 'something' }
};
const resp = await service.get('id', getParams);
在 feathersJS 服务中,我有一个 before
钩子 运行 期望某个 HTTP header 存在:
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 挂钩之前注入 headers 的方法。有问题的测试是:
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
});
});
有没有不需要通过 node-fetch
或 requests
使用 HTTP 调用的方法?
params
将是您传递的任何内容。只需将 params.headers
设置为您想要测试的内容,例如
const getParams = {
...params,
headers: { 'header-wanted': 'something' }
};
const resp = await service.get('id', getParams);