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. workflowTemplateWithParamsName = "hello"
  13. )
  14. //go:embed definitions/approve_workflow_template.yaml
  15. var templateYamlStr string
  16. //go:embed definitions/approve_workflow.yaml
  17. var workflowYamlStr string
  18. //go:embed definitions/workflow_template_with_params.yaml
  19. var workflowTemplateWithParamsYamlStr string
  20. //go:embed definitions/workflow_with_params.yaml
  21. var workflowWithParamsYamlStr string
  22. func compareDefinitionMap(t *testing.T, definitionMap map[string]any, checkDefinitionMaps map[string]any) {
  23. keys := make([]string, 0)
  24. for key, _ := range definitionMap {
  25. keys = append(keys, key)
  26. }
  27. sort.Strings(keys)
  28. for _, key := range keys {
  29. innerDefinitionMap, ok := definitionMap[key].(map[string]any)
  30. if ok {
  31. compareDefinitionMap(t, innerDefinitionMap, checkDefinitionMaps[key].(map[string]any))
  32. continue
  33. }
  34. sliceValues, ok := definitionMap[key].([]any)
  35. if ok {
  36. for i, sliceValue := range sliceValues {
  37. innerDefinitionMap, ok := sliceValue.(map[string]any)
  38. if ok {
  39. compareDefinitionMap(t, innerDefinitionMap, checkDefinitionMaps[key].([]any)[i].(map[string]any))
  40. continue
  41. }
  42. if sliceValue != checkDefinitionMaps[key].([]any)[i] {
  43. t.Fatalf("%+v\n", errors.Errorf("key: %v value %v", key, definitionMap[key]))
  44. }
  45. }
  46. continue
  47. }
  48. if definitionMap[key] != checkDefinitionMaps[key] {
  49. t.Fatalf("%+v\n", errors.Errorf("key: %v value %v", key, definitionMap[key]))
  50. }
  51. }
  52. }