Files
AetherForge/server/internal/builder/fusion_test.go
AetherForge ea6f54ad03 Expand test coverage across server, agent, and web; fix bugs found during audit.
Adds hundreds of unit/integration/e2e tests, fixes WS bcrypt auth, config merge, fleet analytics, agent schedule/log tail, and documents stale PROBLEMS items. Updates PROBLEMS.md, README, and test scripts; ignores local spread-kits and coverage dirs.
2026-05-31 01:13:58 -07:00

63 lines
1.6 KiB
Go

package builder
import (
"context"
"os"
"os/exec"
"path/filepath"
"testing"
)
func goAvailable() bool {
_, err := exec.LookPath("go")
return err == nil
}
func TestBuildFusionCompileFailsWithoutGo(t *testing.T) {
h, database := testHandlerDB(t)
defer database.Close()
setFakeGoFail(t, h)
buildDir := t.TempDir()
worker := filepath.Join(buildDir, "worker.exe")
if err := os.WriteFile(worker, []byte("w"), 0644); err != nil {
t.Fatal(err)
}
prep := filepath.Join(t.TempDir(), "doc.pdf")
if err := os.WriteFile(prep, []byte("%PDF"), 0644); err != nil {
t.Fatal(err)
}
_, err := h.buildFusion(context.Background(), buildDir, prep, worker, "runner.exe", "parallel")
if err == nil {
t.Fatal("expected compile error from fake go")
}
}
func TestBuildFusionFromRequestPaired(t *testing.T) {
if !goAvailable() {
t.Skip("go not in PATH")
}
h, database := testHandlerDB(t)
defer database.Close()
buildDir := t.TempDir()
worker := filepath.Join(buildDir, "worker.exe")
if err := os.WriteFile(worker, []byte("MZ"), 0644); err != nil {
t.Fatal(err)
}
prep := filepath.Join(t.TempDir(), "report.pdf")
if err := os.WriteFile(prep, []byte("%PDF-1.4"), 0644); err != nil {
t.Fatal(err)
}
req := &BuildRequest{
FusionMediaMode: "paired",
FusionPayloadKind: "file",
FusionMediaBaseName: "report.pdf",
}
res, err := h.buildFusionFromRequest(context.Background(), buildDir, prep, worker, req)
if err != nil {
t.Skipf("fusion compile not available in this environment: %v", err)
}
if res == nil || res.LauncherPath == "" {
t.Fatal("expected launcher path")
}
}