// Copyright 2024 Matthew Rich . All rights reserved. package main import ( "github.com/stretchr/testify/assert" "os" "os/exec" "testing" "errors" "log/slog" "net/http" "net/http/httptest" "fmt" ) func TestCli(t *testing.T) { if _, e := os.Stat("./decl"); errors.Is(e, os.ErrNotExist) { t.Skip("cli not built") } yaml, cliErr := exec.Command("./decl", "import", "file://COPYRIGHT").Output() slog.Info("TestCli", "err", cliErr) assert.Nil(t, cliErr) assert.NotEqual(t, "", string(yaml)) assert.Greater(t, len(yaml), 0) } func TestCliHTTPSource(t *testing.T) { if _, e := os.Stat("./decl"); errors.Is(e, os.ErrNotExist) { t.Skip("cli not built") } ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, ` resources: - type: file attributes: path: foo.txt owner: nobody group: nobody mode: 0644 content: | test file content state: present `) })) defer ts.Close() yaml, cliErr := exec.Command("./decl", "-resource-file", ts.URL, "-apply=false").Output() slog.Info("TestCliHTTPSource", "err", cliErr) assert.Nil(t, cliErr) assert.NotEqual(t, "", string(yaml)) assert.Greater(t, len(yaml), 0) }