1
- import * as assert from 'assert ' ;
1
+ import { expect } from 'chai ' ;
2
2
import * as path from 'path' ;
3
3
import * as vscode from 'vscode' ;
4
4
// tslint:disable-next-line: no-duplicate-imports
@@ -28,10 +28,11 @@ suite('Extension Tests', () => {
28
28
const expected = [
29
29
{ subcommand : 'build' , group : vscode . TaskGroup . Build , cwd : projects [ 0 ] } ,
30
30
{ subcommand : 'build' , group : vscode . TaskGroup . Build , cwd : projects [ 1 ] } ,
31
- { subcommand : 'check' , group : vscode . TaskGroup . Build } ,
32
- { subcommand : 'test' , group : vscode . TaskGroup . Test } ,
33
- { subcommand : 'clean' , group : vscode . TaskGroup . Clean } ,
34
- { subcommand : 'run' , group : undefined } ,
31
+ { subcommand : 'check' , group : vscode . TaskGroup . Build , cwd : projects [ 0 ] } ,
32
+ { subcommand : 'check' , group : vscode . TaskGroup . Build , cwd : projects [ 1 ] } ,
33
+ { subcommand : 'test' , group : vscode . TaskGroup . Test , cwd : projects [ 1 ] } ,
34
+ { subcommand : 'clean' , group : vscode . TaskGroup . Clean , cwd : projects [ 1 ] } ,
35
+ { subcommand : 'run' , group : undefined , cwd : projects [ 1 ] } ,
35
36
] ;
36
37
37
38
const whenWorkspacesActive = projects . map ( path =>
@@ -51,7 +52,7 @@ suite('Extension Tests', () => {
51
52
// Wait until the first server is ready
52
53
await whenWorkspacesActive [ 0 ] ;
53
54
54
- assert ( await currentTasksInclude ( [ expected [ 0 ] ] ) ) ;
55
+ expect ( await fetchBriefTasks ( ) ) . to . include . deep . members ( [ expected [ 0 ] ] ) ;
55
56
56
57
// Now test for the second project
57
58
await vscode . commands . executeCommand (
@@ -63,32 +64,25 @@ suite('Extension Tests', () => {
63
64
) ;
64
65
// Wait until the second server is ready
65
66
await whenWorkspacesActive [ 1 ] ;
66
- assert ( await currentTasksInclude ( expected ) ) ;
67
+ expect ( await fetchBriefTasks ( ) ) . to . include . deep . members ( expected ) ;
67
68
} ) . timeout ( 60000 ) ;
68
69
} ) ;
69
70
70
- async function currentTasksInclude (
71
- expected : Array < {
71
+ /** Fetches current VSCode tasks' partial objects for ease of assertion */
72
+ async function fetchBriefTasks ( ) : Promise <
73
+ Array < {
72
74
subcommand : string ;
73
75
group : vscode . TaskGroup | undefined ;
74
76
cwd ?: string ;
75
- } > ,
76
- ) : Promise < boolean > {
77
+ } >
78
+ > {
77
79
const tasks = await vscode . tasks . fetchTasks ( ) ;
78
80
79
- return expected . every ( ( { subcommand, group, cwd } ) =>
80
- tasks . some (
81
- task =>
82
- task . definition . type === 'cargo' &&
83
- task . definition . subcommand === subcommand &&
84
- task . group === group &&
85
- ( ! cwd ||
86
- cwd ===
87
- ( task . execution &&
88
- task . execution . options &&
89
- task . execution . options . cwd ) ) ,
90
- ) ,
91
- ) ;
81
+ return tasks . map ( task => ( {
82
+ subcommand : task . definition . subcommand ,
83
+ group : task . group ,
84
+ cwd : task . execution && task . execution . options && task . execution . options . cwd ,
85
+ } ) ) ;
92
86
}
93
87
94
88
/**
0 commit comments