anchor.diff:  #   1. jenkins service starts on master node
   #   2. jenkins user can be extended on both master and slave
   #   3. jenkins service not started on slave node
  +#   4. declarative jobs can be added and removed
   
   import ./make-test-python.nix ({ pkgs, ...} : {
     name = "jenkins";
  
positive.code: 
    };
  
    testScript = ''
      start_all()
  
      master.wait_for_unit("jenkins")
  
negative.code: 
      master =
        { ... }:
        { services.jenkins = {
            enable = true;
            jobBuilder = {
              enable = true;
              nixJobs = [
                { job = {
                    name = "job-1";
                    builders = [
                      { shell = ''
                          echo "Running job-1"
                        '';
                      }
                    ];
                  };
                }
  
                { job = {
                    name = "folder-1";
                    project-type = "folder";
                  };
                }
  
                { job = {
                    name = "folder-1/job-2";
                    builders = [
                      { shell = ''
                          echo "Running job-2"
                        '';
                      }
                    ];
                  };
                }
              ];
            };
          };
  
          specialisation.noJenkinsJobs.configuration = {
            services.jenkins.jobBuilder.nixJobs = pkgs.lib.mkForce [];
          };
  
          # should have no effect
          services.jenkinsSlave.enable = true;
  