|
6 | 6 | "fmt"
|
7 | 7 | "path/filepath"
|
8 | 8 | "reflect"
|
| 9 | + "sort" |
9 | 10 | "strconv"
|
10 | 11 | "testing"
|
11 | 12 | "time"
|
@@ -455,6 +456,63 @@ func TestCancelClickedBeforeLoad(t *testing.T) {
|
455 | 456 | require.Equal(t, "", tf.Status.Terminated.Error)
|
456 | 457 | }
|
457 | 458 |
|
| 459 | +func TestPushBaseImageIssue6486(t *testing.T) { |
| 460 | + f := newFixture(t) |
| 461 | + p := f.tempdir.JoinPath("Tiltfile") |
| 462 | + |
| 463 | + image1 := model.MustNewImageTarget(container.MustParseSelector("image-1")). |
| 464 | + WithDockerImage(v1alpha1.DockerImageSpec{Context: f.tempdir.Path()}) |
| 465 | + image2 := model.MustNewImageTarget(container.MustParseSelector("image-2")). |
| 466 | + WithDockerImage(v1alpha1.DockerImageSpec{Context: f.tempdir.Path()}) |
| 467 | + image3 := model.MustNewImageTarget(container.MustParseSelector("image-3")). |
| 468 | + WithDockerImage(v1alpha1.DockerImageSpec{Context: f.tempdir.Path()}). |
| 469 | + WithImageMapDeps([]string{"image-1", "image-2"}) |
| 470 | + |
| 471 | + service1 := manifestbuilder.New(f.tempdir, "service-1"). |
| 472 | + WithImageTargets(image1). |
| 473 | + WithK8sYAML(testyaml.Deployment("service-1", "image-1")). |
| 474 | + Build() |
| 475 | + service3 := manifestbuilder.New(f.tempdir, "service-3"). |
| 476 | + WithImageTargets(image1, image2, image3). |
| 477 | + WithK8sYAML(testyaml.Deployment("service-3", "image-3")). |
| 478 | + Build() |
| 479 | + |
| 480 | + f.tfl.Result = tiltfile.TiltfileLoadResult{ |
| 481 | + Manifests: []model.Manifest{service1, service3}, |
| 482 | + } |
| 483 | + |
| 484 | + name := model.MainTiltfileManifestName.String() |
| 485 | + tf := v1alpha1.Tiltfile{ |
| 486 | + ObjectMeta: metav1.ObjectMeta{ |
| 487 | + Name: name, |
| 488 | + }, |
| 489 | + Spec: v1alpha1.TiltfileSpec{ |
| 490 | + Path: p, |
| 491 | + }, |
| 492 | + } |
| 493 | + f.createAndWaitForLoaded(&tf) |
| 494 | + |
| 495 | + assert.Equal(t, "", tf.Status.Terminated.Error) |
| 496 | + |
| 497 | + var imageList = v1alpha1.DockerImageList{} |
| 498 | + f.List(&imageList) |
| 499 | + |
| 500 | + sort.Slice(imageList.Items, func(i, j int) bool { |
| 501 | + return imageList.Items[i].Name < imageList.Items[j].Name |
| 502 | + }) |
| 503 | + |
| 504 | + if assert.Equal(t, 4, len(imageList.Items)) { |
| 505 | + assert.Equal(t, "service-1:image-1", imageList.Items[0].Name) |
| 506 | + assert.Equal(t, v1alpha1.ClusterImageNeedsPush, imageList.Items[0].Spec.ClusterNeeds) |
| 507 | + assert.Equal(t, "service-3:image-1", imageList.Items[1].Name) |
| 508 | + assert.Equal(t, v1alpha1.ClusterImageNeedsPush, imageList.Items[1].Spec.ClusterNeeds) |
| 509 | + assert.Equal(t, "service-3:image-2", imageList.Items[2].Name) |
| 510 | + assert.Equal(t, v1alpha1.ClusterImageNeedsBase, imageList.Items[2].Spec.ClusterNeeds) |
| 511 | + assert.Equal(t, "service-3:image-3", imageList.Items[3].Name) |
| 512 | + assert.Equal(t, v1alpha1.ClusterImageNeedsPush, imageList.Items[3].Spec.ClusterNeeds) |
| 513 | + } |
| 514 | +} |
| 515 | + |
458 | 516 | type testStore struct {
|
459 | 517 | *store.TestingStore
|
460 | 518 | out *bytes.Buffer
|
|
0 commit comments