github.com/khulnasoft/cli@v0.0.0-20240402070845-01bcad7beefa/cli/compose/loader/types_test.go (about)

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