/
repo-config_test.go
64 lines (48 loc) · 1.43 KB
/
repo-config_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package config
import (
"github.com/aliyun/git-repo-go/file"
"github.com/stretchr/testify/assert"
"path/filepath"
"testing"
)
var (
userMisoperationInput = `
# Example git-repo config file, generated by git-repo.
# DO NOT edit this file! Any modification will be overwritten.
#
# Set console verbosity. 1: show info, 2: show debug, 3: show trace
#verbose: 0
# LogLvel for logging to file
#loglevel: warning
# LogRotate defines max size of the logfile
#logrotate: 20M
# LogFile defines where to save log
#logfile:
this is the user misoperation input string
`
)
func Test_InstallRepoConfig(t *testing.T) {
// 1. Run InstallRepoConfig for init config example file
InstallRepoConfig()
configDir, err := GetConfigDir()
assert.NoError(t, err)
filename := filepath.Join(configDir, DefaultGitRepoConfigFile+".yml.example")
assert.NoError(t, err)
fileOpen, err := file.New(filename).OpenCreateRewrite()
assert.NoError(t, err)
defer fileOpen.Close()
// 2. Simulate user's misoperation to modify config example file
_, err = fileOpen.WriteString(userMisoperationInput)
assert.NoError(t, err)
InstallRepoConfig()
fileRead, err := file.New(filename).Open()
assert.NoError(t, err)
defer fileRead.Close()
fileInfo, err := fileRead.Stat()
assert.NoError(t, err)
fileSize := fileInfo.Size()
buffer := make([]byte, fileSize)
_, err = fileRead.Read(buffer)
assert.NoError(t, err)
assert.Equal(t, gitRepoConfigExample, string(buffer))
}