common.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package test
  2. import (
  3. _ "embed"
  4. "github.com/pkg/errors"
  5. "sort"
  6. "testing"
  7. )
  8. const (
  9. kubeConfig = "/etc/rancher/k3s/k3s.yaml"
  10. namespace = "argo-api"
  11. workflowTemplateName = "approve"
  12. )
  13. //go:embed definitions/approve_workflow_template.yaml
  14. var templateYamlStr string
  15. //go:embed definitions/approve_workflow.yaml
  16. var workflowYamlStr string
  17. //go:embed definitions/workflow_template_with_params.yaml
  18. var workflowTemplateWithParamsYamlStr string
  19. //go:embed definitions/workflow_with_params.yaml
  20. var workflowWithParamsYamlStr string
  21. func compareDefinitionMap(t *testing.T, definitionMap map[string]any, checkDefinitionMaps map[string]any) {
  22. keys := make([]string, 0)
  23. for key, _ := range definitionMap {
  24. keys = append(keys, key)
  25. }
  26. sort.Strings(keys)
  27. for _, key := range keys {
  28. innerDefinitionMap, ok := definitionMap[key].(map[string]any)
  29. if ok {
  30. compareDefinitionMap(t, innerDefinitionMap, checkDefinitionMaps[key].(map[string]any))
  31. continue
  32. }
  33. sliceValues, ok := definitionMap[key].([]any)
  34. if ok {
  35. for i, sliceValue := range sliceValues {
  36. innerDefinitionMap, ok := sliceValue.(map[string]any)
  37. if ok {
  38. compareDefinitionMap(t, innerDefinitionMap, checkDefinitionMaps[key].([]any)[i].(map[string]any))
  39. continue
  40. }
  41. if sliceValue != checkDefinitionMaps[key].([]any)[i] {
  42. t.Fatalf("%+v\n", errors.Errorf("key: %v value %v", key, definitionMap[key]))
  43. }
  44. }
  45. continue
  46. }
  47. if definitionMap[key] != checkDefinitionMaps[key] {
  48. t.Fatalf("%+v\n", errors.Errorf("key: %v value %v", key, definitionMap[key]))
  49. }
  50. }
  51. }