mirror of
https://github.com/iyear/tdl
synced 2025-01-08 11:57:55 +08:00
test(e2e): login before test
This commit is contained in:
parent
881de655a8
commit
21ed380e29
@ -1,23 +1,14 @@
|
||||
package tgc
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"fmt"
|
||||
"github.com/gotd/td/telegram"
|
||||
"github.com/gotd/td/telegram/auth"
|
||||
"github.com/iyear/tdl/pkg/consts"
|
||||
"github.com/iyear/tdl/pkg/logger"
|
||||
"github.com/spf13/viper"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
func RunWithAuth(ctx context.Context, client *telegram.Client, f func(ctx context.Context) error) error {
|
||||
if viper.GetString(consts.FlagTest) != "" {
|
||||
return runWithTest(ctx, client, f)
|
||||
}
|
||||
|
||||
return client.Run(ctx, func(ctx context.Context) error {
|
||||
status, err := client.Auth().Status(ctx)
|
||||
if err != nil {
|
||||
@ -34,20 +25,3 @@ func RunWithAuth(ctx context.Context, client *telegram.Client, f func(ctx contex
|
||||
return f(ctx)
|
||||
})
|
||||
}
|
||||
|
||||
func runWithTest(ctx context.Context, client *telegram.Client, f func(ctx context.Context) error) error {
|
||||
return client.Run(ctx, func(ctx context.Context) error {
|
||||
authClient := auth.NewClient(client.API(), rand.Reader, telegram.TestAppID, telegram.TestAppHash)
|
||||
|
||||
reader := bytes.NewBufferString(viper.GetString(consts.FlagTest)) // stable account
|
||||
|
||||
if err := auth.NewFlow(
|
||||
auth.Test(reader, 2),
|
||||
auth.SendCodeOptions{},
|
||||
).Run(ctx, authClient); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return f(ctx)
|
||||
})
|
||||
}
|
||||
|
@ -2,11 +2,16 @@ package login
|
||||
|
||||
import (
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"github.com/cenkalti/backoff/v4"
|
||||
"github.com/fatih/color"
|
||||
"github.com/gotd/td/telegram"
|
||||
"github.com/gotd/td/telegram/auth"
|
||||
"github.com/iyear/tdl/app/internal/tgc"
|
||||
"github.com/iyear/tdl/pkg/consts"
|
||||
"github.com/iyear/tdl/pkg/key"
|
||||
"github.com/spf13/viper"
|
||||
"time"
|
||||
)
|
||||
|
||||
func Code(ctx context.Context) error {
|
||||
@ -16,15 +21,29 @@ func Code(ctx context.Context) error {
|
||||
}
|
||||
|
||||
return c.Run(ctx, func(ctx context.Context) error {
|
||||
if err := c.Ping(ctx); err != nil {
|
||||
if err = c.Ping(ctx); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if viper.GetString(consts.FlagTest) != "" {
|
||||
authClient := auth.NewClient(c.API(), rand.Reader, telegram.TestAppID, telegram.TestAppHash)
|
||||
|
||||
return backoff.Retry(func() error {
|
||||
if err = auth.NewFlow(
|
||||
auth.Test(rand.Reader, 2),
|
||||
auth.SendCodeOptions{},
|
||||
).Run(ctx, authClient); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}, backoff.NewConstantBackOff(time.Second))
|
||||
}
|
||||
|
||||
color.Yellow("WARN: Using the built-in APP_ID & APP_HASH may increase the probability of blocking")
|
||||
color.Blue("Login...")
|
||||
|
||||
flow := auth.NewFlow(termAuth{}, auth.SendCodeOptions{})
|
||||
if err := c.Auth().IfNecessary(ctx, flow); err != nil {
|
||||
if err = c.Auth().IfNecessary(ctx, flow); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,11 @@ var (
|
||||
|
||||
var _ = BeforeSuite(func() {
|
||||
testAccount = strconv.FormatInt(time.Now().UnixNano(), 10)
|
||||
|
||||
cmd = tcmd.New()
|
||||
Expect(cmd.PersistentFlags().Set("test", testAccount)).To(Succeed())
|
||||
exec(cmd, []string{"login", "--code"}, true)
|
||||
|
||||
log.SetOutput(GinkgoWriter)
|
||||
})
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user