-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfunctions_test.go
111 lines (92 loc) · 2.44 KB
/
functions_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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
package lang
import (
"testing"
"github.com/stretchr/testify/assert"
)
func resetGlobalVars() {
defaultTranslator = nil
translationPath = ""
defaultLocale = ""
fallbackLocale = ""
}
func TestSetDefaultLocale(t *testing.T) {
resetGlobalVars()
SetDefaultLocale("nl")
assert.Equal(t, "nl", defaultLocale)
}
func TestSetFallbackLocale(t *testing.T) {
resetGlobalVars()
SetFallbackLocale("zh")
assert.Equal(t, "zh", fallbackLocale)
}
func TestSetTranslationFilesPath(t *testing.T) {
resetGlobalVars()
SetTranslationFilesPath("somewhere/else")
assert.Equal(t, "somewhere/else", translationPath)
}
func TestInit(t *testing.T) {
t.Run("default", func(t *testing.T) {
resetGlobalVars()
err := Init()
assert.Nil(t, err)
assert.NotNil(t, defaultTranslator)
assert.Equal(t, DefaultConfigs(), defaultTranslator.config)
})
t.Run("configure-by-functions", func(t *testing.T) {
resetGlobalVars()
SetTranslationFilesPath("somewhere/else")
SetDefaultLocale("hi")
SetFallbackLocale("ar")
err := Init()
assert.Nil(t, err)
assert.NotNil(t, defaultTranslator)
assert.NotEqual(t, DefaultConfigs(), defaultTranslator.config)
assert.Equal(t, translationPath, defaultTranslator.config.TranslationPath)
assert.Equal(t, defaultLocale, defaultTranslator.config.DefaultLocale)
assert.Equal(t, fallbackLocale, defaultTranslator.config.FallbackLocale)
})
}
func TestTrans(t *testing.T) {
t.Run("initiated", func(t *testing.T) {
resetGlobalVars()
_ = Init()
for key, data := range flatDictionary {
translation := Trans(key, keyParam[key])
assert.Equal(t, data[defaultTranslator.config.DefaultLocale], translation)
}
})
t.Run("not-initiated", func(t *testing.T) {
resetGlobalVars()
for key := range flatDictionary {
assert.Panics(t, func() {
Trans(key, keyParam[key])
})
}
})
}
func TestTransBy(t *testing.T) {
t.Run("initiated", func(t *testing.T) {
resetGlobalVars()
_ = Init()
for _, locale := range existingLanguages {
for key, data := range flatDictionary {
t.Run(locale, func(t *testing.T) {
translation := TransBy(locale, key, keyParam[key])
assert.Equal(t, data[locale], translation)
})
}
}
})
t.Run("not-initiated", func(t *testing.T) {
resetGlobalVars()
for _, locale := range existingLanguages {
for key := range flatDictionary {
t.Run(locale, func(t *testing.T) {
assert.Panics(t, func() {
TransBy(locale, key, keyParam[key])
})
})
}
}
})
}