about summary refs log tree commit diff
path: root/nixos/tests/gocd-agent.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/tests/gocd-agent.nix')
-rw-r--r--nixos/tests/gocd-agent.nix34
1 files changed, 20 insertions, 14 deletions
diff --git a/nixos/tests/gocd-agent.nix b/nixos/tests/gocd-agent.nix
index d5ed0f65ab01..5cadff089950 100644
--- a/nixos/tests/gocd-agent.nix
+++ b/nixos/tests/gocd-agent.nix
@@ -4,31 +4,37 @@
 #   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 = [ swarren83 ];
+    maintainers = [ grahamc swarren83 ];
   };
 
-nodes = {
-  gocd_agent =
-    { config, pkgs, ... }:
-    { 
-      virtualisation.memorySize = 2048;
-      services.gocd-agent = {
-        enable = true;
-      };
-      services.gocd-server = {
-        enable = true;
+  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 -s -f localhost:8153/go/api/agents -H 'Accept: application/vnd.go.cd.v2+json'");
+    $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");
   '';
 })