//go:build integration

package tilt

import "testing"

func TestIntegration_UntouchedLiveBinaryDoesNotBlockReadiness(t *testing.T) {
	readiness, err := ParseUIResourceReadiness([]byte(`{
		"items": [{
			"metadata": {
				"name": "account-live-binary",
				"annotations": {"cp9.tidbcloud.com/image-stamp": "c3RhbXA="}
			},
			"status": {
				"conditions": [{"type": "Ready", "status": "False"}],
				"runtimeStatus": "not_applicable",
				"updateStatus": "none"
			}
		}]
	}`))
	if err != nil {
		t.Fatal(err)
	}
	if readiness.ReadyResources != 1 || readiness.TotalResources != 1 {
		t.Fatalf("untouched live-binary readiness = %d/%d, want 1/1", readiness.ReadyResources, readiness.TotalResources)
	}
	if got := readiness.ResourceStates["account-live-binary"].ImageStamp; got != "c3RhbXA=" {
		t.Fatalf("image stamp = %q, want c3RhbXA=", got)
	}
}

func TestIntegration_TriggeredLiveBinaryStillBlocksReadiness(t *testing.T) {
	readiness, err := ParseUIResourceReadiness([]byte(`{
		"items": [{
			"metadata": {"name": "account-live-binary"},
			"status": {
				"conditions": [{"type": "Ready", "status": "False"}],
				"runtimeStatus": "pending",
				"updateStatus": "pending"
			}
		}]
	}`))
	if err != nil {
		t.Fatal(err)
	}
	if readiness.ReadyResources != 0 || readiness.TotalResources != 1 {
		t.Fatalf("triggered live-binary readiness = %d/%d, want 0/1", readiness.ReadyResources, readiness.TotalResources)
	}
}
