MCPcopy
hub / github.com/helm/helm / TestStorageDoNotDeleteDeployed

Function TestStorageDoNotDeleteDeployed

pkg/storage/storage_test.go:411–463  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

409}
410
411func TestStorageDoNotDeleteDeployed(t *testing.T) {
412 storage := Init(driver.NewMemory())
413 storage.MaxHistory = 3
414
415 const name = "angry-bird"
416
417 // setup storage with test releases
418 setup := func() {
419 // release records
420 rls0 := ReleaseTestData{Name: name, Version: 1, Status: common.StatusSuperseded}.ToRelease()
421 rls1 := ReleaseTestData{Name: name, Version: 2, Status: common.StatusDeployed}.ToRelease()
422 rls2 := ReleaseTestData{Name: name, Version: 3, Status: common.StatusFailed}.ToRelease()
423 rls3 := ReleaseTestData{Name: name, Version: 4, Status: common.StatusFailed}.ToRelease()
424
425 // create the release records in the storage
426 assertErrNil(t.Fatal, storage.Create(rls0), "Storing release 'angry-bird' (v1)")
427 assertErrNil(t.Fatal, storage.Create(rls1), "Storing release 'angry-bird' (v2)")
428 assertErrNil(t.Fatal, storage.Create(rls2), "Storing release 'angry-bird' (v3)")
429 assertErrNil(t.Fatal, storage.Create(rls3), "Storing release 'angry-bird' (v4)")
430 }
431 setup()
432
433 rls5 := ReleaseTestData{Name: name, Version: 5, Status: common.StatusFailed}.ToRelease()
434 assertErrNil(t.Fatal, storage.Create(rls5), "Storing release 'angry-bird' (v5)")
435
436 // On inserting the 5th record, we expect a total of 3 releases, but we expect version 2
437 // (the only deployed release), to still exist
438 hist, err := storage.History(name)
439 if err != nil {
440 t.Fatal(err)
441 } else if len(hist) != storage.MaxHistory {
442 rhist, err := releaseListToV1List(hist)
443 assert.NoError(t, err)
444 for _, item := range rhist {
445 t.Logf("%s %v", item.Name, item.Version)
446 }
447 t.Fatalf("expected %d items in history, got %d", storage.MaxHistory, len(rhist))
448 }
449
450 expectedVersions := map[int]bool{
451 2: true,
452 4: true,
453 5: true,
454 }
455
456 rhist, err := releaseListToV1List(hist)
457 assert.NoError(t, err)
458 for _, item := range rhist {
459 if !expectedVersions[item.Version] {
460 t.Errorf("Release version %d, found when not expected", item.Version)
461 }
462 }
463}
464
465func TestStorageLast(t *testing.T) {
466 storage := Init(driver.NewMemory())

Callers

nothing calls this directly

Calls 10

NewMemoryFunction · 0.92
InitFunction · 0.85
assertErrNilFunction · 0.85
setupFunction · 0.85
ToReleaseMethod · 0.80
HistoryMethod · 0.80
FatalMethod · 0.80
FatalfMethod · 0.80
releaseListToV1ListFunction · 0.70
CreateMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…