1
1
package main
2
2
3
3
import (
4
- "github.com/spf13/afero"
5
- "github.com/stretchr/testify/assert"
4
+ "path/filepath"
6
5
"syscall"
7
6
"testing"
7
+
8
+ "github.com/spf13/afero"
9
+ "github.com/stretchr/testify/assert"
8
10
)
9
11
10
12
func TestFirstRun (t * testing.T ) {
11
13
t .Run ("is the first time running" , func (t * testing.T ) {
12
14
fs := afero .NewMemMapFs ()
13
- firstRun , err := isFirstRun (fs )
15
+ firstRun , err := isFirstRun (fs , DefaultConfigurationFileName )
16
+
17
+ assert .Nil (t , err )
18
+ assert .True (t , firstRun )
19
+ })
20
+ t .Run ("is the first time running given a config path" , func (t * testing.T ) {
21
+ fs := afero .NewMemMapFs ()
22
+ firstRun , err := isFirstRun (fs , filepath .Join ("newpath" , DefaultConfigurationFileName ))
14
23
15
24
assert .Nil (t , err )
16
25
assert .True (t , firstRun )
17
26
})
18
27
t .Run ("is NOT the first time running" , func (t * testing.T ) {
19
28
fs := afero .NewMemMapFs ()
20
29
_ , _ = fs .Create (DefaultConfigurationFileName )
21
- firstRun , err := isFirstRun (fs )
30
+ firstRun , err := isFirstRun (fs , DefaultConfigurationFileName )
31
+
32
+ assert .Nil (t , err )
33
+ assert .False (t , firstRun )
34
+ })
35
+ t .Run ("is NOT the first time running given a config path" , func (t * testing.T ) {
36
+ fs := afero .NewMemMapFs ()
37
+ path := filepath .Join ("newpath" , DefaultConfigurationFileName )
38
+ _ , _ = fs .Create (path )
39
+ firstRun , err := isFirstRun (fs , path )
22
40
23
41
assert .Nil (t , err )
24
42
assert .False (t , firstRun )
@@ -28,14 +46,21 @@ func TestFirstRun(t *testing.T) {
28
46
func TestConfigureFirstRun (t * testing.T ) {
29
47
t .Run ("configure first time use files" , func (t * testing.T ) {
30
48
fs := afero .NewMemMapFs ()
31
- err := configureFirstRun (fs )
49
+ err := configureFirstRun (fs , DefaultConfigurationFileName )
50
+
51
+ assert .Nil (t , err )
52
+ })
53
+
54
+ t .Run ("configure first time use files given a config path" , func (t * testing.T ) {
55
+ fs := afero .NewMemMapFs ()
56
+ err := configureFirstRun (fs , filepath .Join ("newpath" , DefaultConfigurationFileName ))
32
57
33
58
assert .Nil (t , err )
34
59
})
35
60
36
61
t .Run ("cannot configure when is a read only dir" , func (t * testing.T ) {
37
62
fs := afero .NewReadOnlyFs (afero .NewMemMapFs ())
38
- err := configureFirstRun (fs )
63
+ err := configureFirstRun (fs , DefaultConfigurationFileName )
39
64
if assert .Error (t , err ) {
40
65
assert .Equal (t , syscall .Errno (1 ), err )
41
66
}
@@ -45,9 +70,22 @@ func TestConfigureFirstRun(t *testing.T) {
45
70
func TestLoadConfig (t * testing.T ) {
46
71
t .Run ("loading config file" , func (t * testing.T ) {
47
72
fs := afero .NewMemMapFs ()
48
- _ = configureFirstRun (fs )
73
+ _ = configureFirstRun (fs , DefaultConfigurationFileName )
74
+
75
+ config , err := loadConfig (fs , DefaultConfigurationFileName )
76
+ assert .Nil (t , err )
77
+ assert .Equal (t , ":8080" , config .Addr )
78
+ assert .Equal (t , 1 , len (config .Responses ))
79
+ assert .Equal (t , 200 , config .Responses [0 ].Status )
80
+ assert .Equal (t , "GET" , config .Responses [0 ].Method )
81
+ assert .Equal (t , "0ms" , config .Responses [0 ].Latency )
82
+ })
83
+ t .Run ("loading config file" , func (t * testing.T ) {
84
+ path := filepath .Join ("newpath" , DefaultConfigurationFileName )
85
+ fs := afero .NewMemMapFs ()
86
+ _ = configureFirstRun (fs , path )
49
87
50
- config , err := loadConfig (fs )
88
+ config , err := loadConfig (fs , path )
51
89
assert .Nil (t , err )
52
90
assert .Equal (t , ":8080" , config .Addr )
53
91
assert .Equal (t , 1 , len (config .Responses ))
0 commit comments