github.com/grahambrereton-form3/tilt@v0.10.18/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/windmilleng/tilt/internal/k8s/testyaml" 11 "github.com/windmilleng/tilt/internal/testutils/manifestbuilder" 12 "github.com/windmilleng/tilt/internal/testutils/tempdir" 13 "github.com/windmilleng/tilt/pkg/model" 14 ) 15 16 func TestToJSON(t *testing.T) { 17 f := tempdir.NewTempDirFixture(t) 18 defer f.TearDown() 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(m.K8sTarget().ID(), nil, nil) 27 28 buf := bytes.NewBuffer(nil) 29 encoder := CreateEngineStateEncoder(buf) 30 err := encoder.Encode(state) 31 if err != nil { 32 t.Fatal(err) 33 } 34 35 assert.Contains(t, buf.String(), "YAML") 36 assert.Contains(t, buf.String(), "kind: Deployment") 37 38 // Make sure the data can decode successfully. 39 decoder := json.NewDecoder(bytes.NewBufferString(buf.String())) 40 var v interface{} 41 err = decoder.Decode(&v) 42 if err != nil { 43 t.Fatalf("Error decoding JSON: %v\nSource:\n%s\n", err, buf.String()) 44 } 45 }