55 lines
1.2 KiB
Go
55 lines
1.2 KiB
Go
package integration
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"aego/app/edit"
|
|
"aego/core/log"
|
|
"aego/editor/shell/launcher"
|
|
"aego/project"
|
|
)
|
|
|
|
func TestLauncherCreatesAndOpens(t *testing.T) {
|
|
recent := filepath.Join(t.TempDir(), "aego", "recent")
|
|
cfg := edit.Config{Headless: true, NoWatch: true, Logger: log.Nop(), Recent: recent}
|
|
ls, err := edit.OpenLauncher(cfg)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
ls.Step()
|
|
root, err := ls.UI.Create(filepath.Join(t.TempDir(), "game"), "2d", "", "")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for ls.Step() {
|
|
}
|
|
ls.Close()
|
|
if got, ok := ls.UI.Result(); !ok || got != root {
|
|
t.Fatalf("result = %q %v", got, ok)
|
|
}
|
|
p, err := project.Load(root)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
s, err := edit.Open(p, cfg)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
s.Step()
|
|
if s.App.Context().Doc() == nil {
|
|
t.Fatal("main scene did not open")
|
|
}
|
|
s.Close()
|
|
list, err := launcher.LoadRecent(recent)
|
|
if err != nil || len(list) != 1 || list[0].Path != root || list[0].Missing {
|
|
t.Fatalf("recent = %+v, %v", list, err)
|
|
}
|
|
os.RemoveAll(root)
|
|
list, _ = launcher.LoadRecent(recent)
|
|
if !list[0].Missing {
|
|
t.Fatal("removed project must be shown as missing")
|
|
}
|
|
}
|