diff options
Diffstat (limited to 'nixos/tests/gocd-agent.nix')
-rw-r--r-- | nixos/tests/gocd-agent.nix | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/nixos/tests/gocd-agent.nix b/nixos/tests/gocd-agent.nix new file mode 100644 index 000000000000..5cadff089950 --- /dev/null +++ b/nixos/tests/gocd-agent.nix @@ -0,0 +1,40 @@ +# verifies: +# 1. GoCD agent starts +# 2. GoCD agent responds +# 3. GoCD agent is available on GoCD server using GoCD API +# 3.1. https://api.go.cd/current/#get-all-agents + +let + serverUrl = "localhost:8153/go/api/agents"; + header = "Accept: application/vnd.go.cd.v2+json"; +in + +import ./make-test.nix ({ pkgs, ...} : { + name = "gocd-agent"; + meta = with pkgs.stdenv.lib.maintainers; { + maintainers = [ grahamc swarren83 ]; + }; + + nodes = { + gocd_agent = + { config, pkgs, ... }: + { + virtualisation.memorySize = 2046; + services.gocd-agent = { + enable = true; + }; + services.gocd-server = { + enable = true; + }; + }; + }; + + testScript = '' + startAll; + $gocd_agent->waitForUnit("gocd-server"); + $gocd_agent->waitForOpenPort("8153"); + $gocd_agent->waitForUnit("gocd-agent"); + $gocd_agent->waitUntilSucceeds("curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].uuid"); + $gocd_agent->succeed("curl ${serverUrl} -H '${header}' | ${pkgs.jq}/bin/jq -e ._embedded.agents[0].agent_state | grep -q Idle"); + ''; +}) |