Files
AetherForge/android/forge/internal/forge/config_test.go

102 lines
2.4 KiB
Go

package forge
import (
"encoding/json"
"strings"
"testing"
)
func TestRenderConfigJSON(t *testing.T) {
cfg := BakeConfig{
WorkerName: "pixel-7",
ServerURL: "https://deck.example.com:8989",
FleetSecret: "test-secret",
BuildID: "apk-001",
}
raw, err := RenderConfigJSON(cfg)
if err != nil {
t.Fatal(err)
}
var doc map[string]any
if err := json.Unmarshal([]byte(raw), &doc); err != nil {
t.Fatalf("invalid json: %v\n%s", err, raw)
}
if doc["worker_name"] != "pixel-7" {
t.Fatalf("worker_name: %v", doc["worker_name"])
}
if doc["server_url"] != "https://deck.example.com:8989" {
t.Fatalf("server_url: %v", doc["server_url"])
}
mining, ok := doc["mining"].(map[string]any)
if !ok || mining["enabled"] != false {
t.Fatalf("mining should be disabled: %v", doc["mining"])
}
if doc["fleet_secret_set"] != true {
t.Fatalf("fleet_secret_set expected true")
}
}
func TestRenderBuiltinGoScoutMode(t *testing.T) {
cfg := BakeConfig{
WorkerName: "scout-tab",
ServerURL: "http://10.0.0.5:8989",
FleetSecret: "fleet-key",
BuildID: "b-scout",
ScoutMode: true,
}
src, err := RenderBuiltinGo(cfg)
if err != nil {
t.Fatal(err)
}
for _, needle := range []string{
`ScoutMode: true`,
`ApkMode: true`,
`MiningDisabled: true`,
} {
if !strings.Contains(src, needle) {
t.Fatalf("missing %q in builtin.go:\n%s", needle, src)
}
}
}
func TestRenderBuiltinGo(t *testing.T) {
cfg := BakeConfig{
WorkerName: "tab-s9",
ServerURL: "http://10.0.0.5:8989",
FleetSecret: "fleet-key",
Wallet: "placeholder-wallet",
BuildID: "b-android",
}
src, err := RenderBuiltinGo(cfg)
if err != nil {
t.Fatal(err)
}
for _, needle := range []string{
`WorkerName: "tab-s9"`,
`ServerURL: "http://10.0.0.5:8989"`,
`FleetSecret: "fleet-key"`,
`MiningMode: "idle"`,
`IdleThresholdPct: 0`,
`AutoStart: false`,
`GPUEnabled: false`,
} {
if !strings.Contains(src, needle) {
t.Fatalf("missing %q in builtin.go:\n%s", needle, src)
}
}
}
func TestAndroidAgentDefaults(t *testing.T) {
def := AndroidAgentDefaults()
raw, err := RenderConfigJSON(def)
if err != nil {
t.Fatal(err)
}
if !strings.Contains(raw, `"enabled": false`) {
t.Fatalf("expected mining disabled in json: %s", raw)
}
if !strings.Contains(raw, def.ServerURL) {
t.Fatalf("expected default server url in json: %s", raw)
}
}