@@ -806,6 +806,68 @@ public async Task ArgoPlugin_CreateArgoTemplate_Valid_json_Calls_Client()
806806 Times . Once ) ;
807807 }
808808
809+ [ Fact ( DisplayName = "podPriorityClassName gets set if not given in workflow" ) ]
810+ public async Task ArgoPlugin_Ensures_podPriorityClassName_is_set ( )
811+ {
812+ var argoTemplate = LoadArgoTemplate ( "SimpleTemplate.yml" ) ;
813+ Assert . NotNull ( argoTemplate ) ;
814+
815+ SetUpSimpleArgoWorkFlow ( argoTemplate ) ;
816+
817+ var message = GenerateTaskDispatchEventWithValidArguments ( ) ;
818+
819+ WorkflowCreateRequest ? requestMade = default ;
820+ ArgoClient . Setup ( a => a . Argo_CreateWorkflowAsync ( It . IsAny < string > ( ) , It . IsAny < WorkflowCreateRequest > ( ) , It . IsAny < CancellationToken > ( ) ) )
821+ . Callback < string , WorkflowCreateRequest , CancellationToken > ( ( name , request , token ) =>
822+ {
823+ requestMade = request ;
824+ } ) ;
825+
826+ var defaultClassName = "standard" ;
827+ var runner = new ArgoPlugin ( ServiceScopeFactory . Object , _logger . Object , Options , message ) ;
828+ var result = await runner . ExecuteTask ( CancellationToken . None ) . ConfigureAwait ( false ) ;
829+
830+ Assert . NotNull ( requestMade ) ;
831+ Assert . Equal ( defaultClassName , requestMade . Workflow . Spec . PodPriorityClassName ) ;
832+
833+ foreach ( var template in requestMade . Workflow . Spec . Templates )
834+ {
835+ Assert . Equal ( defaultClassName , template . PriorityClassName ) ;
836+ }
837+ }
838+
839+ [ Fact ( DisplayName = "podPriorityClassName gets set if given in workflow" ) ]
840+ public async Task ArgoPlugin_Ensures_podPriorityClassName_is_set_as_given ( )
841+ {
842+ var argoTemplate = LoadArgoTemplate ( "SimpleTemplate.yml" ) ;
843+ Assert . NotNull ( argoTemplate ) ;
844+
845+ SetUpSimpleArgoWorkFlow ( argoTemplate ) ;
846+
847+ var message = GenerateTaskDispatchEventWithValidArguments ( ) ;
848+
849+ var givenClassName = "fred" ;
850+ message . TaskPluginArguments . Add ( "priority" , givenClassName ) ;
851+
852+ WorkflowCreateRequest ? requestMade = default ;
853+ ArgoClient . Setup ( a => a . Argo_CreateWorkflowAsync ( It . IsAny < string > ( ) , It . IsAny < WorkflowCreateRequest > ( ) , It . IsAny < CancellationToken > ( ) ) )
854+ . Callback < string , WorkflowCreateRequest , CancellationToken > ( ( name , request , token ) =>
855+ {
856+ requestMade = request ;
857+ } ) ;
858+
859+ var runner = new ArgoPlugin ( ServiceScopeFactory . Object , _logger . Object , Options , message ) ;
860+ var result = await runner . ExecuteTask ( CancellationToken . None ) . ConfigureAwait ( false ) ;
861+
862+ Assert . NotNull ( requestMade ) ;
863+ Assert . Equal ( givenClassName , requestMade . Workflow . Spec . PodPriorityClassName ) ;
864+
865+ foreach ( var template in requestMade . Workflow . Spec . Templates )
866+ {
867+ Assert . Equal ( givenClassName , template . PriorityClassName ) ;
868+ }
869+ }
870+
809871 private void SetUpSimpleArgoWorkFlow ( WorkflowTemplate argoTemplate )
810872 {
811873 Assert . NotNull ( argoTemplate ) ;
0 commit comments