@@ -4773,4 +4773,116 @@ mod tests {
47734773 let warnings = validate:: warn_potential_secrets ( "my-mcp" , & env, & headers) ;
47744774 assert ! ( warnings. is_empty( ) , "non-secret env var should not produce warnings" ) ;
47754775 }
4776+
4777+ // ─── standalone setup/teardown/finalize/checkout/repositories generators ───
4778+
4779+ #[ test]
4780+ fn test_generate_setup_job_empty_returns_empty ( ) {
4781+ assert ! ( generate_setup_job( & [ ] , "MyPool" ) . is_empty( ) ) ;
4782+ }
4783+
4784+ #[ test]
4785+ fn test_generate_setup_job_with_steps ( ) {
4786+ let step: serde_yaml:: Value = serde_yaml:: from_str ( "bash: echo setup" ) . unwrap ( ) ;
4787+ let out = generate_setup_job ( & [ step] , "MyPool" ) ;
4788+ assert ! ( out. contains( "- job: Setup" ) , "out: {out}" ) ;
4789+ assert ! ( out. contains( "displayName: \" Setup\" " ) , "out: {out}" ) ;
4790+ assert ! ( out. contains( "name: MyPool" ) , "out: {out}" ) ;
4791+ assert ! ( out. contains( "- checkout: self" ) , "out: {out}" ) ;
4792+ assert ! ( out. contains( "echo setup" ) , "out: {out}" ) ;
4793+ }
4794+
4795+ #[ test]
4796+ fn test_generate_teardown_job_empty_returns_empty ( ) {
4797+ assert ! ( generate_teardown_job( & [ ] , "MyPool" ) . is_empty( ) ) ;
4798+ }
4799+
4800+ #[ test]
4801+ fn test_generate_teardown_job_with_steps ( ) {
4802+ let step: serde_yaml:: Value = serde_yaml:: from_str ( "bash: echo td" ) . unwrap ( ) ;
4803+ let out = generate_teardown_job ( & [ step] , "MyPool" ) ;
4804+ assert ! ( out. contains( "- job: Teardown" ) , "out: {out}" ) ;
4805+ assert ! ( out. contains( "dependsOn: Execution" ) , "out: {out}" ) ;
4806+ assert ! ( out. contains( "name: MyPool" ) , "out: {out}" ) ;
4807+ assert ! ( out. contains( "echo td" ) , "out: {out}" ) ;
4808+ }
4809+
4810+ #[ test]
4811+ fn test_generate_agentic_depends_on_empty_steps ( ) {
4812+ assert ! ( generate_agentic_depends_on( & [ ] ) . is_empty( ) ) ;
4813+ }
4814+
4815+ #[ test]
4816+ fn test_generate_agentic_depends_on_with_steps ( ) {
4817+ let step: serde_yaml:: Value = serde_yaml:: from_str ( "bash: x" ) . unwrap ( ) ;
4818+ assert_eq ! ( generate_agentic_depends_on( & [ step] ) , "dependsOn: Setup" ) ;
4819+ }
4820+
4821+ #[ test]
4822+ fn test_generate_finalize_steps_empty ( ) {
4823+ assert ! ( generate_finalize_steps( & [ ] ) . is_empty( ) ) ;
4824+ }
4825+
4826+ #[ test]
4827+ fn test_generate_finalize_steps_with_step ( ) {
4828+ let step: serde_yaml:: Value = serde_yaml:: from_str ( "bash: echo done" ) . unwrap ( ) ;
4829+ let out = generate_finalize_steps ( & [ step] ) ;
4830+ assert ! ( out. contains( "echo done" ) , "out: {out}" ) ;
4831+ }
4832+
4833+ #[ test]
4834+ fn test_generate_checkout_steps_empty ( ) {
4835+ assert ! ( generate_checkout_steps( & [ ] ) . is_empty( ) ) ;
4836+ }
4837+
4838+ #[ test]
4839+ fn test_generate_checkout_steps_multiple ( ) {
4840+ let aliases = vec ! [ "repo-a" . to_string( ) , "repo-b" . to_string( ) ] ;
4841+ let out = generate_checkout_steps ( & aliases) ;
4842+ assert ! ( out. contains( "- checkout: repo-a" ) , "out: {out}" ) ;
4843+ assert ! ( out. contains( "- checkout: repo-b" ) , "out: {out}" ) ;
4844+ }
4845+
4846+ #[ test]
4847+ fn test_generate_repositories_empty ( ) {
4848+ assert ! ( generate_repositories( & [ ] ) . is_empty( ) ) ;
4849+ }
4850+
4851+ #[ test]
4852+ fn test_generate_repositories_single ( ) {
4853+ let repos = vec ! [ Repository {
4854+ repository: "my-repo" . to_string( ) ,
4855+ repo_type: "git" . to_string( ) ,
4856+ name: "org/my-repo" . to_string( ) ,
4857+ repo_ref: "refs/heads/main" . to_string( ) ,
4858+ } ] ;
4859+ let out = generate_repositories ( & repos) ;
4860+ assert ! ( out. contains( "- repository: my-repo" ) , "out: {out}" ) ;
4861+ assert ! ( out. contains( "type: git" ) , "out: {out}" ) ;
4862+ assert ! ( out. contains( "name: org/my-repo" ) , "out: {out}" ) ;
4863+ assert ! ( out. contains( "ref: refs/heads/main" ) , "out: {out}" ) ;
4864+ }
4865+
4866+ #[ test]
4867+ fn test_generate_repositories_multiple ( ) {
4868+ let repos = vec ! [
4869+ Repository {
4870+ repository: "repo-a" . to_string( ) ,
4871+ repo_type: "git" . to_string( ) ,
4872+ name: "org/repo-a" . to_string( ) ,
4873+ repo_ref: "refs/heads/main" . to_string( ) ,
4874+ } ,
4875+ Repository {
4876+ repository: "repo-b" . to_string( ) ,
4877+ repo_type: "git" . to_string( ) ,
4878+ name: "org/repo-b" . to_string( ) ,
4879+ repo_ref: "refs/heads/develop" . to_string( ) ,
4880+ } ,
4881+ ] ;
4882+ let out = generate_repositories ( & repos) ;
4883+ assert ! ( out. contains( "- repository: repo-a" ) , "out: {out}" ) ;
4884+ assert ! ( out. contains( "- repository: repo-b" ) , "out: {out}" ) ;
4885+ assert ! ( out. contains( "name: org/repo-a" ) , "out: {out}" ) ;
4886+ assert ! ( out. contains( "ref: refs/heads/develop" ) , "out: {out}" ) ;
4887+ }
47764888}
0 commit comments