Skip to content

Commit

Permalink
fix: group settings tests
Browse files Browse the repository at this point in the history
  • Loading branch information
glouvigny committed Jan 13, 2020
1 parent 12e1679 commit 6d4bda2
Show file tree
Hide file tree
Showing 3 changed files with 214 additions and 219 deletions.
48 changes: 48 additions & 0 deletions go/internal/orbitutil/orbittestutil/orbittestutil.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,16 @@ import (
"crypto/rand"
"fmt"
"path"
"sync"
"testing"

"berty.tech/berty/go/internal/group"
"berty.tech/berty/go/internal/ipfsutil"
"berty.tech/berty/go/internal/orbitutil"
"berty.tech/berty/go/internal/orbitutil/storemember"

orbitdb "berty.tech/go-orbit-db"
"berty.tech/go-orbit-db/events"
"github.com/libp2p/go-libp2p-core/crypto"
peer "github.com/libp2p/go-libp2p-core/peer"
mocknet "github.com/libp2p/go-libp2p/p2p/net/mock"
Expand Down Expand Up @@ -245,3 +249,47 @@ func CreatePeersWithGroup(ctx context.Context, t *testing.T, pathBase string, me

return mockedPeers, invitation
}

func InviteAllPeersToGroup(ctx context.Context, t *testing.T, peers []*MockedPeer, invitation *group.Invitation) {
t.Helper()

wg := sync.WaitGroup{}
wg.Add(len(peers))

for i, p := range peers {
go func(p *MockedPeer, peerIndex int) {
ctxRepl, cancel := context.WithCancel(ctx)
eventReceived := 0

p.GetGroupContext().GetMemberStore().Subscribe(ctxRepl, func(e events.Event) {
switch e.(type) {
case *storemember.EventNewMemberDevice:
eventReceived++
if eventReceived == len(peers) {
cancel()
}
}
})

wg.Done()

if eventReceived != len(peers) {
t.Logf("%d event(s) missing from peer %d list (%d/%d)", len(peers)-eventReceived, peerIndex, eventReceived, len(peers))
}
}(p, i)
}

for i, p := range peers {
if i > 0 {
invitation = CreateInvitation(t, peers[0].GetGroupContext().GetMemberPrivKey())
}

_, err := p.GetGroupContext().GetMemberStore().RedeemInvitation(ctx, invitation)
if err != nil {
t.Fatal(err)
}
}

// Wait for all events to be received in all peers's member log (or timeout)
wg.Wait()
}
4 changes: 2 additions & 2 deletions go/internal/orbitutil/storesetting/setting_store.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func isAllowedToWriteSetting(memberStore orbitutilapi.MemberStore, payload *grou
return errcode.TODO.Wrap(err)
}

if author.Equals(creator.Member) {
if !author.Equals(creator.Member) {
return errcode.TODO.Wrap(fmt.Errorf("only group creator is allowed to edit group settings"))
}

Expand All @@ -57,7 +57,7 @@ type settingStore struct {
}

func (s *settingStore) set(ctx context.Context, payload *group.SettingEntryPayload) (operation.Operation, error) {
rawMember, err := s.GetGroupContext().GetMemberPrivKey().Raw()
rawMember, err := s.GetGroupContext().GetMemberPrivKey().GetPublic().Raw()
if err != nil {
return nil, errcode.TODO.Wrap(err)
}
Expand Down

0 comments on commit 6d4bda2

Please sign in to comment.