52 lines
1.6 KiB
Go
52 lines
1.6 KiB
Go
package rpc
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/iamxvbaba/td/bin"
|
|
"github.com/iamxvbaba/td/clock"
|
|
"github.com/iamxvbaba/td/tg"
|
|
"github.com/iamxvbaba/td/tgerr"
|
|
"go.uber.org/zap/zaptest"
|
|
)
|
|
|
|
func TestHelpDismissSuggestionAndroidChangePhone(t *testing.T) {
|
|
r := New(Config{}, Deps{}, zaptest.NewLogger(t), clock.System)
|
|
ctx := WithUserID(context.Background(), 42)
|
|
req := &tg.HelpDismissSuggestionRequest{
|
|
Peer: &tg.InputPeerEmpty{},
|
|
Suggestion: "VALIDATE_PHONE_NUMBER",
|
|
}
|
|
var in bin.Buffer
|
|
if err := req.Encode(&in); err != nil {
|
|
t.Fatalf("encode: %v", err)
|
|
}
|
|
enc, err := r.Dispatch(ctx, [8]byte{1, 2, 3}, 77, &in)
|
|
if err != nil {
|
|
t.Fatalf("dispatch: %v", err)
|
|
}
|
|
if value, ok := dispatchCanonicalValue(enc).(bool); !ok || !value {
|
|
t.Fatalf("response = %#v (%T), want true", dispatchCanonicalValue(enc), enc)
|
|
}
|
|
}
|
|
|
|
func TestHelpDismissSuggestionRequiresAuthorization(t *testing.T) {
|
|
r := New(Config{}, Deps{}, zaptest.NewLogger(t), clock.System)
|
|
req := &tg.HelpDismissSuggestionRequest{Peer: &tg.InputPeerEmpty{}, Suggestion: "VALIDATE_PHONE_NUMBER"}
|
|
var in bin.Buffer
|
|
if err := req.Encode(&in); err != nil {
|
|
t.Fatalf("encode: %v", err)
|
|
}
|
|
if _, err := r.Dispatch(context.Background(), [8]byte{1}, 77, &in); !tgerr.Is(err, "AUTH_KEY_UNREGISTERED") {
|
|
t.Fatalf("unauthorized err = %v", err)
|
|
}
|
|
}
|
|
|
|
func TestHelpDismissSuggestionEmptyIsFalse(t *testing.T) {
|
|
r := &Router{}
|
|
ok, err := r.onHelpDismissSuggestion(WithUserID(context.Background(), 42), &tg.HelpDismissSuggestionRequest{Peer: &tg.InputPeerEmpty{}})
|
|
if err != nil || ok {
|
|
t.Fatalf("empty suggestion result=%v err=%v", ok, err)
|
|
}
|
|
}
|