Skip to content

Commit a605d79

Browse files
committed
Use golden files for SSH config tests
Also add trailing newline when appending to file. Just a bit nicer, for example when you cat the file. If we are replacing a block at the end and there is no newline then we will preserve that; no newlines are added when replacing.
1 parent 17c0edf commit a605d79

29 files changed

+299
-367
lines changed

src/main/kotlin/com/coder/gateway/sdk/CoderCLIManager.kt

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,11 @@ class CoderCLIManager @JvmOverloads constructor(private val deploymentURL: URL,
196196
logger.info("Leaving $sshConfigPath alone since there are no workspaces and no config to remove")
197197
} else if (start == null && end == null) {
198198
logger.info("Appending config to $sshConfigPath")
199-
sshConfigPath.toFile().writeText(
200-
if (contents.isEmpty()) blockContent else listOf(
201-
contents,
202-
blockContent
203-
).joinToString(System.lineSeparator())
204-
)
199+
val toAppend = if (contents.isEmpty()) blockContent else listOf(
200+
contents,
201+
blockContent
202+
).joinToString(System.lineSeparator())
203+
sshConfigPath.toFile().writeText(toAppend + System.lineSeparator())
205204
} else if (start == null) {
206205
throw SSHConfigFormatException("End block exists but no start block")
207206
} else if (end == null) {
@@ -234,7 +233,7 @@ class CoderCLIManager @JvmOverloads constructor(private val deploymentURL: URL,
234233
}
235234
} catch (e: FileNotFoundException) {
236235
logger.info("Writing config to $sshConfigPath")
237-
sshConfigPath.toFile().writeText(blockContent)
236+
sshConfigPath.toFile().writeText(blockContent + System.lineSeparator())
238237
}
239238
}
240239

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
2+
3+

src/test/fixtures/inputs/blank.conf

Whitespace-only changes.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Host test
2+
Port 80
3+
Host test2
4+
Port 443 # --- START CODER JETBRAINS test.coder.invalid
5+
some jetbrains config # --- END CODER JETBRAINS test.coder.invalid
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Host test
2+
Port 80
3+
Host test2
4+
Port 443
5+
# --- START CODER JETBRAINS test.coder.invalid
6+
some jetbrains config
7+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Host test
2+
Port 80
3+
# ------------START-CODER-----------
4+
some coder config
5+
# ------------END-CODER------------
6+
# --- START CODER JETBRAINS test.coder.invalid
7+
some jetbrains config
8+
# --- END CODER JETBRAINS test.coder.invalid
9+
Host test2
10+
Port 443
11+
# --- START CODER JETBRAINS test.coder.unrelated
12+
some jetbrains config
13+
# --- END CODER JETBRAINS test.coder.unrelated
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Host test
2+
Port 80
3+
# --- START CODER JETBRAINS test.coder.invalid
4+
some jetbrains config
5+
# --- END CODER JETBRAINS test.coder.invalid
6+
Host test2
7+
Port 443
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# --- START CODER JETBRAINS test.coder.invalid
2+
some jetbrains config
3+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# --- START CODER JETBRAINS test.coder.invalid
2+
some jetbrains config
3+
# --- END CODER JETBRAINS test.coder.invalid
4+
Host test
5+
Port 80
6+
Host test2
7+
Port 443
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# --- START CODER JETBRAINS test.coder.something-else
2+
some jetbrains config
3+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# --- START CODER JETBRAINS test.coder.invalid
2+
some jetbrains config
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
some jetbrains config
2+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# --- END CODER JETBRAINS test.coder.invalid
2+
some jetbrains config
3+
# --- START CODER JETBRAINS test.coder.invalid
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Host test
2+
Port 80
3+
Host test2
4+
Port 443
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
Host test
2+
Port 80
3+
Host test2
4+
Port 443
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
Host test
2+
Port 80
3+
# ------------START-CODER-----------
4+
some coder config
5+
# ------------END-CODER------------
6+
Host test2
7+
Port 443
8+
# --- START CODER JETBRAINS test.coder.unrelated
9+
some jetbrains config
10+
# --- END CODER JETBRAINS test.coder.unrelated
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
2+
3+
4+
5+
# --- START CODER JETBRAINS test.coder.invalid
6+
Host coder-jetbrains--foo-bar--test.coder.invalid
7+
HostName coder.foo-bar
8+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
9+
ConnectTimeout 0
10+
StrictHostKeyChecking no
11+
UserKnownHostsFile /dev/null
12+
LogLevel ERROR
13+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
14+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# --- START CODER JETBRAINS test.coder.invalid
2+
Host coder-jetbrains--foo-bar--test.coder.invalid
3+
HostName coder.foo-bar
4+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
5+
ConnectTimeout 0
6+
StrictHostKeyChecking no
7+
UserKnownHostsFile /dev/null
8+
LogLevel ERROR
9+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
10+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
Host test
2+
Port 80
3+
Host test2
4+
Port 443
5+
6+
# --- START CODER JETBRAINS test.coder.invalid
7+
Host coder-jetbrains--foo-bar--test.coder.invalid
8+
HostName coder.foo-bar
9+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
10+
ConnectTimeout 0
11+
StrictHostKeyChecking no
12+
UserKnownHostsFile /dev/null
13+
LogLevel ERROR
14+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
15+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Host test
2+
Port 80
3+
Host test2
4+
Port 443
5+
# --- START CODER JETBRAINS test.coder.invalid
6+
Host coder-jetbrains--foo-bar--test.coder.invalid
7+
HostName coder.foo-bar
8+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
9+
ConnectTimeout 0
10+
StrictHostKeyChecking no
11+
UserKnownHostsFile /dev/null
12+
LogLevel ERROR
13+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
14+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
Host test
2+
Port 80
3+
# ------------START-CODER-----------
4+
some coder config
5+
# ------------END-CODER------------
6+
Host test2
7+
Port 443
8+
# --- START CODER JETBRAINS test.coder.unrelated
9+
some jetbrains config
10+
# --- END CODER JETBRAINS test.coder.unrelated
11+
12+
# --- START CODER JETBRAINS test.coder.invalid
13+
Host coder-jetbrains--foo-bar--test.coder.invalid
14+
HostName coder.foo-bar
15+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
16+
ConnectTimeout 0
17+
StrictHostKeyChecking no
18+
UserKnownHostsFile /dev/null
19+
LogLevel ERROR
20+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
21+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# --- START CODER JETBRAINS test.coder.invalid
2+
Host coder-jetbrains--foo--test.coder.invalid
3+
HostName coder.foo
4+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo
5+
ConnectTimeout 0
6+
StrictHostKeyChecking no
7+
UserKnownHostsFile /dev/null
8+
LogLevel ERROR
9+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
10+
Host coder-jetbrains--bar--test.coder.invalid
11+
HostName coder.bar
12+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio bar
13+
ConnectTimeout 0
14+
StrictHostKeyChecking no
15+
UserKnownHostsFile /dev/null
16+
LogLevel ERROR
17+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
18+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
Host test
2+
Port 80
3+
Host test2
4+
Port 443 # --- START CODER JETBRAINS test.coder.invalid
5+
Host coder-jetbrains--foo-bar--test.coder.invalid
6+
HostName coder.foo-bar
7+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
8+
ConnectTimeout 0
9+
StrictHostKeyChecking no
10+
UserKnownHostsFile /dev/null
11+
LogLevel ERROR
12+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
13+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Host test
2+
Port 80
3+
Host test2
4+
Port 443
5+
# --- START CODER JETBRAINS test.coder.invalid
6+
Host coder-jetbrains--foo-bar--test.coder.invalid
7+
HostName coder.foo-bar
8+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
9+
ConnectTimeout 0
10+
StrictHostKeyChecking no
11+
UserKnownHostsFile /dev/null
12+
LogLevel ERROR
13+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
14+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Host test
2+
Port 80
3+
# ------------START-CODER-----------
4+
some coder config
5+
# ------------END-CODER------------
6+
# --- START CODER JETBRAINS test.coder.invalid
7+
Host coder-jetbrains--foo-bar--test.coder.invalid
8+
HostName coder.foo-bar
9+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
10+
ConnectTimeout 0
11+
StrictHostKeyChecking no
12+
UserKnownHostsFile /dev/null
13+
LogLevel ERROR
14+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
15+
# --- END CODER JETBRAINS test.coder.invalid
16+
Host test2
17+
Port 443
18+
# --- START CODER JETBRAINS test.coder.unrelated
19+
some jetbrains config
20+
# --- END CODER JETBRAINS test.coder.unrelated
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Host test
2+
Port 80
3+
# --- START CODER JETBRAINS test.coder.invalid
4+
Host coder-jetbrains--foo-bar--test.coder.invalid
5+
HostName coder.foo-bar
6+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
7+
ConnectTimeout 0
8+
StrictHostKeyChecking no
9+
UserKnownHostsFile /dev/null
10+
LogLevel ERROR
11+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
12+
# --- END CODER JETBRAINS test.coder.invalid
13+
Host test2
14+
Port 443
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# --- START CODER JETBRAINS test.coder.invalid
2+
Host coder-jetbrains--foo-bar--test.coder.invalid
3+
HostName coder.foo-bar
4+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
5+
ConnectTimeout 0
6+
StrictHostKeyChecking no
7+
UserKnownHostsFile /dev/null
8+
LogLevel ERROR
9+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
10+
# --- END CODER JETBRAINS test.coder.invalid
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# --- START CODER JETBRAINS test.coder.invalid
2+
Host coder-jetbrains--foo-bar--test.coder.invalid
3+
HostName coder.foo-bar
4+
ProxyCommand "/tmp/coder-gateway/test.coder.invalid/coder-linux-amd64" --global-config "/tmp/coder-gateway/test.coder.invalid/config" ssh --stdio foo-bar
5+
ConnectTimeout 0
6+
StrictHostKeyChecking no
7+
UserKnownHostsFile /dev/null
8+
LogLevel ERROR
9+
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
10+
# --- END CODER JETBRAINS test.coder.invalid
11+
Host test
12+
Port 80
13+
Host test2
14+
Port 443

0 commit comments

Comments
 (0)