4
4
*/
5
5
6
6
import * as vscode from 'vscode'
7
+ import * as sinon from 'sinon'
7
8
import * as path from 'path'
8
9
import * as http from 'http'
9
10
import * as assert from 'assert'
@@ -18,8 +19,9 @@ import {
18
19
getCodeCatalystSsmEnv ,
19
20
sshLogFileLocation ,
20
21
} from '../../codecatalyst/model'
21
- import { readFile , writeFile } from 'fs-extra'
22
+ import { mkdir , readFile , writeFile } from 'fs-extra'
22
23
import { StartDevEnvironmentSessionRequest } from 'aws-sdk/clients/codecatalyst'
24
+ import { SystemUtilities } from '../../shared/systemUtilities'
23
25
24
26
describe ( 'SSH Agent' , function ( ) {
25
27
it ( 'can start the agent on windows' , async function ( ) {
@@ -130,4 +132,27 @@ describe('Connect Script', function () {
130
132
assert . fail ( `Connect script should exit with a zero status:\n${ message } ` )
131
133
}
132
134
} )
135
+
136
+ describe ( '~/.ssh' , function ( ) {
137
+ let tmpDir : string
138
+
139
+ beforeEach ( async function ( ) {
140
+ tmpDir = await makeTemporaryToolkitFolder ( )
141
+ sinon . stub ( SystemUtilities , 'getHomeDirectory' ) . returns ( tmpDir )
142
+ } )
143
+
144
+ afterEach ( async function ( ) {
145
+ sinon . restore ( )
146
+ await SystemUtilities . delete ( tmpDir , { recursive : true } )
147
+ } )
148
+
149
+ it ( 'works if the .ssh directory is missing' , async function ( ) {
150
+ ; ( await ensureConnectScript ( context ) ) . unwrap ( )
151
+ } )
152
+
153
+ it ( 'works if the .ssh directory exists but has different perms' , async function ( ) {
154
+ await mkdir ( path . join ( tmpDir , '.ssh' ) , 0o777 )
155
+ ; ( await ensureConnectScript ( context ) ) . unwrap ( )
156
+ } )
157
+ } )
133
158
} )
0 commit comments