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.
63 lines
1.6 KiB
Go
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")
|
|
}
|
|
}
|