8080 end
8181 end
8282
83+ describe :list_key_ids do
84+ let ( :gitlab_keys ) { build_gitlab_keys ( 'list-key-ids' ) }
85+ before do
86+ create_authorized_keys_fixture (
87+ existing_content :
88+ "key-1\t ssh-dsa AAA\n key-2\t ssh-rsa BBB\n key-3\t ssh-rsa CCC\n key-9000\t ssh-rsa DDD\n "
89+ )
90+ end
91+
92+ it 'outputs the key IDs, separated by newlines' do
93+ output = capture_stdout do
94+ gitlab_keys . send ( :list_key_ids )
95+ end
96+ output . should match "1\n 2\n 3\n 9000"
97+ end
98+ end
99+
83100 describe :batch_add_keys do
84101 let ( :gitlab_keys ) { build_gitlab_keys ( 'batch-add-keys' ) }
85102 let ( :fake_stdin ) { StringIO . new ( "key-12\t ssh-dsa ASDFASGADG\n key-123\t ssh-rsa GFDGDFSGSDFG\n " , 'r' ) }
@@ -288,9 +305,9 @@ def argv(*args)
288305 end
289306 end
290307
291- def create_authorized_keys_fixture
308+ def create_authorized_keys_fixture ( existing_content : 'existing content' )
292309 FileUtils . mkdir_p ( File . dirname ( tmp_authorized_keys_path ) )
293- open ( tmp_authorized_keys_path , 'w' ) { |file | file . puts ( 'existing content' ) }
310+ open ( tmp_authorized_keys_path , 'w' ) { |file | file . puts ( existing_content ) }
294311 gitlab_keys . stub ( auth_file : tmp_authorized_keys_path )
295312 end
296313
@@ -301,4 +318,13 @@ def tmp_authorized_keys_path
301318 def tmp_lock_file_path
302319 tmp_authorized_keys_path + '.lock'
303320 end
321+
322+ def capture_stdout ( &blk )
323+ old = $stdout
324+ $stdout = fake = StringIO . new
325+ blk . call
326+ fake . string
327+ ensure
328+ $stdout = old
329+ end
304330end
0 commit comments