cmd/gondole-cli/config_test.go
author Mikael Berthe <mikael@lilotux.net>
Sat, 15 Apr 2017 21:08:34 +0200
changeset 124 5ee3f23205af
parent 81 ba90955d2d56
permissions -rw-r--r--
Update gondole-cli tests
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
73
d601c957d789 We are in package "main" now.
Ollivier Robert <roberto@keltia.net>
parents: 69
diff changeset
     1
package main
23
512f1bfaed0c Start a config module.
Ollivier Robert <roberto@keltia.net>
parents: 8
diff changeset
     2
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
     3
import (
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
     4
	"github.com/stretchr/testify/assert"
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
     5
	"os"
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
     6
	"path/filepath"
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
     7
	"testing"
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
     8
)
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
     9
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    10
func TestLoadGlobal(t *testing.T) {
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    11
	baseDir = "."
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    12
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    13
	_, err := loadGlobal(filepath.Join("test", "non.toml"))
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    14
	assert.Error(t, err, "does not exist")
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    15
60
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    16
	_, err = loadGlobal(filepath.Join("test", "garbage.token"))
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    17
	assert.Error(t, err, "just garbage")
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    18
47
4ea0a1d2cf9a Grrr, workaround the fact that one can not commit "000" files.
Ollivier Robert <roberto@keltia.net>
parents: 45
diff changeset
    19
	// git does now allow you to checkin 000 files :(
63
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    20
	err = os.Chmod(filepath.Join("test", "perms.toml"), 0000)
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    21
	assert.NoError(t, err, "should be fine")
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    22
	_, err = loadGlobal(filepath.Join("test", "perms.toml"))
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    23
	assert.Error(t, err, "unreadable")
63
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    24
	err = os.Chmod(filepath.Join("test", "perms.toml"), 0600)
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    25
	assert.NoError(t, err, "should be fine")
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    26
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    27
	c, err := loadGlobal(filepath.Join("test", "config.toml"))
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    28
	assert.NoError(t, err, "should read it fine")
63
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    29
	assert.EqualValues(t, "foo", c.Default, "equal")
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    30
}
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    31
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    32
func TestLoadInstance(t *testing.T) {
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    33
	baseDir = "."
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    34
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    35
	_, err := loadInstance("nonexistent")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    36
	assert.Error(t, err, "does not exist")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    37
63
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    38
	file := filepath.Join("test", "garbage")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    39
	_, err = loadInstance(file)
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    40
	assert.Error(t, err, "just garbage")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    41
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    42
	file = filepath.Join("test", "foo.token")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    43
	err = os.Chmod(file, 0000)
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    44
	assert.NoError(t, err, "should be fine")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    45
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    46
	file = filepath.Join("test", "foo")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    47
	_, err = loadInstance(file)
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    48
	assert.Error(t, err, "unreadable")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    49
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    50
	file = filepath.Join("test", "foo.token")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    51
	err = os.Chmod(file, 0644)
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    52
	assert.NoError(t, err, "should be fine")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    53
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    54
	real := &Server{
124
5ee3f23205af Update gondole-cli tests
Mikael Berthe <mikael@lilotux.net>
parents: 81
diff changeset
    55
		ID:          "666abcdef666",
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    56
		Name:        "foo",
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    57
		BearerToken: "d3b07384d113edec49eaa6238ad5ff00",
124
5ee3f23205af Update gondole-cli tests
Mikael Berthe <mikael@lilotux.net>
parents: 81
diff changeset
    58
		APIBase:     "https://mastodon.social/api/v1",
5ee3f23205af Update gondole-cli tests
Mikael Berthe <mikael@lilotux.net>
parents: 81
diff changeset
    59
		InstanceURL: "https://mastodon.social",
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    60
	}
63
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    61
	file = filepath.Join("test", "foo")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    62
	s, err := loadInstance(file)
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    63
	assert.NoError(t, err, "all fine")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    64
	assert.Equal(t, real, s, "equal")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    65
}
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    66
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    67
func TestGetInstanceList(t *testing.T) {
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    68
	baseDir = "test"
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    69
63
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    70
	real := []string{
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    71
		filepath.Join("test", "foo.token"),
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    72
		filepath.Join("test", "garbage.token"),
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    73
	}
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    74
	list := GetInstanceList()
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    75
	assert.Equal(t, real, list, "equal")
58
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    76
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    77
	baseDir = "/tmp"
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    78
	real = nil
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    79
	list = GetInstanceList()
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    80
	assert.Equal(t, real, list, "equal")
60
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    81
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    82
	baseDir = "/nonexistent"
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    83
	real = nil
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    84
	list = GetInstanceList()
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    85
	assert.Equal(t, real, list, "equal")
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    86
}
63
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    87
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    88
func TestLoadConfig(t *testing.T) {
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    89
	baseDir = "test"
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    90
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    91
	_, err := LoadConfig("foo")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    92
	assert.NoError(t, err, "should be fine")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    93
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    94
	_, err = LoadConfig("")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    95
	assert.NoError(t, err, "should be fine")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    96
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    97
	err = os.Chmod(filepath.Join("test", "config.toml"), 0000)
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    98
	assert.NoError(t, err, "should be fine")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
    99
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
   100
	_, err = LoadConfig("")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
   101
	assert.Error(t, err, "should be unreadable")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
   102
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
   103
	err = os.Chmod(filepath.Join("test", "config.toml"), 0600)
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
   104
	assert.NoError(t, err, "should be fine")
8d31e8907662 More tests.
Ollivier Robert <roberto@keltia.net>
parents: 60
diff changeset
   105
124
5ee3f23205af Update gondole-cli tests
Mikael Berthe <mikael@lilotux.net>
parents: 81
diff changeset
   106
}