package limayaml
import (
"bytes"
"encoding/json"
"os"
"path/filepath"
"runtime"
"testing"
"gotest.tools/v3/assert"
"github.com/lima-vm/lima/v2/pkg/limatype"
)
func dumpJSON(t *testing.T, d any) string {
b, err := json.Marshal(d)
assert.NilError(t, err)
return string(b)
}
const emptyYAML = "{}\n"
func TestEmptyYAML(t *testing.T) {
var y limatype.LimaYAML
t.Log(dumpJSON(t, y))
b, err := Marshal(&y, false)
assert.NilError(t, err)
assert.Equal(t, string(b), emptyYAML)
}
const defaultYAML = "{}\n"
func TestDefaultYAML(t *testing.T) {
content, err := os.ReadFile("default.yaml")
assert.NilError(t, err)
if runtime.GOOS == "windows" && bytes.HasPrefix(content, []byte{'.', '.'}) {
f, err := filepath.Rel(".", string(content))
assert.NilError(t, err)
content, err = os.ReadFile(f)
assert.NilError(t, err)
}
var y limatype.LimaYAML
err = Unmarshal(content, &y, "")
assert.NilError(t, err)
y.Images = nil
y.Mounts = nil
y.Base = nil
y.VMOpts = nil
y.MinimumLimaVersion = nil
y.MountTypesUnsupported = nil
t.Log(dumpJSON(t, y))
b, err := Marshal(&y, false)
assert.NilError(t, err)
assert.Equal(t, string(b), defaultYAML)
}