@@ -323,6 +323,45 @@ func TestPluginOverrides(t *testing.T) {
323
323
}
324
324
}
325
325
326
+ func TestMergingOnlyPlugins (t * testing.T ) {
327
+ baseFile := "test-fixtures/merges/no-parent/main.yaml"
328
+ pluginFile := "test-fixtures/merges/no-parent/plugin.yaml"
329
+ resultFile := "test-fixtures/merges/no-parent/result.yaml"
330
+
331
+ baseDWT := workspaces.DevWorkspaceTemplateSpecContent {}
332
+ pluginDWT := workspaces.DevWorkspaceTemplateSpecContent {}
333
+ expectedDWT := workspaces.DevWorkspaceTemplateSpecContent {}
334
+
335
+ readFileToStruct (t , baseFile , & baseDWT )
336
+ readFileToStruct (t , pluginFile , & pluginDWT )
337
+ readFileToStruct (t , resultFile , & expectedDWT )
338
+
339
+ gotDWT , err := MergeDevWorkspaceTemplateSpec (& baseDWT , nil , & pluginDWT )
340
+ if assert .NoError (t , err ) {
341
+ assert .Equal (t , & expectedDWT , gotDWT )
342
+ }
343
+ }
344
+
345
+ func TestMergingOnlyParent (t * testing.T ) {
346
+ // Reuse only plugin case since it's compatible
347
+ baseFile := "test-fixtures/merges/no-parent/main.yaml"
348
+ parentFile := "test-fixtures/merges/no-parent/plugin.yaml"
349
+ resultFile := "test-fixtures/merges/no-parent/result.yaml"
350
+
351
+ baseDWT := workspaces.DevWorkspaceTemplateSpecContent {}
352
+ parentDWT := workspaces.DevWorkspaceTemplateSpecContent {}
353
+ expectedDWT := workspaces.DevWorkspaceTemplateSpecContent {}
354
+
355
+ readFileToStruct (t , baseFile , & baseDWT )
356
+ readFileToStruct (t , parentFile , & parentDWT )
357
+ readFileToStruct (t , resultFile , & expectedDWT )
358
+
359
+ gotDWT , err := MergeDevWorkspaceTemplateSpec (& baseDWT , & parentDWT )
360
+ if assert .NoError (t , err ) {
361
+ assert .Equal (t , & expectedDWT , gotDWT )
362
+ }
363
+ }
364
+
326
365
func readFileToStruct (t * testing.T , path string , into interface {}) {
327
366
bytes , err := ioutil .ReadFile (path )
328
367
if err != nil {
0 commit comments