50 lines
1.0 KiB
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)
|
|
}
|
|
})
|
|
}
|
|
}
|