(t *testing.T)
| 409 | } |
| 410 | |
| 411 | func 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 | |
| 465 | func TestStorageLast(t *testing.T) { |
| 466 | storage := Init(driver.NewMemory()) |
nothing calls this directly
no test coverage detected
searching dependent graphs…