17295: Adds cluster ID validation on the config file.
[arvados.git] / lib / config / export_test.go
index 581e54cdc6c80f463b3f922014b31b9a986e4638..f11b65f452b797a0cbe05720f29c51343baa7779 100644 (file)
@@ -9,7 +9,6 @@ import (
        "regexp"
        "strings"
 
-       "git.curoverse.com/arvados.git/sdk/go/ctxlog"
        check "gopkg.in/check.v1"
 )
 
@@ -18,14 +17,15 @@ var _ = check.Suite(&ExportSuite{})
 type ExportSuite struct{}
 
 func (s *ExportSuite) TestExport(c *check.C) {
-       confdata := bytes.Replace(DefaultYAML, []byte("SAMPLE"), []byte("testkey"), -1)
-       cfg, err := Load(bytes.NewBuffer(confdata), ctxlog.TestLogger(c))
+       confdata := strings.Replace(string(DefaultYAML), "SAMPLE", "12345", -1)
+       cfg, err := testLoader(c, confdata, nil).Load()
+       c.Assert(err, check.IsNil)
+       cluster, err := cfg.GetCluster("xxxxx")
        c.Assert(err, check.IsNil)
-       cluster := cfg.Clusters["xxxxx"]
        cluster.ManagementToken = "abcdefg"
 
        var exported bytes.Buffer
-       err = ExportJSON(&exported, &cluster)
+       err = ExportJSON(&exported, cluster)
        c.Check(err, check.IsNil)
        if err != nil {
                c.Logf("If all the new keys are safe, add these to whitelist in export.go:")
@@ -33,5 +33,7 @@ func (s *ExportSuite) TestExport(c *check.C) {
                        c.Logf("\t%q: true,", strings.Replace(k, `"`, "", -1))
                }
        }
-       c.Check(exported.String(), check.Not(check.Matches), `(?ms).*abcdefg.*`)
+       var exportedStr = exported.String()
+       c.Check(exportedStr, check.Matches, `(?ms).*ClusterID":"xxxxx.*`)
+       c.Check(exportedStr, check.Not(check.Matches), `(?ms).*abcdefg.*`)
 }