更新若干功能
This commit is contained in:
66
launch_detect_test.go
Normal file
66
launch_detect_test.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestDetectLaunchProfileNode(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
raw := `{"name":"@acme/demo-app","scripts":{"dev":"vite","build":"vite build","start":"node server.js"}}`
|
||||
if e := os.WriteFile(filepath.Join(dir, "package.json"), []byte(raw), 0644); e != nil {
|
||||
t.Fatal(e)
|
||||
}
|
||||
_ = os.WriteFile(filepath.Join(dir, "vite.config.ts"), []byte("export default {}"), 0644)
|
||||
p := detectLaunchProfile(dir)
|
||||
if p.Kind != "node" || p.Name != "demo-app" {
|
||||
t.Fatalf("got kind=%q name=%q", p.Kind, p.Name)
|
||||
}
|
||||
if p.Port != 5173 {
|
||||
t.Fatalf("vite port want 5173 got %d", p.Port)
|
||||
}
|
||||
if p.StartCmd != "npm run dev" {
|
||||
t.Fatalf("startCmd=%q", p.StartCmd)
|
||||
}
|
||||
if len(p.Start) < 2 {
|
||||
t.Fatalf("expected multiple suggestions: %v", p.Start)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDetectLaunchProfileGo(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
if e := os.WriteFile(filepath.Join(dir, "go.mod"), []byte("module github.com/x/myapi\n\ngo 1.22\n"), 0644); e != nil {
|
||||
t.Fatal(e)
|
||||
}
|
||||
_ = os.WriteFile(filepath.Join(dir, "main.go"), []byte("package main\nfunc main(){}\n"), 0644)
|
||||
p := detectLaunchProfile(dir)
|
||||
if p.Kind != "go" || p.Name != "myapi" || p.StartCmd == "" {
|
||||
t.Fatalf("%+v", p)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFindLaunchExes(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
_ = os.WriteFile(filepath.Join(dir, "app.exe"), []byte("MZ"), 0644)
|
||||
_ = os.MkdirAll(filepath.Join(dir, "bin"), 0755)
|
||||
_ = os.WriteFile(filepath.Join(dir, "bin", "tool.exe"), []byte("MZ"), 0644)
|
||||
_ = os.WriteFile(filepath.Join(dir, "uninstall.exe"), []byte("MZ"), 0644)
|
||||
got := findLaunchExes(dir)
|
||||
if len(got) < 2 {
|
||||
t.Fatalf("want >=2 exes, got %v", got)
|
||||
}
|
||||
p := detectLaunchProfile(dir)
|
||||
if p.Kind != "exe" || p.StartCmd == "" {
|
||||
t.Fatalf("exe profile: %+v", p)
|
||||
}
|
||||
}
|
||||
|
||||
func containsStr(ss []string, want string) bool {
|
||||
for _, s := range ss {
|
||||
if s == want {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user