github.com/justincormack/cli@v0.0.0-20201215022714-831ebeae9675/cli/command/context_test.go (about)

     1  package command
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	"gotest.tools/v3/assert"
     8  )
     9  
    10  func TestDockerContextMetadataKeepAdditionalFields(t *testing.T) {
    11  	c := DockerContext{
    12  		Description:       "test",
    13  		StackOrchestrator: OrchestratorSwarm,
    14  		AdditionalFields: map[string]interface{}{
    15  			"foo": "bar",
    16  		},
    17  	}
    18  	jsonBytes, err := json.Marshal(c)
    19  	assert.NilError(t, err)
    20  	assert.Equal(t, `{"Description":"test","StackOrchestrator":"swarm","foo":"bar"}`, string(jsonBytes))
    21  
    22  	var c2 DockerContext
    23  	assert.NilError(t, json.Unmarshal(jsonBytes, &c2))
    24  	assert.Equal(t, c2.AdditionalFields["foo"], "bar")
    25  	assert.Equal(t, c2.StackOrchestrator, OrchestratorSwarm)
    26  	assert.Equal(t, c2.Description, "test")
    27  }