12983: Add another error message to the "broken node" blacklist.
[arvados.git] / services / ws / server_test.go
index a0c4c8ccde0e3ab2bbf15412c6f82a525a971bee..b1f943857a18f495f2777c24aa3627855aa0d9f6 100644 (file)
@@ -1,6 +1,11 @@
+// Copyright (C) The Arvados Authors. All rights reserved.
+//
+// SPDX-License-Identifier: AGPL-3.0
+
 package main
 
 import (
+       "encoding/json"
        "io/ioutil"
        "net/http"
        "sync"
@@ -86,6 +91,21 @@ func (s *serverSuite) TestHealth(c *check.C) {
        }
 }
 
+func (s *serverSuite) TestStatus(c *check.C) {
+       go s.srv.Run()
+       defer s.srv.Close()
+       s.srv.WaitReady()
+       req, err := http.NewRequest("GET", "http://"+s.srv.listener.Addr().String()+"/status.json", nil)
+       c.Assert(err, check.IsNil)
+       resp, err := http.DefaultClient.Do(req)
+       c.Check(err, check.IsNil)
+       c.Check(resp.StatusCode, check.Equals, http.StatusOK)
+       var status map[string]interface{}
+       err = json.NewDecoder(resp.Body).Decode(&status)
+       c.Check(err, check.IsNil)
+       c.Check(status["Version"], check.Not(check.Equals), "")
+}
+
 func (s *serverSuite) TestHealthDisabled(c *check.C) {
        s.cfg.ManagementToken = ""
 
@@ -93,10 +113,12 @@ func (s *serverSuite) TestHealthDisabled(c *check.C) {
        defer s.srv.Close()
        s.srv.WaitReady()
 
-       req, err := http.NewRequest("GET", "http://"+s.srv.listener.Addr().String()+"/_health/ping", nil)
-       c.Assert(err, check.IsNil)
-       req.Header.Add("Authorization", "Bearer "+arvadostest.ManagementToken)
-       resp, err := http.DefaultClient.Do(req)
-       c.Check(err, check.IsNil)
-       c.Check(resp.StatusCode, check.Equals, http.StatusNotFound)
+       for _, token := range []string{"", "foo", arvadostest.ManagementToken} {
+               req, err := http.NewRequest("GET", "http://"+s.srv.listener.Addr().String()+"/_health/ping", nil)
+               c.Assert(err, check.IsNil)
+               req.Header.Add("Authorization", "Bearer "+token)
+               resp, err := http.DefaultClient.Do(req)
+               c.Check(err, check.IsNil)
+               c.Check(resp.StatusCode, check.Equals, http.StatusNotFound)
+       }
 }