mirror of
https://github.com/status-im/status-go.git
synced 2025-01-17 18:22:13 +00:00
fa390a52ae
* refactor TestRequestMessageFromMailboxAsync to use s.requestHistoricMessages helper * send p2pRequestResponseCode from mailserver * send p2p message response to after sending all historic messages * mailserver sends `whisper.NewSentMessage` as response * add mailserver Client and p2pRequestAckCode watchers * send event with envelopeFeed when p2pRequestAckCode is received * test request completed event in tracker * rename mailserver response events and code to RequestCompleteCode * wait for mailserver response in e2e test * use SendHistoricMessageResponse method name for mailserver response * fix lint warnings * add mailserver request expiration * send mailserver response without envelope * add `ttl` to Request struct in shhext_requestMessages * test that tracker calls handler.MailServerRequestExpired * add geth patch * rename TTL to Timeout * split tracker.handleEvent in multiple methods
55 lines
1.3 KiB
Go
55 lines
1.3 KiB
Go
package shhext
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestMessagesRequest_setDefaults(t *testing.T) {
|
|
daysAgo := func(now time.Time, days int) uint32 {
|
|
return uint32(now.UTC().Add(-24 * time.Hour * time.Duration(days)).Unix())
|
|
}
|
|
|
|
tnow := time.Now()
|
|
now := uint32(tnow.UTC().Unix())
|
|
yesterday := daysAgo(tnow, 1)
|
|
|
|
scenarios := []struct {
|
|
given *MessagesRequest
|
|
expected *MessagesRequest
|
|
}{
|
|
{
|
|
&MessagesRequest{From: 0, To: 0},
|
|
&MessagesRequest{From: yesterday, To: now, Timeout: defaultRequestTimeout},
|
|
},
|
|
{
|
|
&MessagesRequest{From: 1, To: 0},
|
|
&MessagesRequest{From: uint32(1), To: now, Timeout: defaultRequestTimeout},
|
|
},
|
|
{
|
|
&MessagesRequest{From: 0, To: yesterday},
|
|
&MessagesRequest{From: daysAgo(tnow, 2), To: yesterday, Timeout: defaultRequestTimeout},
|
|
},
|
|
// 100 - 1 day would be invalid, so we set From to 0
|
|
{
|
|
&MessagesRequest{From: 0, To: 100},
|
|
&MessagesRequest{From: 0, To: 100, Timeout: defaultRequestTimeout},
|
|
},
|
|
// set Timeout
|
|
{
|
|
&MessagesRequest{From: 0, To: 0, Timeout: 100},
|
|
&MessagesRequest{From: yesterday, To: now, Timeout: 100},
|
|
},
|
|
}
|
|
|
|
for i, s := range scenarios {
|
|
t.Run(fmt.Sprintf("Scenario %d", i), func(t *testing.T) {
|
|
s.given.setDefaults(tnow)
|
|
require.Equal(t, s.expected, s.given)
|
|
})
|
|
}
|
|
}
|