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  }