storage_test.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package helm_test
  2. import (
  3. "reflect"
  4. "testing"
  5. "helm.sh/helm/v3/pkg/chart"
  6. "helm.sh/helm/v3/pkg/release"
  7. "github.com/porter-dev/porter/internal/helm"
  8. "github.com/porter-dev/porter/internal/kubernetes"
  9. "github.com/porter-dev/porter/pkg/logger"
  10. "helm.sh/helm/v3/pkg/storage"
  11. "k8s.io/client-go/kubernetes/fake"
  12. )
  13. func testDriver(t *testing.T, storage *storage.Storage) {
  14. t.Helper()
  15. rel := &release.Release{
  16. Name: "porter",
  17. Namespace: "default",
  18. Version: 1,
  19. Info: &release.Info{
  20. Status: release.StatusDeployed,
  21. },
  22. Chart: &chart.Chart{
  23. Metadata: &chart.Metadata{
  24. Version: "1.0.0",
  25. Icon: "https://example.com/icon.png",
  26. },
  27. },
  28. }
  29. err := storage.Create(rel)
  30. if err != nil {
  31. t.Fatal(err)
  32. }
  33. gotRel, err := storage.Get("porter", 1)
  34. if err != nil {
  35. t.Fatal(err)
  36. }
  37. if !reflect.DeepEqual(rel, gotRel) {
  38. t.Fatalf("Objects not equal: expected %v, got %v\n", rel, gotRel)
  39. }
  40. }
  41. func testStorageDriver(t *testing.T, name string) {
  42. t.Helper()
  43. k8sAgent := kubernetes.GetAgentTesting()
  44. newDriver := helm.StorageMap[name]
  45. l := logger.NewConsole(true)
  46. clientset, ok := k8sAgent.Clientset.(*fake.Clientset)
  47. if !ok {
  48. t.Fatal("Agent Clientset was not of type *(k8s.io/client-go/kubernetes/fake).Clientset")
  49. }
  50. driver := newDriver(l, clientset.CoreV1(), "default")
  51. testDriver(t, driver)
  52. }
  53. func TestNewSecretStorageDriver(t *testing.T) {
  54. testStorageDriver(t, "secret")
  55. }
  56. func TestNewConfigMapStorageDriver(t *testing.T) {
  57. testStorageDriver(t, "configmap")
  58. }
  59. func TestNewMemoryStorageDriver(t *testing.T) {
  60. testStorageDriver(t, "memory")
  61. }