@@ -687,62 +687,133 @@ def act_as_cf_admin
687687 process . desired_droplet . reload
688688 end
689689
690- context 'when the process has a user specified ' do
690+ context 'when root user is allowed ' do
691691 before do
692- process . update ( user : 'ContainerUser' )
692+ TestConfig . override ( allow_process_root_user : true )
693693 end
694694
695- it 'returns the user' do
696- expect ( process . run_action_user ) . to eq ( 'ContainerUser' )
695+ context 'when the process has a user specified' do
696+ before do
697+ process . update ( user : 'ContainerUser' )
698+ end
699+
700+ it 'returns the user' do
701+ expect ( process . run_action_user ) . to eq ( 'ContainerUser' )
702+ end
697703 end
698- end
699704
700- context 'when the droplet execution metadata specifies a user' do
701- it 'returns the specified user' do
702- expect ( process . run_action_user ) . to eq ( 'some-user' )
705+ context 'when the droplet execution metadata specifies a user' do
706+ it 'returns the specified user' do
707+ expect ( process . run_action_user ) . to eq ( 'some-user' )
708+ end
703709 end
704- end
705710
706- context 'when the droplet execution metadata DOES NOT specify a user' do
707- let ( :droplet_execution_metadata ) { '{"entrypoint":["/image-entrypoint.sh"]}' }
711+ context 'when the droplet execution metadata DOES NOT specify a user' do
712+ let ( :droplet_execution_metadata ) { '{"entrypoint":["/image-entrypoint.sh"]}' }
708713
709- it 'defaults the user to root' do
710- expect ( process . run_action_user ) . to eq ( 'root' )
714+ it 'returns the default "root" user' do
715+ expect ( process . run_action_user ) . to eq ( 'root' )
716+ end
711717 end
712- end
713718
714- context 'when the droplet execution metadata is an empty string' do
715- let ( :droplet_execution_metadata ) { '' }
719+ context 'when the droplet execution metadata is an empty string' do
720+ let ( :droplet_execution_metadata ) { '' }
721+
722+ it 'returns the default "root" user' do
723+ expect ( process . run_action_user ) . to eq ( 'root' )
724+ end
725+ end
716726
717- it 'defaults the user to root' do
718- expect ( process . run_action_user ) . to eq ( 'root' )
727+ context 'when the droplet execution metadata is nil' do
728+ let ( :droplet_execution_metadata ) { nil }
729+
730+ it 'returns the default "root" user' do
731+ expect ( process . run_action_user ) . to eq ( 'root' )
732+ end
719733 end
720- end
721734
722- context 'when the droplet execution metadata is nil ' do
723- let ( :droplet_execution_metadata ) { nil }
735+ context 'when the droplet execution metadata has invalid json ' do
736+ let ( :droplet_execution_metadata ) { '{' }
724737
725- it 'defaults the user to root' do
726- expect ( process . run_action_user ) . to eq ( 'root' )
738+ it 'returns the default "root" user' do
739+ expect ( process . run_action_user ) . to eq ( 'root' )
740+ end
727741 end
728- end
729742
730- context 'when the droplet execution metadata has invalid json' do
731- let ( :droplet_execution_metadata ) { '{' }
743+ context 'when the app does not have a droplet assigned' do
744+ before do
745+ process . app . update ( droplet : nil )
746+ process . reload
747+ end
732748
733- it 'defaults the user to root' do
734- expect ( process . run_action_user ) . to eq ( 'root' )
749+ it 'returns the default "root" user' do
750+ expect ( process . run_action_user ) . to eq ( 'root' )
751+ end
735752 end
736753 end
737754
738- context 'when the app does not have a droplet assigned ' do
755+ context 'when root user is not allowed ' do
739756 before do
740- process . app . update ( droplet : nil )
741- process . reload
757+ TestConfig . override ( allow_process_root_user : false )
758+ end
759+
760+ context 'when the process has a user specified' do
761+ before do
762+ process . update ( user : 'ContainerUser' )
763+ end
764+
765+ it 'returns the user' do
766+ expect ( process . run_action_user ) . to eq ( 'ContainerUser' )
767+ end
768+ end
769+
770+ context 'when the droplet execution metadata specifies a user' do
771+ it 'returns the specified user' do
772+ expect ( process . run_action_user ) . to eq ( 'some-user' )
773+ end
774+ end
775+
776+ context 'when the droplet execution metadata DOES NOT specify a user' do
777+ let ( :droplet_execution_metadata ) { '{"entrypoint":["/image-entrypoint.sh"]}' }
778+
779+ it 'returns the default "vcap" user' do
780+ expect ( process . run_action_user ) . to eq ( 'vcap' )
781+ end
782+ end
783+
784+ context 'when the droplet execution metadata is an empty string' do
785+ let ( :droplet_execution_metadata ) { '' }
786+
787+ it 'returns the default "vcap" user' do
788+ expect ( process . run_action_user ) . to eq ( 'vcap' )
789+ end
790+ end
791+
792+ context 'when the droplet execution metadata is nil' do
793+ let ( :droplet_execution_metadata ) { nil }
794+
795+ it 'returns the default "vcap" user' do
796+ expect ( process . run_action_user ) . to eq ( 'vcap' )
797+ end
798+ end
799+
800+ context 'when the droplet execution metadata has invalid json' do
801+ let ( :droplet_execution_metadata ) { '{' }
802+
803+ it 'returns the default "vcap" user' do
804+ expect ( process . run_action_user ) . to eq ( 'vcap' )
805+ end
742806 end
743807
744- it 'defaults the user to root' do
745- expect ( process . run_action_user ) . to eq ( 'root' )
808+ context 'when the app does not have a droplet assigned' do
809+ before do
810+ process . app . update ( droplet : nil )
811+ process . reload
812+ end
813+
814+ it 'returns the default "vcap" user' do
815+ expect ( process . run_action_user ) . to eq ( 'vcap' )
816+ end
746817 end
747818 end
748819 end
0 commit comments