65 lines
2.1 KiB
Go
65 lines
2.1 KiB
Go
package roomturnoverreward
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
)
|
|
|
|
func TestGetPublicPageReturnsEnabledLevelsAndPeriod(t *testing.T) {
|
|
service, _ := newTestService(t)
|
|
ctx := context.Background()
|
|
|
|
if _, err := service.SaveConfig(ctx, SaveRoomTurnoverRewardConfigRequest{
|
|
SysOrigin: "LIKEI",
|
|
Enabled: true,
|
|
Timezone: "Asia/Riyadh",
|
|
LevelConfigs: []RoomTurnoverRewardLevelInput{
|
|
{Level: 2, TurnoverThreshold: 7000000, RewardGold: 350000, Enabled: true},
|
|
{Level: 1, TurnoverThreshold: 1000000, RewardGold: 50000, Enabled: false},
|
|
},
|
|
}); err != nil {
|
|
t.Fatalf("SaveConfig() error = %v", err)
|
|
}
|
|
|
|
resp, err := service.GetPublicPage(ctx, "likei")
|
|
if err != nil {
|
|
t.Fatalf("GetPublicPage() error = %v", err)
|
|
}
|
|
if resp.ActivityStatus != roomTurnoverRewardActivityStatusOngoing {
|
|
t.Fatalf("activityStatus = %q, want %q", resp.ActivityStatus, roomTurnoverRewardActivityStatusOngoing)
|
|
}
|
|
if resp.CycleKey == "" || resp.PeriodStartAt == "" || resp.PeriodEndAt == "" || resp.CurrentPeriodText == "" {
|
|
t.Fatalf("period fields are incomplete: %+v", resp)
|
|
}
|
|
if resp.CountdownMillis <= 0 {
|
|
t.Fatalf("countdownMillis = %d, want > 0", resp.CountdownMillis)
|
|
}
|
|
if len(resp.LevelConfigs) != 1 {
|
|
t.Fatalf("level count = %d, want 1", len(resp.LevelConfigs))
|
|
}
|
|
if got := resp.LevelConfigs[0]; got.TurnoverThreshold != 7000000 || got.RewardGold != 350000 {
|
|
t.Fatalf("level = %+v, want 7M/350k", got)
|
|
}
|
|
if resp.HighlightRewardGold != 350000 {
|
|
t.Fatalf("highlightRewardGold = %d, want 350000", resp.HighlightRewardGold)
|
|
}
|
|
}
|
|
|
|
func TestGetPublicPageFallsBackToDefaultLevelsWhenMissing(t *testing.T) {
|
|
service, _ := newTestService(t)
|
|
|
|
resp, err := service.GetPublicPage(context.Background(), "")
|
|
if err != nil {
|
|
t.Fatalf("GetPublicPage() error = %v", err)
|
|
}
|
|
if resp.ActivityStatus != roomTurnoverRewardActivityStatusDisabled {
|
|
t.Fatalf("activityStatus = %q, want disabled", resp.ActivityStatus)
|
|
}
|
|
if len(resp.LevelConfigs) != 4 {
|
|
t.Fatalf("level count = %d, want 4", len(resp.LevelConfigs))
|
|
}
|
|
if resp.HighlightRewardGold != 250000 {
|
|
t.Fatalf("highlightRewardGold = %d, want 250000", resp.HighlightRewardGold)
|
|
}
|
|
}
|