chore: fix flaky tests in 'TestMessengerProfileShowcase' (#5104)
* chore_: fix flaky tests in 'TestMessengerProfileShowcase' Close #5100 * chore_: fix flaky `TestShareShowcasePreferences` Close #4751
This commit is contained in:
parent
11dc6976bd
commit
b5f8f792d5
|
@ -70,7 +70,7 @@ type TestMessengerProfileShowcase struct {
|
||||||
// a single waku service should be shared.
|
// a single waku service should be shared.
|
||||||
shh types.Waku
|
shh types.Waku
|
||||||
logger *zap.Logger
|
logger *zap.Logger
|
||||||
collectiblesMock *CollectiblesManagerMock
|
collectiblesMock CollectiblesManagerMock
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TestMessengerProfileShowcase) SetupTest() {
|
func (s *TestMessengerProfileShowcase) SetupTest() {
|
||||||
|
@ -100,10 +100,10 @@ func (s *TestMessengerProfileShowcase) newMessengerForProfileShowcase() *Messeng
|
||||||
privateKey, err := crypto.GenerateKey()
|
privateKey, err := crypto.GenerateKey()
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
s.collectiblesMock = &CollectiblesManagerMock{}
|
s.collectiblesMock = CollectiblesManagerMock{}
|
||||||
|
|
||||||
options := []Option{
|
options := []Option{
|
||||||
WithCollectiblesManager(s.collectiblesMock),
|
WithCollectiblesManager(&s.collectiblesMock),
|
||||||
}
|
}
|
||||||
|
|
||||||
m, err := newMessengerWithKey(s.shh, privateKey, s.logger, options)
|
m, err := newMessengerWithKey(s.shh, privateKey, s.logger, options)
|
||||||
|
@ -426,8 +426,6 @@ func (s *TestMessengerProfileShowcase) TestEncryptAndDecryptProfileShowcaseEntri
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *TestMessengerProfileShowcase) TestShareShowcasePreferences() {
|
func (s *TestMessengerProfileShowcase) TestShareShowcasePreferences() {
|
||||||
s.T().Skip("flaky test")
|
|
||||||
|
|
||||||
// Set Display name to pass shouldPublishChatIdentity check
|
// Set Display name to pass shouldPublishChatIdentity check
|
||||||
profileKp := accounts.GetProfileKeypairForTest(true, false, false)
|
profileKp := accounts.GetProfileKeypairForTest(true, false, false)
|
||||||
profileKp.KeyUID = s.m.account.KeyUID
|
profileKp.KeyUID = s.m.account.KeyUID
|
||||||
|
@ -439,22 +437,27 @@ func (s *TestMessengerProfileShowcase) TestShareShowcasePreferences() {
|
||||||
err = s.m.SetDisplayName("bobby")
|
err = s.m.SetDisplayName("bobby")
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
// Add mutual contact
|
|
||||||
mutualContact := s.newMessengerForProfileShowcase()
|
|
||||||
defer TearDownMessenger(&s.Suite, mutualContact)
|
|
||||||
|
|
||||||
s.mutualContact(mutualContact)
|
|
||||||
|
|
||||||
// Add identity verified contact
|
|
||||||
verifiedContact := s.newMessengerForProfileShowcase()
|
|
||||||
defer TearDownMessenger(&s.Suite, verifiedContact)
|
|
||||||
|
|
||||||
s.mutualContact(verifiedContact)
|
|
||||||
s.verifiedContact(verifiedContact)
|
|
||||||
|
|
||||||
// Save preferences to dispatch changes
|
// Save preferences to dispatch changes
|
||||||
request := DummyProfileShowcasePreferences(true)
|
request := DummyProfileShowcasePreferences(true)
|
||||||
|
|
||||||
|
// Save wallet accounts to pass the validation
|
||||||
|
acc1 := &accounts.Account{
|
||||||
|
Address: types.HexToAddress(request.Accounts[0].Address),
|
||||||
|
Type: accounts.AccountTypeGenerated,
|
||||||
|
Name: "Test Account 1",
|
||||||
|
ColorID: "",
|
||||||
|
Emoji: "emoji",
|
||||||
|
}
|
||||||
|
acc2 := &accounts.Account{
|
||||||
|
Address: types.HexToAddress(request.Accounts[1].Address),
|
||||||
|
Type: accounts.AccountTypeSeed,
|
||||||
|
Name: "Test Account 2",
|
||||||
|
ColorID: "",
|
||||||
|
Emoji: "emoji",
|
||||||
|
}
|
||||||
|
err = s.m.settings.SaveOrUpdateAccounts([]*accounts.Account{acc1, acc2}, true)
|
||||||
|
s.Require().NoError(err)
|
||||||
|
|
||||||
// Provide collectible balances test response
|
// Provide collectible balances test response
|
||||||
collectible := request.Collectibles[0]
|
collectible := request.Collectibles[0]
|
||||||
collectibleID, err := toCollectibleUniqueID(collectible.ContractAddress, collectible.TokenID, collectible.ChainID)
|
collectibleID, err := toCollectibleUniqueID(collectible.ContractAddress, collectible.TokenID, collectible.ChainID)
|
||||||
|
@ -471,6 +474,29 @@ func (s *TestMessengerProfileShowcase) TestShareShowcasePreferences() {
|
||||||
err = s.m.SetProfileShowcasePreferences(request, false)
|
err = s.m.SetProfileShowcasePreferences(request, false)
|
||||||
s.Require().NoError(err)
|
s.Require().NoError(err)
|
||||||
|
|
||||||
|
profileShowcasePreferences, err := s.m.GetProfileShowcasePreferences()
|
||||||
|
s.Require().NoError(err)
|
||||||
|
|
||||||
|
// Make sure the count for entries is correct
|
||||||
|
s.Require().Len(profileShowcasePreferences.Communities, 2)
|
||||||
|
s.Require().Len(profileShowcasePreferences.Accounts, 2)
|
||||||
|
s.Require().Len(profileShowcasePreferences.Collectibles, 1)
|
||||||
|
s.Require().Len(profileShowcasePreferences.VerifiedTokens, 3)
|
||||||
|
s.Require().Len(profileShowcasePreferences.UnverifiedTokens, 2)
|
||||||
|
|
||||||
|
// Add mutual contact
|
||||||
|
mutualContact := s.newMessengerForProfileShowcase()
|
||||||
|
defer TearDownMessenger(&s.Suite, mutualContact)
|
||||||
|
|
||||||
|
s.mutualContact(mutualContact)
|
||||||
|
|
||||||
|
// Add identity verified contact
|
||||||
|
verifiedContact := s.newMessengerForProfileShowcase()
|
||||||
|
defer TearDownMessenger(&s.Suite, verifiedContact)
|
||||||
|
|
||||||
|
s.mutualContact(verifiedContact)
|
||||||
|
s.verifiedContact(verifiedContact)
|
||||||
|
|
||||||
contactID := types.EncodeHex(crypto.FromECDSAPub(&s.m.identity.PublicKey))
|
contactID := types.EncodeHex(crypto.FromECDSAPub(&s.m.identity.PublicKey))
|
||||||
// Get summarised profile data for mutual contact
|
// Get summarised profile data for mutual contact
|
||||||
_, err = WaitOnMessengerResponse(
|
_, err = WaitOnMessengerResponse(
|
||||||
|
@ -713,7 +739,9 @@ func (s *TestMessengerProfileShowcase) TestProfileShowcaseProofOfMembershipEncry
|
||||||
// 4) Alice presents the community in her profile showcase
|
// 4) Alice presents the community in her profile showcase
|
||||||
// 5) Bob gets the community from Alice's profile showcase and tries to validate community's membership with expired grant
|
// 5) Bob gets the community from Alice's profile showcase and tries to validate community's membership with expired grant
|
||||||
func (s *TestMessengerProfileShowcase) TestProfileShowcaseCommuniesGrantExpires() {
|
func (s *TestMessengerProfileShowcase) TestProfileShowcaseCommuniesGrantExpires() {
|
||||||
|
grantInvokesProfileDispatchIntervalBackup := grantInvokesProfileDispatchInterval
|
||||||
grantInvokesProfileDispatchInterval = 1 * time.Millisecond
|
grantInvokesProfileDispatchInterval = 1 * time.Millisecond
|
||||||
|
communitiesGrantExpirationTimeBackup := communities.GrantExpirationTime
|
||||||
communities.GrantExpirationTime = 1 * time.Millisecond
|
communities.GrantExpirationTime = 1 * time.Millisecond
|
||||||
alice := s.m
|
alice := s.m
|
||||||
|
|
||||||
|
@ -769,6 +797,10 @@ func (s *TestMessengerProfileShowcase) TestProfileShowcaseCommuniesGrantExpires(
|
||||||
s.Require().Len(profileShowcase.Communities, 1)
|
s.Require().Len(profileShowcase.Communities, 1)
|
||||||
s.Require().Equal(community.IDString(), profileShowcase.Communities[0].CommunityID)
|
s.Require().Equal(community.IDString(), profileShowcase.Communities[0].CommunityID)
|
||||||
s.Require().Equal(identity.ProfileShowcaseMembershipStatusUnproven, profileShowcase.Communities[0].MembershipStatus)
|
s.Require().Equal(identity.ProfileShowcaseMembershipStatusUnproven, profileShowcase.Communities[0].MembershipStatus)
|
||||||
|
|
||||||
|
// Return values back because they can affect other tests
|
||||||
|
grantInvokesProfileDispatchInterval = grantInvokesProfileDispatchIntervalBackup
|
||||||
|
communities.GrantExpirationTime = communitiesGrantExpirationTimeBackup
|
||||||
}
|
}
|
||||||
|
|
||||||
// The scenario tested is as follow:
|
// The scenario tested is as follow:
|
||||||
|
@ -780,6 +812,7 @@ func (s *TestMessengerProfileShowcase) TestProfileShowcaseCommuniesGrantExpires(
|
||||||
// 6) Owner updates the grant
|
// 6) Owner updates the grant
|
||||||
// 7) Bob should be able to validate the membership again
|
// 7) Bob should be able to validate the membership again
|
||||||
func (s *TestMessengerProfileShowcase) TestProfileShowcaseCommuniesDispatchOnGrantUpdate() {
|
func (s *TestMessengerProfileShowcase) TestProfileShowcaseCommuniesDispatchOnGrantUpdate() {
|
||||||
|
grantInvokesProfileDispatchIntervalBackup := grantInvokesProfileDispatchInterval
|
||||||
grantInvokesProfileDispatchInterval = 1 * time.Millisecond
|
grantInvokesProfileDispatchInterval = 1 * time.Millisecond
|
||||||
alice := s.m
|
alice := s.m
|
||||||
|
|
||||||
|
@ -891,4 +924,7 @@ func (s *TestMessengerProfileShowcase) TestProfileShowcaseCommuniesDispatchOnGra
|
||||||
s.Require().Len(profileShowcase.Communities, 1)
|
s.Require().Len(profileShowcase.Communities, 1)
|
||||||
s.Require().Equal(profileShowcase.Communities[0].CommunityID, community.IDString())
|
s.Require().Equal(profileShowcase.Communities[0].CommunityID, community.IDString())
|
||||||
s.Require().Equal(profileShowcase.Communities[0].MembershipStatus, identity.ProfileShowcaseMembershipStatusProvenMember)
|
s.Require().Equal(profileShowcase.Communities[0].MembershipStatus, identity.ProfileShowcaseMembershipStatusProvenMember)
|
||||||
|
|
||||||
|
// Return values back because they can affect other tests
|
||||||
|
grantInvokesProfileDispatchInterval = grantInvokesProfileDispatchIntervalBackup
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue