add tests for response headers (#86091)

This commit is contained in:
Mikhail Shustov 2020-12-16 19:52:51 +03:00 committed by GitHub
parent 5c64db9695
commit 0be9230ff3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -20,6 +20,7 @@
import { Server } from 'http';
import { readFileSync } from 'fs';
import supertest from 'supertest';
import { omit } from 'lodash';
import { ByteSizeValue, schema } from '@kbn/config-schema';
import { HttpConfig } from './http_config';
@ -887,6 +888,53 @@ describe('conditional compression', () => {
expect(response.header).not.toHaveProperty('content-encoding');
});
});
describe('response headers', () => {
it('allows to configure "keep-alive" header', async () => {
const { registerRouter, server: innerServer } = await server.setup({
...config,
keepaliveTimeout: 100_000,
});
const router = new Router('', logger, enhanceWithContext);
router.get({ path: '/', validate: false }, (context, req, res) =>
res.ok({ body: req.route })
);
registerRouter(router);
await server.start();
const response = await supertest(innerServer.listener)
.get('/')
.set('Connection', 'keep-alive')
.expect(200);
expect(response.header.connection).toBe('keep-alive');
expect(response.header['keep-alive']).toBe('timeout=100');
});
it('default headers', async () => {
const { registerRouter, server: innerServer } = await server.setup(config);
const router = new Router('', logger, enhanceWithContext);
router.get({ path: '/', validate: false }, (context, req, res) =>
res.ok({ body: req.route })
);
registerRouter(router);
await server.start();
const response = await supertest(innerServer.listener).get('/').expect(200);
const restHeaders = omit(response.header, ['date', 'content-length']);
expect(restHeaders).toMatchInlineSnapshot(`
Object {
"accept-ranges": "bytes",
"cache-control": "private, no-cache, no-store, must-revalidate",
"connection": "close",
"content-type": "application/json; charset=utf-8",
}
`);
});
});
});
test('exposes route details of incoming request to a route handler (POST + payload options)', async () => {