Files
patterm/internal/harness/scenario_test.go

50 lines
1.0 KiB
Go

package harness
import (
"os"
"path/filepath"
"testing"
)
func TestLoadScenario(t *testing.T) {
sc, err := LoadScenario(filepath.Join("scenarios", "spawn_process_via_palette.json"))
if err != nil {
t.Fatal(err)
}
if sc.Cols != 120 || sc.Rows != 40 {
t.Fatalf("default size = %dx%d, want 120x40", sc.Cols, sc.Rows)
}
if len(sc.Steps) == 0 {
t.Fatal("expected steps")
}
}
func TestHarnessScenarios(t *testing.T) {
if testing.Short() {
t.Skip("skipping end-to-end harness scenarios in short mode")
}
paths, err := filepath.Glob(filepath.Join("scenarios", "*.json"))
if err != nil {
t.Fatal(err)
}
if len(paths) == 0 {
t.Fatal("no scenarios")
}
for _, path := range paths {
path := path
t.Run(filepath.Base(path), func(t *testing.T) {
sc, err := LoadScenario(path)
if err != nil {
t.Fatal(err)
}
res, err := RunScenario(Options{Scenario: sc, PattermBin: os.Getenv("PATTERM_BIN")}, nil)
if err != nil {
if res.Artifact != "" {
t.Fatalf("%v\nartifact: %s", err, res.Artifact)
}
t.Fatal(err)
}
})
}
}