Files
Erupe/server/channelserver/handlers_guild_ops_coverage_test.go
Houmgaor a68d76c55f test: add coverage tests to reach 65% total coverage
Add 16 test files across 4 packages covering previously untested
handler paths: guild board operations, house/warehouse management,
tower/tenrouirai progress, diva schedule, festa info, cafe duration,
API error paths, sign server responses, and byteframe boundaries.
2026-02-26 23:17:12 +01:00

110 lines
2.8 KiB
Go

package channelserver
import (
"erupe-ce/common/byteframe"
"erupe-ce/common/stringsupport"
"erupe-ce/network/mhfpacket"
"testing"
)
func TestHandleRenamePugi_Pugi1(t *testing.T) {
srv := createMockServer()
guild := &Guild{ID: 1}
srv.guildRepo = &mockGuildRepo{guild: guild}
s := createMockSession(100, srv)
bf := byteframe.NewByteFrame()
nameBytes := stringsupport.UTF8ToSJIS("TestPugi")
bf.WriteBytes(nameBytes)
bf.WriteUint8(0) // null terminator
bf.Seek(0, 0)
handleRenamePugi(s, bf, guild, 1)
if guild.PugiName1 != "TestPugi" {
t.Errorf("PugiName1 = %q, want TestPugi", guild.PugiName1)
}
}
func TestHandleRenamePugi_Pugi2(t *testing.T) {
srv := createMockServer()
guild := &Guild{ID: 1}
srv.guildRepo = &mockGuildRepo{guild: guild}
s := createMockSession(100, srv)
bf := byteframe.NewByteFrame()
nameBytes := stringsupport.UTF8ToSJIS("Pugi2")
bf.WriteBytes(nameBytes)
bf.WriteUint8(0)
bf.Seek(0, 0)
handleRenamePugi(s, bf, guild, 2)
if guild.PugiName2 != "Pugi2" {
t.Errorf("PugiName2 = %q, want Pugi2", guild.PugiName2)
}
}
func TestHandleRenamePugi_Pugi3Default(t *testing.T) {
srv := createMockServer()
guild := &Guild{ID: 1}
srv.guildRepo = &mockGuildRepo{guild: guild}
s := createMockSession(100, srv)
bf := byteframe.NewByteFrame()
nameBytes := stringsupport.UTF8ToSJIS("Pugi3")
bf.WriteBytes(nameBytes)
bf.WriteUint8(0)
bf.Seek(0, 0)
handleRenamePugi(s, bf, guild, 3)
if guild.PugiName3 != "Pugi3" {
t.Errorf("PugiName3 = %q, want Pugi3", guild.PugiName3)
}
}
func TestHandleChangePugi_AllNums(t *testing.T) {
srv := createMockServer()
guild := &Guild{ID: 1}
srv.guildRepo = &mockGuildRepo{guild: guild}
s := createMockSession(100, srv)
handleChangePugi(s, 5, guild, 1)
if guild.PugiOutfit1 != 5 {
t.Errorf("PugiOutfit1 = %d, want 5", guild.PugiOutfit1)
}
handleChangePugi(s, 10, guild, 2)
if guild.PugiOutfit2 != 10 {
t.Errorf("PugiOutfit2 = %d, want 10", guild.PugiOutfit2)
}
handleChangePugi(s, 15, guild, 3)
if guild.PugiOutfit3 != 15 {
t.Errorf("PugiOutfit3 = %d, want 15", guild.PugiOutfit3)
}
}
func TestHandleAvoidLeadershipUpdate_Success(t *testing.T) {
srv := createMockServer()
membership := &GuildMember{CharID: 100, AvoidLeadership: false}
srv.guildRepo = &mockGuildRepo{membership: membership}
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfOperateGuild{AckHandle: 1}
handleAvoidLeadershipUpdate(s, pkt, true)
<-s.sendPackets
if !membership.AvoidLeadership {
t.Error("AvoidLeadership should be true")
}
}
func TestHandleAvoidLeadershipUpdate_GetMembershipError(t *testing.T) {
srv := createMockServer()
srv.guildRepo = &mockGuildRepo{getMemberErr: errNotFound}
s := createMockSession(100, srv)
pkt := &mhfpacket.MsgMhfOperateGuild{AckHandle: 1}
handleAvoidLeadershipUpdate(s, pkt, true)
<-s.sendPackets
}