feat(release): beelloo v0.1
This commit is contained in:
56
internal/cli/run_test.go
Normal file
56
internal/cli/run_test.go
Normal file
@ -0,0 +1,56 @@
|
||||
package cli
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
|
||||
"beelloo/internal/invoice"
|
||||
)
|
||||
|
||||
func TestRunNewCreatesScaffold(t *testing.T) {
|
||||
var out bytes.Buffer
|
||||
var errOut bytes.Buffer
|
||||
tmp := t.TempDir()
|
||||
path := filepath.Join(tmp, "invoice.md")
|
||||
|
||||
code := Run([]string{"new", path}, &out, &errOut)
|
||||
if code != 0 {
|
||||
t.Fatalf("expected exit code 0, got %d: %s", code, errOut.String())
|
||||
}
|
||||
data, err := os.ReadFile(path)
|
||||
if err != nil {
|
||||
t.Fatalf("read scaffold: %v", err)
|
||||
}
|
||||
if string(data) != invoice.ScaffoldMarkdown {
|
||||
t.Fatalf("scaffold content mismatch")
|
||||
}
|
||||
}
|
||||
|
||||
func TestRunBuildErrors(t *testing.T) {
|
||||
var out bytes.Buffer
|
||||
var errOut bytes.Buffer
|
||||
code := Run([]string{"build"}, &out, &errOut)
|
||||
if code != 2 {
|
||||
t.Fatalf("expected exit code 2, got %d", code)
|
||||
}
|
||||
code = Run([]string{"build", "missing.md"}, &out, &errOut)
|
||||
if code != 1 {
|
||||
t.Fatalf("expected exit code 1 for missing file, got %d", code)
|
||||
}
|
||||
}
|
||||
|
||||
func TestRunBuildValidationError(t *testing.T) {
|
||||
var out bytes.Buffer
|
||||
var errOut bytes.Buffer
|
||||
tmp := t.TempDir()
|
||||
path := filepath.Join(tmp, "bad.md")
|
||||
if err := os.WriteFile(path, []byte("# Facture\n\n## Vendeur\nNom: \n"), 0644); err != nil {
|
||||
t.Fatalf("write bad markdown: %v", err)
|
||||
}
|
||||
code := Run([]string{"build", path}, &out, &errOut)
|
||||
if code != 1 {
|
||||
t.Fatalf("expected exit code 1, got %d", code)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user