Skip to content

Commit 5f850db

Browse files
committed
moved TM integration tests to TS
1 parent 10b192b commit 5f850db

File tree

2 files changed

+44
-29
lines changed

2 files changed

+44
-29
lines changed

x-pack/test/plugin_api_integration/test_suites/task_manager/index.js renamed to x-pack/test/plugin_api_integration/test_suites/task_manager/index.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
* you may not use this file except in compliance with the Elastic License.
55
*/
66

7-
export default function ({ loadTestFile }) {
7+
import { FtrProviderContext } from '../../ftr_provider_context';
8+
9+
export default function ({ loadTestFile }: FtrProviderContext) {
810
describe('task_manager', function taskManagerSuite() {
911
this.tags('ciGroup2');
10-
loadTestFile(require.resolve('./task_manager_integration'));
12+
loadTestFile(require.resolve('./task_management'));
1113
});
1214
}
Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,33 @@ import _ from 'lodash';
88
import expect from '@kbn/expect';
99
import url from 'url';
1010
import supertestAsPromised from 'supertest-as-promised';
11+
import { FtrProviderContext } from '../../ftr_provider_context';
12+
import TaskManagerMapping from '../../../../plugins/task_manager/server/saved_objects/mappings.json';
13+
import {
14+
DEFAULT_MAX_WORKERS,
15+
DEFAULT_POLL_INTERVAL,
16+
} from '../../../../plugins/task_manager/server/config';
17+
import { ConcreteTaskInstance } from '../../../../plugins/task_manager/server';
18+
import { SavedObjectsRawDoc } from '../../../../../src/core/server';
1119

1220
const {
1321
task: { properties: taskManagerIndexMapping },
14-
} = require('../../../../plugins/task_manager/server/saved_objects/mappings.json');
22+
} = TaskManagerMapping;
1523

16-
const {
17-
DEFAULT_MAX_WORKERS,
18-
DEFAULT_POLL_INTERVAL,
19-
} = require('../../../../plugins/task_manager/server/config.ts');
24+
const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms));
2025

21-
const delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
26+
export interface RawDoc {
27+
_id: string;
28+
_source: any;
29+
_type?: string;
30+
}
31+
export interface SearchResults {
32+
hits: {
33+
hits: RawDoc[];
34+
};
35+
}
2236

23-
export default function ({ getService }) {
37+
export default function ({ getService }: FtrProviderContext) {
2438
const es = getService('legacyEs');
2539
const log = getService('log');
2640
const retry = getService('retry');
@@ -53,45 +67,43 @@ export default function ({ getService }) {
5367
}
5468
});
5569

56-
function currentTasks() {
70+
function currentTasks(): Promise<{
71+
docs: ConcreteTaskInstance[];
72+
}> {
5773
return supertest
5874
.get('/api/sample_tasks')
5975
.expect(200)
6076
.then((response) => response.body);
6177
}
6278

63-
function currentTask(task) {
79+
function currentTask(task: string): ConcreteTaskInstance {
6480
return supertest
6581
.get(`/api/sample_tasks/task/${task}`)
6682
.send({ task })
6783
.expect(200)
6884
.then((response) => response.body);
6985
}
7086

71-
function ensureTasksIndexRefreshed() {
72-
return supertest
73-
.get(`/api/ensure_tasks_index_refreshed`)
74-
.send({})
75-
.expect(200)
76-
.then((response) => response.body);
87+
function ensureTasksIndexRefreshed(): Promise<void> {
88+
return supertest.get(`/api/ensure_tasks_index_refreshed`).send({}).expect(200);
7789
}
7890

79-
function historyDocs(taskId) {
91+
function historyDocs(taskId: string) {
8092
return es
8193
.search({
8294
index: testHistoryIndex,
8395
q: taskId ? `taskId:${taskId}` : 'type:task',
8496
})
85-
.then((result) => result.hits.hits);
97+
.then((result: SearchResults) => result.hits.hits);
8698
}
8799

88-
function scheduleTask(task) {
100+
function scheduleTask(task: string): ConcreteTaskInstance {
89101
return supertest
90102
.post('/api/sample_tasks/schedule')
91103
.set('kbn-xsrf', 'xxx')
92104
.send({ task })
93105
.expect(200)
94-
.then((response) => response.body);
106+
.then((response: { body: ConcreteTaskInstance }) => response.body);
95107
}
96108

97109
function runTaskNow(task) {
@@ -109,7 +121,7 @@ export default function ({ getService }) {
109121
.set('kbn-xsrf', 'xxx')
110122
.send({ task })
111123
.expect(200)
112-
.then((response) => response.body);
124+
.then((response: { body: ConcreteTaskInstance }) => response.body);
113125
}
114126

115127
function releaseTasksWaitingForEventToComplete(event) {
@@ -120,11 +132,14 @@ export default function ({ getService }) {
120132
.expect(200);
121133
}
122134

123-
function getTaskById(tasks, id) {
135+
function getTaskById(tasks: ConcreteTaskInstance[], id: string) {
124136
return tasks.filter((task) => task.id === id)[0];
125137
}
126138

127-
async function provideParamsToTasksWaitingForParams(taskId, data = {}) {
139+
async function provideParamsToTasksWaitingForParams(
140+
taskId: string,
141+
data: Record<string, unknown> = {}
142+
) {
128143
// wait for task to start running and stall on waitForParams
129144
await retry.try(async () => {
130145
const tasks = (await currentTasks()).docs;
@@ -564,12 +579,10 @@ export default function ({ getService }) {
564579
expect(await runNowResultWithExpectedFailure).to.eql({ id: taskThatFailsBeforeRunNow.id });
565580
});
566581

567-
async function expectReschedule(originalRunAt, currentTask, expectedDiff) {
582+
async function expectReschedule(originalRunAt: number, task: Task, expectedDiff: number) {
568583
const buffer = 10000;
569-
expect(Date.parse(currentTask.runAt) - originalRunAt).to.be.greaterThan(
570-
expectedDiff - buffer
571-
);
572-
expect(Date.parse(currentTask.runAt) - originalRunAt).to.be.lessThan(expectedDiff + buffer);
584+
expect(Date.parse(task.runAt) - originalRunAt).to.be.greaterThan(expectedDiff - buffer);
585+
expect(Date.parse(task.runAt) - originalRunAt).to.be.lessThan(expectedDiff + buffer);
573586
}
574587

575588
it('should run tasks in parallel, allowing for long running tasks along side faster tasks', async () => {

0 commit comments

Comments
 (0)