More tests.
authorOllivier Robert <roberto@keltia.net>
Tue, 11 Apr 2017 11:27:45 +0200
changeset 63 8d31e8907662
parent 62 4b861c82e5f6
child 64 26c0cc13a211
More tests.
config_test.go
--- a/config_test.go	Tue Apr 11 10:22:44 2017 +0200
+++ b/config_test.go	Tue Apr 11 11:27:45 2017 +0200
@@ -17,14 +17,16 @@
 	assert.Error(t, err, "just garbage")
 
 	// git does now allow you to checkin 000 files :(
-	err = os.Chmod(filepath.Join("test", "perms.toml"), 000)
+	err = os.Chmod(filepath.Join("test", "perms.toml"), 0000)
+	assert.NoError(t, err, "should be fine")
 	_, err = loadGlobal(filepath.Join("test", "perms.toml"))
 	assert.Error(t, err, "unreadable")
-	err = os.Chmod(filepath.Join("test", "perms.toml"), 600)
+	err = os.Chmod(filepath.Join("test", "perms.toml"), 0600)
+	assert.NoError(t, err, "should be fine")
 
 	c, err := loadGlobal(filepath.Join("test", "config.toml"))
 	assert.NoError(t, err, "should read it fine")
-	assert.EqualValues(t, "foobar", c.Default, "equal")
+	assert.EqualValues(t, "foo", c.Default, "equal")
 }
 
 func TestLoadInstance(t *testing.T) {
@@ -33,12 +35,29 @@
 	_, err := loadInstance("nonexistent")
 	assert.Error(t, err, "does not exist")
 
+	file := filepath.Join("test", "garbage")
+	_, err = loadInstance(file)
+	assert.Error(t, err, "just garbage")
+
+	file = filepath.Join("test", "foo.token")
+	err = os.Chmod(file, 0000)
+	assert.NoError(t, err, "should be fine")
+
+	file = filepath.Join("test", "foo")
+	_, err = loadInstance(file)
+	assert.Error(t, err, "unreadable")
+
+	file = filepath.Join("test", "foo.token")
+	err = os.Chmod(file, 0644)
+	assert.NoError(t, err, "should be fine")
+
 	real := &Server{
 		ID:          666,
 		Name:        "foo",
 		BearerToken: "d3b07384d113edec49eaa6238ad5ff00",
 	}
-	s, err := loadInstance("test/foo")
+	file = filepath.Join("test", "foo")
+	s, err := loadInstance(file)
 	assert.NoError(t, err, "all fine")
 	assert.Equal(t, real, s, "equal")
 }
@@ -46,7 +65,10 @@
 func TestGetInstanceList(t *testing.T) {
 	baseDir = "test"
 
-	real := []string{"test/foo.token", "test/garbage.token"}
+	real := []string{
+		filepath.Join("test", "foo.token"),
+		filepath.Join("test", "garbage.token"),
+	}
 	list := GetInstanceList()
 	assert.Equal(t, real, list, "equal")
 
@@ -60,3 +82,23 @@
 	list = GetInstanceList()
 	assert.Equal(t, real, list, "equal")
 }
+
+func TestLoadConfig(t *testing.T) {
+	baseDir = "test"
+
+	_, err := LoadConfig("foo")
+	assert.NoError(t, err, "should be fine")
+
+	_, err = LoadConfig("")
+	assert.NoError(t, err, "should be fine")
+
+	err = os.Chmod(filepath.Join("test", "config.toml"), 0000)
+	assert.NoError(t, err, "should be fine")
+
+	_, err = LoadConfig("")
+	assert.Error(t, err, "should be unreadable")
+
+	err = os.Chmod(filepath.Join("test", "config.toml"), 0600)
+	assert.NoError(t, err, "should be fine")
+
+}
\ No newline at end of file