docs & feat: add license & attribution notice (Apache-2.0 / GPL-3.0) and core system enhancements

This commit is contained in:
CAtlas0784 committed 2026-11-01 20:14:36 +07:00
1 parent 507836d367
commit ce6aabfc55
47 files changed
+5674 -724

No files matched your search

@@ -0,0 +1,80 @@
package sdkserver
import (
"bytes"
"encoding/json"
"gac-hkrpg-go/internal/testutil"
"net/http"
"net/http/httptest"
"os"
"path/filepath"
"runtime"
"strings"
"testing"
)
func chdirRepoRootSDK(t *testing.T) {
t.Helper()
_, source, _, ok := runtime.Caller(0)
if !ok {
t.Fatal("cannot locate test helper source")
}
root := filepath.Clean(filepath.Join(filepath.Dir(source), "..", ".."))
if _, err := os.Stat(filepath.Join(root, "go.mod")); err != nil {
t.Fatalf("cannot locate repository root from %s: %v", source, err)
}
temporary := t.TempDir()
if err := testutil.CopyRuntime(root, temporary); err != nil {
t.Fatal(err)
}
t.Chdir(temporary)
}
func TestApiCommandUnlockAllWarp(t *testing.T) {
chdirRepoRootSDK(t)
before, err := os.ReadFile("freesr-data.json")
if err != nil {
t.Fatal(err)
}
runCmd := func(command string) (bool, string) {
body, _ := json.Marshal(map[string]string{"command": command})
req := httptest.NewRequest(http.MethodPost, "/api/command", strings.NewReader(string(body)))
rec := httptest.NewRecorder()
apiCommand(rec, req)
var res struct {
Success bool `json:"success"`
Output string `json:"output"`
}
_ = json.Unmarshal(rec.Body.Bytes(), &res)
return res.Success, res.Output
}
// 1. /unlockall warp all
ok, out := runCmd("/unlockall warp all")
if !ok || !strings.Contains(out, "Set all warps") {
t.Fatalf("unexpected output for /unlockall warp all: ok=%v, out=%s", ok, out)
}
// 2. /unlockall warp off
ok, out = runCmd("/unlockall warp off")
if !ok || !strings.Contains(out, "default active warps") {
t.Fatalf("unexpected output for /unlockall warp off: ok=%v, out=%s", ok, out)
}
// 3. /unlockall warp avatar
ok, out = runCmd("/unlockall warp avatar")
if !ok || !strings.Contains(out, "character warps") {
t.Fatalf("unexpected output for /unlockall warp avatar: ok=%v, out=%s", ok, out)
}
// 4. /reload banner
ok, out = runCmd("/reload banner")
if !ok || !strings.Contains(out, "Banner configurations reloaded") {
t.Fatalf("unexpected output for /reload banner: ok=%v, out=%s", ok, out)
}
after, err := os.ReadFile("freesr-data.json")
if err != nil || !bytes.Equal(before, after) {
t.Fatalf("banner commands rewrote avatar inventory: %v", err)
}
}