Add a real integration test

This commit is contained in:
9seconds
2021-04-12 10:29:19 +03:00
parent 2273a0e4af
commit fe3b0f3ca5
3 changed files with 86 additions and 0 deletions
+32
View File
@@ -1,7 +1,9 @@
package mtglib_test
import (
"context"
"crypto/tls"
"encoding/hex"
"encoding/json"
"fmt"
"io"
@@ -16,6 +18,9 @@ import (
"github.com/9seconds/mtg/v2/logger"
"github.com/9seconds/mtg/v2/mtglib"
"github.com/9seconds/mtg/v2/network"
"github.com/gotd/td/telegram"
"github.com/gotd/td/telegram/dcs"
"github.com/gotd/td/tg"
"github.com/stretchr/testify/suite"
)
@@ -51,6 +56,7 @@ func (suite *ProxyTestSuite) SetupSuite() {
IPBlocklist: ipblocklist.NewNoop(),
EventStream: events.NewNoopStream(),
Logger: logger.NewNoopLogger(),
UseTestDCs: true,
}
proxy, err := mtglib.NewProxy(*suite.opts)
@@ -168,6 +174,32 @@ func (suite *ProxyTestSuite) TestHTTPSRequest() {
suite.NotEmpty(jsonStruct.Headers.TraceID)
}
func (suite *ProxyTestSuite) TestMakeRealRequest() {
secret, _ := hex.DecodeString(suite.opts.Secret.Hex())
resolver, err := dcs.MTProxyResolver(
suite.ProxyAddress(),
secret,
dcs.MTProxyOptions{},
)
suite.NoError(err)
tgClient := telegram.NewClient(telegram.TestAppID,
telegram.TestAppHash,
telegram.Options{
Resolver: resolver,
})
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()
suite.NoError(tgClient.Run(ctx, func(ctx context.Context) error {
_, err := tg.NewClient(tgClient).HelpGetConfig(ctx)
suite.NoError(err)
return err // nolint: wrapcheck
}))
}
func TestProxy(t *testing.T) {
t.Parallel()
suite.Run(t, &ProxyTestSuite{})