github.com/panekj/cli@v0.0.0-20230304125325-467dd2f3797e/cli/compose/loader/types_test.go (about)

     1  package loader
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	yaml "gopkg.in/yaml.v2"
     8  	"gotest.tools/v3/assert"
     9  	is "gotest.tools/v3/assert/cmp"
    10  )
    11  
    12  func TestMarshallConfig(t *testing.T) {
    13  	workingDir := "/foo"
    14  	homeDir := "/bar"
    15  	cfg := fullExampleConfig(workingDir, homeDir)
    16  	expected := fullExampleYAML(workingDir)
    17  
    18  	actual, err := yaml.Marshal(cfg)
    19  	assert.NilError(t, err)
    20  	assert.Check(t, is.Equal(expected, string(actual)))
    21  
    22  	// Make sure the expected can be parsed.
    23  	dict, err := ParseYAML([]byte(expected))
    24  	assert.NilError(t, err)
    25  	_, err = Load(buildConfigDetails(dict, map[string]string{}))
    26  	assert.NilError(t, err)
    27  }
    28  
    29  func TestJSONMarshallConfig(t *testing.T) {
    30  	workingDir := "/foo"
    31  	homeDir := "/bar"
    32  	cfg := fullExampleConfig(workingDir, homeDir)
    33  	expected := fullExampleJSON(workingDir)
    34  
    35  	actual, err := json.MarshalIndent(cfg, "", "  ")
    36  	assert.NilError(t, err)
    37  	assert.Check(t, is.Equal(expected, string(actual)))
    38  
    39  	dict, err := ParseYAML([]byte(expected))
    40  	assert.NilError(t, err)
    41  	_, err = Load(buildConfigDetails(dict, map[string]string{}))
    42  	assert.NilError(t, err)
    43  }