mirror of
https://github.com/tiennm99/tiennm99bot.git
synced 2026-10-17 12:16:23 +00:00
revert: restore code fallbacks for config defaults
This reverts commit 153fc21. With no fallback in code, the deploy
crash-looped: Coolify keeps an entry for every variable compose.yml has
referenced, and empty entries appear to reach the containers as empty
values instead of the compose defaults.
This commit is contained in:
1 parent
153fc211cf
commit
e418bf3390
17 files changed
+100
-214
No files matched your search
@@ -94,18 +94,17 @@ func TestAddSticker_NonOwnerWritesToConfiguredPack(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
// There is no fallback pack: an unset STICKER_PACK_NAME must not write
|
||||
// anywhere.
|
||||
func TestAddSticker_RequiresPackName(t *testing.T) {
|
||||
func TestAddSticker_DefaultsToMiti99Pack(t *testing.T) {
|
||||
rb := installAddSticker(t, "", "miti99bot")
|
||||
|
||||
rb.Bot.ProcessUpdate(context.Background(), stickerReply(999, "", "src", ""))
|
||||
|
||||
if _, ok := callTo(rb, "addStickerToSet"); ok {
|
||||
t.Fatal("addStickerToSet called without a configured pack name")
|
||||
call, ok := callTo(rb, "addStickerToSet")
|
||||
if !ok {
|
||||
t.Fatalf("no addStickerToSet call; got %+v", rb.Sent())
|
||||
}
|
||||
if _, ok := callTo(rb, "createNewStickerSet"); ok {
|
||||
t.Fatal("createNewStickerSet called without a configured pack name")
|
||||
if got := call.Form["name"]; got != "miti99_by_miti99bot" {
|
||||
t.Errorf("name = %q, want the default pack", got)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,15 +17,18 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
// stickerPackNameEnv names the set /addsticker writes to; compose.yml
|
||||
// supplies its default. The name must end in "_by_<bot_username>", the only thing that makes a set
|
||||
// stickerPackNameEnv overrides which set /addsticker writes to. The name
|
||||
// must end in "_by_<bot_username>", the only thing that makes a set
|
||||
// bot-manageable; packTitle checks it before any upload. A set that does
|
||||
// not exist yet is created by the first successful /addsticker.
|
||||
stickerPackNameEnv = "STICKER_PACK_NAME"
|
||||
|
||||
// defaultStickerPackName is the shared pack used when the env is unset.
|
||||
defaultStickerPackName = "miti99_by_miti99bot"
|
||||
|
||||
// stickerPackOwnerEnv reuses the bot-wide owner setting rather than
|
||||
// introducing a second variable: AddStickerToSet needs the *set owner's*
|
||||
// user ID, and the standard pack belongs to the bot owner. A pack
|
||||
// user ID, and the default pack above belongs to the bot owner. A pack
|
||||
// owned by any other account needs this env pointed at that account.
|
||||
stickerPackOwnerEnv = "OWNER_ID"
|
||||
|
||||
@@ -75,10 +78,6 @@ type stickerPack struct {
|
||||
OwnerID int64 // the account the set belongs to; AddStickerToSet demands it
|
||||
}
|
||||
|
||||
// errNoPackName means STICKER_PACK_NAME is unset, so no sticker can be added.
|
||||
// Internal, not user-facing: nothing the caller does fixes a misconfiguration.
|
||||
var errNoPackName = errors.New("util: sticker pack name unset")
|
||||
|
||||
// errNoPackOwner means the owner ID is unset, so no sticker can be added.
|
||||
// Internal, not user-facing: nothing the caller does fixes a misconfiguration.
|
||||
var errNoPackOwner = errors.New("util: sticker pack owner ID unset")
|
||||
@@ -91,7 +90,7 @@ var errNoPackOwner = errors.New("util: sticker pack owner ID unset")
|
||||
func loadStickerPack() (stickerPack, error) {
|
||||
name := strings.TrimSpace(os.Getenv(stickerPackNameEnv))
|
||||
if name == "" {
|
||||
return stickerPack{}, errNoPackName
|
||||
name = defaultStickerPackName
|
||||
}
|
||||
ownerID, err := strconv.ParseInt(strings.TrimSpace(os.Getenv(stickerPackOwnerEnv)), 10, 64)
|
||||
if err != nil || ownerID == 0 {
|
||||
|
||||
@@ -106,36 +106,26 @@ func TestPackTitle_AtNameLengthCap(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestLoadStickerPack(t *testing.T) {
|
||||
t.Run("reads the name and owner", func(t *testing.T) {
|
||||
t.Run("defaults the name and requires an owner", func(t *testing.T) {
|
||||
t.Setenv("OWNER_ID", "42")
|
||||
t.Setenv("STICKER_PACK_NAME", "miti99_by_miti99bot")
|
||||
t.Setenv("STICKER_PACK_NAME", "")
|
||||
pack, err := loadStickerPack()
|
||||
if err != nil {
|
||||
t.Fatalf("loadStickerPack: %v", err)
|
||||
}
|
||||
if pack.Name != "miti99_by_miti99bot" {
|
||||
t.Errorf("name = %q, want miti99_by_miti99bot", pack.Name)
|
||||
if pack.Name != defaultStickerPackName {
|
||||
t.Errorf("name = %q, want %q", pack.Name, defaultStickerPackName)
|
||||
}
|
||||
if pack.OwnerID != 42 {
|
||||
t.Errorf("ownerID = %d, want 42", pack.OwnerID)
|
||||
}
|
||||
})
|
||||
|
||||
// No fallback name: an unset STICKER_PACK_NAME is a misconfiguration.
|
||||
t.Run("requires a name", func(t *testing.T) {
|
||||
t.Setenv("OWNER_ID", "42")
|
||||
t.Setenv("STICKER_PACK_NAME", "")
|
||||
if _, err := loadStickerPack(); !errors.Is(err, errNoPackName) {
|
||||
t.Errorf("loadStickerPack() err = %v, want errNoPackName", err)
|
||||
}
|
||||
})
|
||||
|
||||
// A zero owner is the unset case, not a valid user: AddStickerToSet needs a
|
||||
// real account, so it must fail here rather than at the API.
|
||||
for _, owner := range []string{"", "0", "not-a-number"} {
|
||||
t.Run("rejects owner "+owner, func(t *testing.T) {
|
||||
t.Setenv("OWNER_ID", owner)
|
||||
t.Setenv("STICKER_PACK_NAME", "miti99_by_miti99bot")
|
||||
if _, err := loadStickerPack(); !errors.Is(err, errNoPackOwner) {
|
||||
t.Errorf("loadStickerPack() err = %v, want errNoPackOwner", err)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user