@@ -10,16 +10,24 @@ const fixtureDir = path.resolve(
10
10
11
11
suite ( 'Extension Tests' , ( ) => {
12
12
test ( 'cargo tasks are auto-detected' , async ( ) => {
13
- const projectPath = path . join ( fixtureDir , 'bare-lib-project' ) ;
13
+ const projectPath = fixtureDir ;
14
14
const projectUri = Uri . file ( projectPath ) ;
15
+ const projects = [
16
+ path . join ( projectPath , 'bare-lib-project' ) ,
17
+ path . join ( projectPath , 'another-lib-project' ) ,
18
+ ] ;
15
19
16
20
await vscode . commands . executeCommand ( 'vscode.openFolder' , projectUri ) ;
17
21
await vscode . workspace . openTextDocument (
18
- Uri . file ( path . join ( projectPath , 'src' , 'lib.rs' ) ) ,
22
+ Uri . file ( path . join ( projects [ 0 ] , 'src' , 'lib.rs' ) ) ,
23
+ ) ;
24
+ await vscode . workspace . openTextDocument (
25
+ Uri . file ( path . join ( projects [ 1 ] , 'src' , 'lib.rs' ) ) ,
19
26
) ;
20
27
21
28
const expected = [
22
- { subcommand : 'build' , group : vscode . TaskGroup . Build } ,
29
+ { subcommand : 'build' , group : vscode . TaskGroup . Build , cwd : projects [ 0 ] } ,
30
+ { subcommand : 'build' , group : vscode . TaskGroup . Build , cwd : projects [ 1 ] } ,
23
31
{ subcommand : 'check' , group : vscode . TaskGroup . Build } ,
24
32
{ subcommand : 'test' , group : vscode . TaskGroup . Test } ,
25
33
{ subcommand : 'clean' , group : vscode . TaskGroup . Clean } ,
@@ -28,13 +36,18 @@ suite('Extension Tests', () => {
28
36
29
37
const tasks = await vscode . tasks . fetchTasks ( ) ;
30
38
31
- for ( const { subcommand, group } of expected ) {
39
+ for ( const { subcommand, group, cwd } of expected ) {
32
40
assert (
33
41
tasks . some (
34
42
task =>
35
43
task . definition . type === 'cargo' &&
36
44
task . definition . subcommand === subcommand &&
37
- task . group === group ,
45
+ task . group === group &&
46
+ ( ! cwd ||
47
+ cwd ===
48
+ ( task . execution &&
49
+ task . execution . options &&
50
+ task . execution . options . cwd ) ) ,
38
51
) ,
39
52
) ;
40
53
}
0 commit comments