merged from gramsrv upstream
This commit is contained in:
parent
79c64ee916
commit
21a0856587
651 changed files with 54774 additions and 4590 deletions
66
internal/rpc/help_app_update_test.go
Normal file
66
internal/rpc/help_app_update_test.go
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
package rpc
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"go.uber.org/zap"
|
||||
|
||||
"github.com/iamxvbaba/td/clock"
|
||||
"github.com/iamxvbaba/td/tg"
|
||||
|
||||
"telesrv/internal/updatecdn"
|
||||
)
|
||||
|
||||
type fakeAppUpdateResolver struct {
|
||||
request updatecdn.ResolveRequest
|
||||
result *updatecdn.ResolvedUpdate
|
||||
err error
|
||||
}
|
||||
|
||||
func (f *fakeAppUpdateResolver) Resolve(_ context.Context, req updatecdn.ResolveRequest) (*updatecdn.ResolvedUpdate, error) {
|
||||
f.request = req
|
||||
return f.result, f.err
|
||||
}
|
||||
|
||||
func TestHelpGetAppUpdateUsesClientPlatformVersionSourceAndLanguage(t *testing.T) {
|
||||
resolver := &fakeAppUpdateResolver{result: &updatecdn.ResolvedUpdate{
|
||||
ID: 91, Version: "12.9.1", Text: "Новая версия", URL: "https://updates.example/app.apk", CanNotSkip: true,
|
||||
}}
|
||||
router := New(Config{PublicBaseURL: "https://telesrv.example"}, Deps{AppUpdates: resolver}, zap.NewNop(), clock.System)
|
||||
ctx := WithClientInfo(WithUserID(context.Background(), 1000000001), ClientInfo{
|
||||
Type: ClientTypeAndroid, AppVersion: "12.9.0 (500)", LangCode: "ru", SystemLangCode: "en",
|
||||
})
|
||||
result, err := router.onHelpGetAppUpdate(ctx, "com.example.store")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
update, ok := result.(*tg.HelpAppUpdate)
|
||||
if !ok {
|
||||
t.Fatalf("result = %T, want *tg.HelpAppUpdate", result)
|
||||
}
|
||||
if update.ID != 91 || update.Version != "12.9.1" || update.Text != "Новая версия" || !update.GetCanNotSkip() {
|
||||
t.Fatalf("update = %#v", update)
|
||||
}
|
||||
if got, ok := update.GetURL(); !ok || got != "https://updates.example/app.apk" {
|
||||
t.Fatalf("url = %q, %v", got, ok)
|
||||
}
|
||||
if resolver.request.Platform != "android" || resolver.request.Version != "12.9.0 (500)" ||
|
||||
resolver.request.Source != "com.example.store" || resolver.request.LangCode != "ru" {
|
||||
t.Fatalf("resolve request = %#v", resolver.request)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHelpGetAppUpdateFailsClosedWithoutRPCError(t *testing.T) {
|
||||
resolver := &fakeAppUpdateResolver{err: errors.New("service unavailable")}
|
||||
router := New(Config{PublicBaseURL: "https://telesrv.example"}, Deps{AppUpdates: resolver}, zap.NewNop(), clock.System)
|
||||
ctx := WithClientInfo(WithUserID(context.Background(), 1000000001), ClientInfo{Type: ClientTypeIOS, AppVersion: "12.9.0"})
|
||||
result, err := router.onHelpGetAppUpdate(ctx, "")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if _, ok := result.(*tg.HelpNoAppUpdate); !ok {
|
||||
t.Fatalf("result = %T, want *tg.HelpNoAppUpdate", result)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue