github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/store/json_test.go (about) 1 package store 2 3 import ( 4 "bytes" 5 "encoding/json" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 10 "github.com/tilt-dev/tilt/internal/k8s/testyaml" 11 "github.com/tilt-dev/tilt/internal/store/k8sconv" 12 "github.com/tilt-dev/tilt/internal/testutils/manifestbuilder" 13 "github.com/tilt-dev/tilt/internal/testutils/tempdir" 14 "github.com/tilt-dev/tilt/pkg/model" 15 ) 16 17 func TestToJSON(t *testing.T) { 18 f := tempdir.NewTempDirFixture(t) 19 20 m := manifestbuilder.New(f, "fe"). 21 WithK8sYAML(testyaml.SanchoYAML). 22 Build() 23 state := newState([]model.Manifest{m}) 24 25 mState, _ := state.ManifestState("fe") 26 mState.MutableBuildStatus(m.K8sTarget().ID()).LastResult = NewK8sDeployResult( 27 m.K8sTarget().ID(), &k8sconv.KubernetesApplyFilter{}) 28 29 buf := bytes.NewBuffer(nil) 30 encoder := CreateEngineStateEncoder(buf) 31 err := encoder.Encode(state) 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 assert.Contains(t, buf.String(), "yaml") 37 assert.Contains(t, buf.String(), "kind: Deployment") 38 39 // Make sure the data can decode successfully. 40 decoder := json.NewDecoder(bytes.NewBufferString(buf.String())) 41 var v interface{} 42 err = decoder.Decode(&v) 43 if err != nil { 44 t.Fatalf("Error decoding JSON: %v\nSource:\n%s\n", err, buf.String()) 45 } 46 }