@@ -7,6 +7,7 @@ package structparse
7
7
8
8
import (
9
9
"testing"
10
+ "time"
10
11
11
12
"github.com/stretchr/testify/assert"
12
13
)
@@ -78,10 +79,70 @@ func TestParsing(t *testing.T) {
78
79
assert .EqualValues (t , "boop" , c .Fake ["test2" ]["test1" ])
79
80
})
80
81
81
- t .Run ("Handles non-supported types" , func (t * testing.T ) {
82
+ t .Run ("Handles non-supported types" , func (t * testing.T ) {
82
83
fem := FakeEnvMapper {"TEST" , "REPLACED" }
83
- c := struct {Fake bool } { false }
84
- Strings (& fem , & c )
85
- })
84
+ c := struct { Fake bool }{false }
85
+ Strings (& fem , & c )
86
+ })
87
+
88
+ t .Run ("struct with time" , func (t * testing.T ) {
89
+ fem := FakeEnvMapper {"TEST" , "REPLACED" }
90
+ type Foo struct {
91
+ Bar string
92
+ Time time.Time
93
+ }
94
+
95
+ foo := Foo {Bar : "TEST" }
96
+
97
+ Strings (& fem , & foo )
98
+
99
+ assert .EqualValues (t , "REPLACED" , foo .Bar )
100
+ })
101
+
102
+ t .Run ("map" , func (t * testing.T ) {
103
+ fem := FakeEnvMapper {"TEST" , "REPLACED" }
104
+ type foo struct {
105
+ Name string
106
+ }
107
+ c := map [string ]foo {"1" : {"TEST" }, "2" : {"TEST" }}
108
+
109
+ Strings (& fem , & c )
110
+
111
+ assert .EqualValues (t , "REPLACED" , c ["1" ].Name )
112
+ assert .EqualValues (t , "REPLACED" , c ["2" ].Name )
113
+ })
86
114
115
+ t .Run ("struct" , func (t * testing.T ) {
116
+ fem := FakeEnvMapper {"TEST" , "REPLACED" }
117
+ type bar struct {
118
+ Name string
119
+ }
120
+ type foo struct {
121
+ Bar bar
122
+ }
123
+
124
+ c := foo {Bar : bar {"TEST" }}
125
+
126
+ Strings (& fem , & c )
127
+
128
+ assert .EqualValues (t , "REPLACED" , c .Bar .Name )
129
+ })
130
+
131
+ t .Run ("struct with pointer field" , func (t * testing.T ) {
132
+ fem := FakeEnvMapper {"TEST" , "REPLACED" }
133
+ type bar struct {
134
+ Name string
135
+ unexported string
136
+ }
137
+ type foo struct {
138
+ Bar * bar
139
+ }
140
+
141
+ c := foo {Bar : & bar {Name : "TEST" , unexported : "unexported" }}
142
+
143
+ Strings (& fem , & c )
144
+
145
+ assert .EqualValues (t , "REPLACED" , c .Bar .Name )
146
+ assert .EqualValues (t , "unexported" , c .Bar .unexported )
147
+ })
87
148
}
0 commit comments