@@ -16,11 +16,20 @@ import * as vscode from "vscode";
16
16
import { expect } from "chai" ;
17
17
import { SelectedXcodeWatcher } from "../../../src/toolchain/SelectedXcodeWatcher" ;
18
18
import { SwiftOutputChannel } from "../../../src/ui/SwiftOutputChannel" ;
19
- import { instance , MockedObject , mockFn , mockGlobalObject , mockObject } from "../../MockUtils" ;
19
+ import {
20
+ instance ,
21
+ MockedObject ,
22
+ mockFn ,
23
+ mockGlobalObject ,
24
+ mockGlobalValue ,
25
+ mockObject ,
26
+ } from "../../MockUtils" ;
27
+ import configuration from "../../../src/configuration" ;
20
28
21
29
suite ( "Selected Xcode Watcher" , ( ) => {
22
30
const mockedVSCodeWindow = mockGlobalObject ( vscode , "window" ) ;
23
31
let mockOutputChannel : MockedObject < SwiftOutputChannel > ;
32
+ const pathConfig = mockGlobalValue ( configuration , "path" ) ;
24
33
25
34
setup ( function ( ) {
26
35
// Xcode only exists on macOS, so the SelectedXcodeWatcher is macOS-only.
@@ -31,6 +40,8 @@ suite("Selected Xcode Watcher", () => {
31
40
mockOutputChannel = mockObject < SwiftOutputChannel > ( {
32
41
appendLine : mockFn ( ) ,
33
42
} ) ;
43
+
44
+ pathConfig . setValue ( "" ) ;
34
45
} ) ;
35
46
36
47
async function run ( symLinksOnCallback : ( string | undefined ) [ ] ) {
@@ -72,4 +83,12 @@ suite("Selected Xcode Watcher", () => {
72
83
"Reload Extensions"
73
84
) ;
74
85
} ) ;
86
+
87
+ test ( "Ignores when path is explicitly set" , async ( ) => {
88
+ pathConfig . setValue ( "/path/to/swift/bin" ) ;
89
+
90
+ await run ( [ "/foo" , "/bar" ] ) ;
91
+
92
+ expect ( mockedVSCodeWindow . showWarningMessage ) . to . have . not . been . called ;
93
+ } ) ;
75
94
} ) ;
0 commit comments