test/integration: add extra tests for env var combining

Adds the cases where toolsEnvVar are overwritten by
env or envFile values.

Addresses the unresolved comments in golang.org/cl/248659

Change-Id: I2eca3c75a3efb0c28e64dcd61be237333a993b8b
Reviewed-on: https://go-review.googlesource.com/c/vscode-go/+/251085
Run-TryBot: Hyang-Ah Hana Kim <hyangah@gmail.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Polina Sokolova <polina@google.com>
diff --git a/test/integration/goDebugConfiguration.test.ts b/test/integration/goDebugConfiguration.test.ts
index 595ba45..3d363fa 100644
--- a/test/integration/goDebugConfiguration.test.ts
+++ b/test/integration/goDebugConfiguration.test.ts
@@ -97,4 +97,34 @@
 			SOMEVAR1: 'valueFromEnv',
 			SOMEVAR2: 'valueFromEnvFile2'});
 	});
+
+	test('launchArgs.env overwrites toolsEnvVar', () => {
+		const toolsEnv = {
+			GOPATH: '/gopath',
+			SOMEVAR1: 'valueFromToolsEnvVar1',
+			SOMEVAR2: 'valueFromToolsEnvVar2'
+		};
+
+		const env = {SOMEVAR1: 'valueFromEnv'};
+		runTest({ env, toolsEnv }, {
+			GOPATH: '/gopath',
+			SOMEVAR1: 'valueFromEnv',
+			SOMEVAR2: 'valueFromToolsEnvVar2'});
+	});
+
+	test('launchArgs.envFile overwrites toolsEnvVar', () => {
+		const toolsEnv = {
+			GOPATH: '/gopath',
+			SOMEVAR1: 'valueFromToolsEnvVar1',
+			SOMEVAR2: 'valueFromToolsEnvVar2'
+		};
+		const envFile = path.join(tmpDir, 'env');
+		fs.writeFileSync(envFile, [
+			'SOMEVAR2=valueFromEnvFile2'].join('\n'));
+
+		runTest({ toolsEnv, envFile }, {
+			GOPATH: '/gopath',
+			SOMEVAR1: 'valueFromToolsEnvVar1',
+			SOMEVAR2: 'valueFromEnvFile2'});
+	});
 });