@@ -449,4 +449,45 @@ def encrypted(value)
449
449
it { expect ( data [ :keep_netrc ] ) . to be false }
450
450
end
451
451
end
452
+
453
+ context 'custom_keys' do
454
+ let! ( :organization1 ) { FactoryGirl . create ( :org , login : "org1" , id : 1 ) }
455
+ let! ( :organization2 ) { FactoryGirl . create ( :org , login : "org2" , id : 2 ) }
456
+ let! ( :repo ) { FactoryGirl . create ( :repo , default_branch : 'main' ) }
457
+ let! ( :membership1 ) { FactoryGirl . create ( :membership , user : repo . owner , organization : organization1 ) }
458
+ let! ( :membership2 ) { FactoryGirl . create ( :membership , user : repo . owner , organization : organization2 ) }
459
+ let! ( :custom_key1 ) { FactoryGirl . create ( :custom_key , name : 'key1' , owner_id : organization1 . id , owner_type : 'Organization' , private_key : 'abc' ) }
460
+ let! ( :custom_key2 ) { FactoryGirl . create ( :custom_key , name : 'key1' , owner_id : organization2 . id , owner_type : 'Organization' , private_key : 'def' ) }
461
+
462
+ describe 'when two organization have the same key name' do
463
+ before {
464
+ build . update ( sender_id : repo . owner . id )
465
+ job . update ( config : { :keys => [ 'key1' ] } )
466
+ repo . update_attributes ( owner : organization2 , owner_name : 'org2' )
467
+ }
468
+
469
+ it { expect ( data [ :env_vars ] ) . to include ( { :name => "TRAVIS_key1" , :value => "ZGVm" , :public => false , :branch => nil } ) }
470
+ end
471
+
472
+ describe 'when user has no access to organization' do
473
+ let! ( :organization3 ) { FactoryGirl . create ( :org , login : "org3" , id : 3 ) }
474
+ let! ( :custom_key3 ) { FactoryGirl . create ( :custom_key , name : 'key1' , owner_id : organization3 . id , owner_type : 'Organization' , private_key : 'ghi' ) }
475
+ let ( :raw_settings ) do
476
+ {
477
+ env_vars : nil ,
478
+ timeout_hard_limit : 180 ,
479
+ timeout_log_silence : 20 ,
480
+ share_ssh_keys_with_forks : false
481
+ }
482
+ end
483
+
484
+ before {
485
+ build . update ( sender_id : repo . owner . id )
486
+ job . update ( config : { :keys => [ 'key1' ] } )
487
+ repo . update_attributes ( owner : organization3 , owner_name : 'org3' )
488
+ }
489
+
490
+ it { expect ( data [ :env_vars ] ) . to eq ( [ ] ) }
491
+ end
492
+ end
452
493
end
0 commit comments