Skip to content
Snippets Groups Projects
Commit 8251db7e authored by Jono Wenger's avatar Jono Wenger
Browse files

Fix nickname saving bug

parent fe87f3ae
No related branches found
No related tags found
4 merge requests!510Release,!419rewrote the health tracker to both consider if there are waiting rounds and...,!397Fully Decentralized channels,!340Project/channels
...@@ -77,8 +77,8 @@ func (nm *nicknameManager) DeleteNickname(ch *id.ID) error { ...@@ -77,8 +77,8 @@ func (nm *nicknameManager) DeleteNickname(ch *id.ID) error {
// channelIDToNickname is a serialization structure. This is used by the save // channelIDToNickname is a serialization structure. This is used by the save
// and load functions to serialize the nicknameManager's byChannel map. // and load functions to serialize the nicknameManager's byChannel map.
type channelIDToNickname struct { type channelIDToNickname struct {
channelId id.ID ChannelId id.ID
nickname string Nickname string
} }
// save stores the nickname manager to disk. The caller of this must // save stores the nickname manager to disk. The caller of this must
...@@ -87,8 +87,8 @@ func (nm *nicknameManager) save() error { ...@@ -87,8 +87,8 @@ func (nm *nicknameManager) save() error {
list := make([]channelIDToNickname, 0) list := make([]channelIDToNickname, 0)
for chId, nickname := range nm.byChannel { for chId, nickname := range nm.byChannel {
list = append(list, channelIDToNickname{ list = append(list, channelIDToNickname{
channelId: chId, ChannelId: chId,
nickname: nickname, Nickname: nickname,
}) })
} }
...@@ -120,7 +120,7 @@ func (nm *nicknameManager) load() error { ...@@ -120,7 +120,7 @@ func (nm *nicknameManager) load() error {
for i := range list { for i := range list {
current := list[i] current := list[i]
nm.byChannel[current.channelId] = current.nickname nm.byChannel[current.ChannelId] = current.Nickname
} }
return nil return nil
......
...@@ -29,7 +29,37 @@ func TestNicknameManager_SetGetNickname(t *testing.T) { ...@@ -29,7 +29,37 @@ func TestNicknameManager_SetGetNickname(t *testing.T) {
"\nReceived: %s", nickname, received) "\nReceived: %s", nickname, received)
} }
} }
}
// Unit test. Tests that once you set a nickname with SetNickname, you can
// retrieve the nickname using GetNickname after a reload.
func TestNicknameManager_SetGetNickname_Reload(t *testing.T) {
kv := versioned.NewKV(ekv.MakeMemstore())
nm := loadOrNewNicknameManager(kv)
for i := 0; i < numTests; i++ {
chId := id.NewIdFromUInt(uint64(i), id.User, t)
nickname := "nickname#" + strconv.Itoa(i)
err := nm.SetNickname(nickname, chId)
if err != nil {
t.Fatalf("SetNickname error when setting %s: %+v", nickname, err)
}
}
nm2 := loadOrNewNicknameManager(kv)
for i := 0; i < numTests; i++ {
chId := id.NewIdFromUInt(uint64(i), id.User, t)
// nickname := "nickname#" + strconv.Itoa(i)
nick, exists := nm2.GetNickname(chId)
if !exists {
t.Fatalf("Nickname %d not found ", i)
}
expected := "nickname#" + strconv.Itoa(i)
if nick != expected {
t.Fatalf("Nickname %d not found, expected: %s, received: %s ", i, expected, nick)
}
}
} }
// Error case: Tests that nicknameManager.GetNickname returns a false boolean // Error case: Tests that nicknameManager.GetNickname returns a false boolean
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment