|
1 package gondole |
|
2 |
|
3 import ( |
|
4 "github.com/stretchr/testify/assert" |
|
5 "os" |
|
6 "path/filepath" |
|
7 "testing" |
|
8 ) |
|
9 |
|
10 func TestLoadGlobal(t *testing.T) { |
|
11 baseDir = "." |
|
12 |
|
13 _, err := loadGlobal(filepath.Join("test", "non.toml")) |
|
14 assert.Error(t, err, "does not exist") |
|
15 |
|
16 _, err = loadGlobal(filepath.Join("test", "garbage.token")) |
|
17 assert.Error(t, err, "just garbage") |
|
18 |
|
19 // git does now allow you to checkin 000 files :( |
|
20 err = os.Chmod(filepath.Join("test", "perms.toml"), 0000) |
|
21 assert.NoError(t, err, "should be fine") |
|
22 _, err = loadGlobal(filepath.Join("test", "perms.toml")) |
|
23 assert.Error(t, err, "unreadable") |
|
24 err = os.Chmod(filepath.Join("test", "perms.toml"), 0600) |
|
25 assert.NoError(t, err, "should be fine") |
|
26 |
|
27 c, err := loadGlobal(filepath.Join("test", "config.toml")) |
|
28 assert.NoError(t, err, "should read it fine") |
|
29 assert.EqualValues(t, "foo", c.Default, "equal") |
|
30 } |
|
31 |
|
32 func TestLoadInstance(t *testing.T) { |
|
33 baseDir = "." |
|
34 |
|
35 _, err := loadInstance("nonexistent") |
|
36 assert.Error(t, err, "does not exist") |
|
37 |
|
38 file := filepath.Join("test", "garbage") |
|
39 _, err = loadInstance(file) |
|
40 assert.Error(t, err, "just garbage") |
|
41 |
|
42 file = filepath.Join("test", "foo.token") |
|
43 err = os.Chmod(file, 0000) |
|
44 assert.NoError(t, err, "should be fine") |
|
45 |
|
46 file = filepath.Join("test", "foo") |
|
47 _, err = loadInstance(file) |
|
48 assert.Error(t, err, "unreadable") |
|
49 |
|
50 file = filepath.Join("test", "foo.token") |
|
51 err = os.Chmod(file, 0644) |
|
52 assert.NoError(t, err, "should be fine") |
|
53 |
|
54 real := &Server{ |
|
55 ID: "666", |
|
56 Name: "foo", |
|
57 BearerToken: "d3b07384d113edec49eaa6238ad5ff00", |
|
58 BaseURL: "https://mastodon.social", |
|
59 } |
|
60 file = filepath.Join("test", "foo") |
|
61 s, err := loadInstance(file) |
|
62 assert.NoError(t, err, "all fine") |
|
63 assert.Equal(t, real, s, "equal") |
|
64 } |
|
65 |
|
66 func TestGetInstanceList(t *testing.T) { |
|
67 baseDir = "test" |
|
68 |
|
69 real := []string{ |
|
70 filepath.Join("test", "foo.token"), |
|
71 filepath.Join("test", "garbage.token"), |
|
72 } |
|
73 list := GetInstanceList() |
|
74 assert.Equal(t, real, list, "equal") |
|
75 |
|
76 baseDir = "/tmp" |
|
77 real = nil |
|
78 list = GetInstanceList() |
|
79 assert.Equal(t, real, list, "equal") |
|
80 |
|
81 baseDir = "/nonexistent" |
|
82 real = nil |
|
83 list = GetInstanceList() |
|
84 assert.Equal(t, real, list, "equal") |
|
85 } |
|
86 |
|
87 func TestLoadConfig(t *testing.T) { |
|
88 baseDir = "test" |
|
89 |
|
90 _, err := LoadConfig("foo") |
|
91 assert.NoError(t, err, "should be fine") |
|
92 |
|
93 _, err = LoadConfig("") |
|
94 assert.NoError(t, err, "should be fine") |
|
95 |
|
96 err = os.Chmod(filepath.Join("test", "config.toml"), 0000) |
|
97 assert.NoError(t, err, "should be fine") |
|
98 |
|
99 _, err = LoadConfig("") |
|
100 assert.Error(t, err, "should be unreadable") |
|
101 |
|
102 err = os.Chmod(filepath.Join("test", "config.toml"), 0600) |
|
103 assert.NoError(t, err, "should be fine") |
|
104 |
|
105 } |