@@ -8,19 +8,33 @@ import _ from 'lodash';
88import expect from '@kbn/expect' ;
99import url from 'url' ;
1010import 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
1220const {
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