mirror of
https://github.com/tiennm99/miti99bot.git
synced 2026-09-13 10:18:39 +00:00
Baking SOURCE_COMMIT as a Docker build arg never worked: Coolify exposes it as a runtime env var, not a build arg, so gitSHA was always empty and the owner DM was skipped. Read SOURCE_COMMIT from the container env at startup (falling back to the ldflags-baked gitSHA for local builds), forward it via the compose environment, and drop the dead build-arg baking.
53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/tiennm99/miti99bot/internal/modules"
|
|
"github.com/tiennm99/miti99bot/internal/storage"
|
|
)
|
|
|
|
func TestResolveCommitSHA(t *testing.T) {
|
|
prev := gitSHA
|
|
defer func() { gitSHA = prev }()
|
|
|
|
// Coolify runtime env wins over the baked fallback.
|
|
gitSHA = "baked"
|
|
if got := resolveCommitSHA(" runtime-sha "); got != "runtime-sha" {
|
|
t.Errorf("env present: got %q, want trimmed runtime-sha", got)
|
|
}
|
|
|
|
// Empty env falls back to the ldflags-baked value.
|
|
if got := resolveCommitSHA(""); got != "baked" {
|
|
t.Errorf("env empty: got %q, want baked fallback", got)
|
|
}
|
|
|
|
// Neither source set → empty (deploynotify stays silent).
|
|
gitSHA = ""
|
|
if got := resolveCommitSHA(" "); got != "" {
|
|
t.Errorf("both empty: got %q, want empty", got)
|
|
}
|
|
}
|
|
|
|
func TestFactoriesIncludesGoldAndCoin(t *testing.T) {
|
|
catalog := factories()
|
|
if catalog["gold"] == nil {
|
|
t.Fatal("factories missing gold")
|
|
}
|
|
if catalog["coin"] == nil {
|
|
t.Fatal("factories missing coin")
|
|
}
|
|
reg, err := modules.Build([]string{"gold", "coin"}, catalog, storage.NewMemoryProvider(), modules.BuildOptions{})
|
|
if err != nil {
|
|
t.Fatalf("Build gold: %v", err)
|
|
}
|
|
for _, name := range []string{
|
|
"gold_price", "gold_topup", "gold_buy", "gold_sell", "gold_stats",
|
|
"coin_price", "coin_topup", "coin_buy", "coin_sell", "coin_stats",
|
|
} {
|
|
if _, ok := reg.AllCommands[name]; !ok {
|
|
t.Fatalf("missing command %s", name)
|
|
}
|
|
}
|
|
}
|