Skip to content

Commit

Permalink
[7.x] [jest] use circus runner for the integration tests (#102782) (#…
Browse files Browse the repository at this point in the history
…102948)

* [jest] use circus runner for the integration tests (#102782)

* use circus runner for integration tests

* do not use done callback. jestjs/jest#10529

* fix type error

* disable reporting for so 100k migration

Co-authored-by: Mikhail Shustov <restrry@gmail.com>
  • Loading branch information
kibanamachine and mshustov authored Jun 22, 2021
1 parent d00d0d2 commit be8aea6
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 27 deletions.
1 change: 0 additions & 1 deletion jest.config.integration.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ module.exports = {
rootDir: '.',
roots: ['<rootDir>/src', '<rootDir>/packages'],
testMatch: ['**/integration_tests**/*.test.{js,mjs,ts,tsx}'],
testRunner: 'jasmine2',
testPathIgnorePatterns: preset.testPathIgnorePatterns.filter(
(pattern) => !pattern.includes('integration_tests')
),
Expand Down
51 changes: 27 additions & 24 deletions src/core/server/http/integration_tests/request.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,24 +163,24 @@ describe('KibanaRequest', () => {

describe('events', () => {
describe('aborted$', () => {
it('emits once and completes when request aborted', async (done) => {
it('emits once and completes when request aborted', async () => {
expect.assertions(1);
const { server: innerServer, createRouter } = await server.setup(setupDeps);
const router = createRouter('/');

const nextSpy = jest.fn();
router.get({ path: '/', validate: false }, async (context, request, res) => {
request.events.aborted$.subscribe({
next: nextSpy,
complete: () => {
expect(nextSpy).toHaveBeenCalledTimes(1);
done();
},
});

// prevents the server to respond
await delay(30000);
return res.ok({ body: 'ok' });
const done = new Promise<void>((resolve) => {
router.get({ path: '/', validate: false }, async (context, request, res) => {
request.events.aborted$.subscribe({
next: nextSpy,
complete: resolve,
});

// prevents the server to respond
await delay(30000);
return res.ok({ body: 'ok' });
});
});

await server.start();
Expand All @@ -191,6 +191,8 @@ describe('KibanaRequest', () => {
.end();

setTimeout(() => incomingRequest.abort(), 50);
await done;
expect(nextSpy).toHaveBeenCalledTimes(1);
});

it('completes & does not emit when request handled', async () => {
Expand Down Expand Up @@ -299,25 +301,24 @@ describe('KibanaRequest', () => {
expect(completeSpy).toHaveBeenCalledTimes(1);
});

it('emits once and completes when response is aborted', async (done) => {
it('emits once and completes when response is aborted', async () => {
expect.assertions(2);
const { server: innerServer, createRouter } = await server.setup(setupDeps);
const router = createRouter('/');

const nextSpy = jest.fn();

router.get({ path: '/', validate: false }, async (context, req, res) => {
req.events.completed$.subscribe({
next: nextSpy,
complete: () => {
expect(nextSpy).toHaveBeenCalledTimes(1);
done();
},
});
const done = new Promise<void>((resolve) => {
router.get({ path: '/', validate: false }, async (context, req, res) => {
req.events.completed$.subscribe({
next: nextSpy,
complete: resolve,
});

expect(nextSpy).not.toHaveBeenCalled();
await delay(30000);
return res.ok({ body: 'ok' });
expect(nextSpy).not.toHaveBeenCalled();
await delay(30000);
return res.ok({ body: 'ok' });
});
});

await server.start();
Expand All @@ -327,6 +328,8 @@ describe('KibanaRequest', () => {
// end required to send request
.end();
setTimeout(() => incomingRequest.abort(), 50);
await done;
expect(nextSpy).toHaveBeenCalledTimes(1);
});
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,12 @@ describe('migration v2', () => {
},
],
},
// reporting loads headless browser, that prevents nodejs process from exiting.
xpack: {
reporting: {
enabled: false,
},
},
},
{
oss,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,12 @@ describe('migration from 7.7.2-xpack with 100k objects', () => {
},
],
},
// reporting loads headless browser, that prevents nodejs process from exiting.
xpack: {
reporting: {
enabled: false,
},
},
},
{
oss,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const kibanaVersion = Env.createDefault(REPO_ROOT, getEnvOptions()).packageInfo.
const savedObjectIndex = `.kibana_${kibanaVersion}_001`;

describe('uiSettings/routes', function () {
jest.setTimeout(10000);
jest.setTimeout(120_000);

beforeAll(startServers);
/* eslint-disable jest/valid-describe */
Expand Down
4 changes: 3 additions & 1 deletion src/core/server/ui_settings/integration_tests/lib/servers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,10 @@ export function getServices() {

export async function stopServers() {
services = null!;
if (servers) {
if (esServer) {
await esServer.stop();
}
if (kbn) {
await kbn.stop();
}
}

0 comments on commit be8aea6

Please sign in to comment.