@@ -147,41 +147,58 @@ func TestMinecraftServer(t *testing.T) {
147147 // TODO Find a better way to know when the reconciler is done
148148 time .Sleep (time .Second * 10 )
149149
150+ assertOwnerReference := func (object metav1.Object ) {
151+ require .Len (t , object .GetOwnerReferences (), 1 )
152+ or := object .GetOwnerReferences ()[0 ]
153+ assert .Equal (t , serverObj .Name , or .Name )
154+ assert .Equal (t , "MinecraftServer" , or .Kind )
155+ assert .Equal (t , "minecraft.jameslaverack.com/v1alpha1" , or .APIVersion )
156+ assert .True (t , * or .Controller )
157+ }
158+
150159 // We expect the server to create a few things
151- t .Run ("config map" , func (t * testing.T ) {
152- var configMap corev1.ConfigMap
153- err := k8sClient .Get (ctx , client .ObjectKeyFromObject (& serverObj ), & configMap )
154- require .NoError (t , err )
155- require .NotNil (t , configMap )
156- assert .NotEmpty (t , configMap .Data ["ops.json" ])
157- })
160+ var configMap corev1.ConfigMap
161+ err = k8sClient .Get (ctx , client .ObjectKeyFromObject (& serverObj ), & configMap )
162+ require .NoError (t , err )
163+ assertOwnerReference (& configMap )
164+ assert .NotEmpty (t , configMap .Data ["ops.json" ])
158165
159- t .Run ("pod" , func (t * testing.T ) {
160- var pod corev1.Pod
161- err := k8sClient .Get (ctx , client .ObjectKeyFromObject (& serverObj ), & pod )
162- require .NoError (t , err )
163- require .NotNil (t , pod )
164- spec := pod .Spec
165- require .NotNil (t , spec )
166-
167- // Find the container
168- require .Equal (t , 1 , len (spec .Containers ))
169- container := spec .Containers [0 ]
170-
171- assert .Equal (t , "itzg/minecraft-server:2022.1.1" , container .Image )
172- assert .Equal (t , "minecraft" , container .Name )
173-
174- assertEnv := func (name , value string ) {
175- assert .Contains (t , container .Env , corev1.EnvVar {
176- Name : name ,
177- Value : value ,
178- })
179- }
166+ var pod corev1.Pod
167+ err = k8sClient .Get (ctx , client .ObjectKeyFromObject (& serverObj ), & pod )
168+ require .NoError (t , err )
169+ assertOwnerReference (& pod )
170+ spec := pod .Spec
171+ require .NotNil (t , spec )
172+
173+ // Find the container
174+ require .Len (t , spec .Containers , 1 )
175+ container := spec .Containers [0 ]
176+
177+ assert .Equal (t , "itzg/minecraft-server:2022.1.1" , container .Image )
178+ assert .Equal (t , "minecraft" , container .Name )
179+
180+ assertEnv := func (name , value string ) {
181+ assert .Contains (t , container .Env , corev1.EnvVar {
182+ Name : name ,
183+ Value : value ,
184+ })
185+ }
186+
187+ assertEnv ("VERSION" , serverObj .Spec .MinecraftVersion )
188+ assertEnv ("TYPE" , string (serverObj .Spec .Type ))
189+ assertEnv ("MODE" , "survival" )
190+ assertEnv ("ENABLE_ROLLING_LOGS" , "true" )
191+
192+ var service corev1.Service
193+ err = k8sClient .Get (ctx , client .ObjectKeyFromObject (& serverObj ), & service )
194+ require .NoError (t , err )
195+ assertOwnerReference (& service )
180196
181- assertEnv ("VERSION" , serverObj .Spec .MinecraftVersion )
182- assertEnv ("TYPE" , string (serverObj .Spec .Type ))
183- assertEnv ("MODE" , "survival" )
184- assertEnv ("ENABLE_ROLLING_LOGS" , "true" )
197+ assert .Equal (t , corev1 .ServiceTypeLoadBalancer , service .Spec .Type )
198+ require .Len (t , service .Spec .Ports , 1 )
199+ servicePort := service .Spec .Ports [0 ]
200+ assert .Equal (t , "minecraft" , servicePort .Name )
201+ assert .Equal (t , int32 (25565 ), servicePort .Port )
202+ assert .Equal (t , corev1 .ProtocolTCP , servicePort .Protocol )
185203
186- })
187204}
0 commit comments