import ./make-test.nix {
  name = "nesting";
  nodes =  {
    clone = { pkgs, ... }: {
      environment.systemPackages = [ pkgs.cowsay ];
      nesting.clone = [
        ({ pkgs, ... }: {
          environment.systemPackages = [ pkgs.hello ];
        })
      ];
    };
    children = { pkgs, ... }: {
      environment.systemPackages = [ pkgs.cowsay ];
      nesting.children = [
        ({ pkgs, ... }: {
          environment.systemPackages = [ pkgs.hello ];
        })
      ];
    };
  };
  testScript = ''
    $clone->waitForUnit("default.target");
    $clone->succeed("cowsay hey");
    $clone->fail("hello");

    # Nested clones do inherit from parent
    $clone->succeed("/run/current-system/fine-tune/child-1/bin/switch-to-configuration test");
    $clone->succeed("cowsay hey");
    $clone->succeed("hello");
    

    $children->waitForUnit("default.target");
    $children->succeed("cowsay hey");
    $children->fail("hello");

    # Nested children do not inherit from parent
    $children->succeed("/run/current-system/fine-tune/child-1/bin/switch-to-configuration test");
    $children->fail("cowsay hey");
    $children->succeed("hello");

  '';
}