102 lines
2.4 KiB
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)
|
|
}
|
|
}
|