@@ -13,9 +13,20 @@ import {
1313 validateCwdSetting
1414} from "../../src/settings" ;
1515import path from "path" ;
16+ import { ensureEditorServicesIsConnected } from "../utils" ;
1617
1718describe ( "Settings E2E" , function ( ) {
19+ async function changeCwdSetting ( cwd : string | undefined ) : Promise < void > {
20+ await changeSetting ( "cwd" , cwd , vscode . ConfigurationTarget . Workspace , undefined ) ;
21+ }
22+
23+ async function resetCwdSetting ( ) : Promise < void > {
24+ await changeCwdSetting ( undefined ) ;
25+ }
26+
1827 describe ( "The 'getSettings' method loads the 'Settings' class" , function ( ) {
28+ before ( resetCwdSetting ) ;
29+
1930 it ( "Loads without error" , function ( ) {
2031 assert . doesNotThrow ( getSettings ) ;
2132 } ) ;
@@ -29,29 +40,30 @@ describe("Settings E2E", function () {
2940
3041 describe ( "The 'changeSetting' method" , function ( ) {
3142 it ( "Updates correctly" , async function ( ) {
32- await changeSetting ( "helpCompletion" , CommentType . LineComment , false , undefined ) ;
43+ await changeSetting ( "helpCompletion" , CommentType . LineComment , vscode . ConfigurationTarget . Workspace , undefined ) ;
3344 assert . strictEqual ( getSettings ( ) . helpCompletion , CommentType . LineComment ) ;
3445 } ) ;
3546 } ) ;
3647
3748 describe ( "The 'getEffectiveConfigurationTarget' method'" , function ( ) {
3849 it ( "Works for 'Workspace' target" , async function ( ) {
39- await changeSetting ( "helpCompletion" , CommentType . LineComment , false , undefined ) ;
50+ await changeSetting ( "helpCompletion" , CommentType . LineComment , vscode . ConfigurationTarget . Workspace , undefined ) ;
4051 const target = getEffectiveConfigurationTarget ( "helpCompletion" ) ;
4152 assert . strictEqual ( target , vscode . ConfigurationTarget . Workspace ) ;
4253 } ) ;
4354
4455 it ( "Works for 'undefined' target" , async function ( ) {
45- await changeSetting ( "helpCompletion" , undefined , false , undefined ) ;
56+ await changeSetting ( "helpCompletion" , undefined , vscode . ConfigurationTarget . Workspace , undefined ) ;
4657 const target = getEffectiveConfigurationTarget ( "helpCompletion" ) ;
4758 assert . strictEqual ( target , undefined ) ;
4859 } ) ;
4960 } ) ;
5061
5162 describe ( "The CWD setting" , function ( ) {
52- beforeEach ( async function ( ) {
53- await changeSetting ( "cwd" , undefined , undefined , undefined ) ;
54- } ) ;
63+ // We're relying on this to be sure that the workspace is loaded.
64+ before ( ensureEditorServicesIsConnected ) ;
65+ before ( resetCwdSetting ) ;
66+ afterEach ( resetCwdSetting ) ;
5567
5668 const workspace = vscode . workspace . workspaceFolders ! [ 0 ] . uri . fsPath ;
5769
@@ -60,20 +72,26 @@ describe("Settings E2E", function () {
6072 } ) ;
6173
6274 it ( "Uses the default when given a non-existent folder" , async function ( ) {
63- await changeSetting ( "cwd" , " /a/totally/fake/folder", undefined , undefined ) ;
75+ await changeCwdSetting ( " /a/totally/fake/folder") ;
6476 assert . strictEqual ( await validateCwdSetting ( undefined ) , workspace ) ;
6577 } ) ;
6678
6779 it ( "Uses the given folder when it exists" , async function ( ) {
6880 // A different than default folder that definitely exists
6981 const cwd = path . resolve ( path . join ( process . cwd ( ) , ".." ) ) ;
70- await changeSetting ( " cwd" , cwd , undefined , undefined ) ;
82+ await changeCwdSetting ( cwd ) ;
7183 assert . strictEqual ( await validateCwdSetting ( undefined ) , cwd ) ;
7284 } ) ;
7385
7486 it ( "Uses the home folder for ~ (tilde)" , async function ( ) {
75- // A different than default folder that definitely exists
76- await changeSetting ( "cwd" , "~" , undefined , undefined ) ;
87+ await changeCwdSetting ( "~" ) ;
88+ assert . strictEqual ( await validateCwdSetting ( undefined ) , os . homedir ( ) ) ;
89+ } ) ;
90+
91+ it ( "Resolves relative paths" , async function ( ) {
92+ // A different than default folder that definitely exists and is relative
93+ const cwd = path . join ( "~" , "somewhere" , ".." ) ;
94+ await changeCwdSetting ( cwd ) ;
7795 assert . strictEqual ( await validateCwdSetting ( undefined ) , os . homedir ( ) ) ;
7896 } ) ;
7997 } ) ;
0 commit comments