mirror of
https://github.com/status-im/status-go.git
synced 2025-01-09 06:12:55 +00:00
2df9df10ab
interface for initializing db, which is implemented for appdatabase and walletdatabase. TBD for multiaccounts DB. Unified DB initializion for all tests using helpers and new interface. Reduced sqlcipher kdf iterations for all tests to 1.
152 lines
4.5 KiB
Go
152 lines
4.5 KiB
Go
package ens
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/golang/mock/gomock"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/ethereum/go-ethereum/common"
|
|
gethrpc "github.com/ethereum/go-ethereum/rpc"
|
|
"github.com/status-im/status-go/appdatabase"
|
|
"github.com/status-im/status-go/params"
|
|
statusRPC "github.com/status-im/status-go/rpc"
|
|
"github.com/status-im/status-go/t/helpers"
|
|
"github.com/status-im/status-go/t/utils"
|
|
"github.com/status-im/status-go/transactions/fake"
|
|
)
|
|
|
|
func createDB(t *testing.T) (*sql.DB, func()) {
|
|
db, cleanup, err := helpers.SetupTestSQLDB(appdatabase.DbInitializer{}, "service-ens-tests-")
|
|
require.NoError(t, err)
|
|
return db, func() { require.NoError(t, cleanup()) }
|
|
}
|
|
|
|
func setupTestAPI(t *testing.T) (*API, func()) {
|
|
db, cancel := createDB(t)
|
|
|
|
// Creating a dummy status node to simulate what it's done in get_status_node.go
|
|
upstreamConfig := params.UpstreamRPCConfig{
|
|
URL: "https://mainnet.infura.io/v3/800c641949d64d768a5070a1b0511938",
|
|
Enabled: true,
|
|
}
|
|
|
|
txServiceMockCtrl := gomock.NewController(t)
|
|
server, _ := fake.NewTestServer(txServiceMockCtrl)
|
|
client := gethrpc.DialInProc(server)
|
|
|
|
_ = client
|
|
|
|
rpcClient, err := statusRPC.NewClient(nil, 1, upstreamConfig, nil, db)
|
|
require.NoError(t, err)
|
|
|
|
// import account keys
|
|
utils.Init()
|
|
require.NoError(t, utils.ImportTestAccount(t.TempDir(), utils.GetAccount1PKFile()))
|
|
|
|
return NewAPI(rpcClient, nil, nil, nil, db, time.Now, nil), cancel
|
|
}
|
|
|
|
func TestResolver(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
r, err := api.Resolver(context.Background(), 1, "rramos.eth")
|
|
require.NoError(t, err)
|
|
require.Equal(t, "0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41", r.String())
|
|
}
|
|
|
|
func TestGetName(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
r, err := api.GetName(context.Background(), 1, common.HexToAddress("0x7d28Ab6948F3Db2F95A43742265D382a4888c120"))
|
|
require.NoError(t, err)
|
|
require.Equal(t, "rramos.eth", r)
|
|
}
|
|
|
|
func TestOwnerOf(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
r, err := api.OwnerOf(context.Background(), 1, "rramos.eth")
|
|
require.NoError(t, err)
|
|
require.Equal(t, "0x7d28Ab6948F3Db2F95A43742265D382a4888c120", r.String())
|
|
}
|
|
|
|
func TestContentHash(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
r, err := api.ContentHash(context.Background(), 1, "simpledapp.eth")
|
|
require.NoError(t, err)
|
|
require.Equal(t, []byte{0xe3, 0x1, 0x1, 0x70, 0x12, 0x20, 0x79, 0x5c, 0x1e, 0xa0, 0xce, 0xaf, 0x4c, 0xee, 0xdc, 0x98, 0x96, 0xf1, 0x4b, 0x73, 0xbb, 0x30, 0xe9, 0x78, 0xe4, 0x85, 0x5e, 0xe2, 0x21, 0xb9, 0xa5, 0x7f, 0x5a, 0x93, 0x42, 0x68, 0x28, 0xe}, r)
|
|
}
|
|
|
|
func TestPublicKeyOf(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
pubKey, err := api.PublicKeyOf(context.Background(), 1, "rramos.eth")
|
|
require.NoError(t, err)
|
|
require.Equal(
|
|
t,
|
|
"0x04e25da6994ea2dc4ac70727e07eca153ae92bf7609db7befb7ebdceaad348f4fc55bbe90abf9501176301db5aa103fc0eb3bc3750272a26c424a10887db2a7ea8",
|
|
pubKey,
|
|
)
|
|
}
|
|
|
|
func TestAddressOf(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
r, err := api.AddressOf(context.Background(), 1, "rramos.eth")
|
|
require.NoError(t, err)
|
|
require.Equal(t, "0x7d28Ab6948F3Db2F95A43742265D382a4888c120", r.String())
|
|
}
|
|
|
|
func TestExpireAt(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
r, err := api.ExpireAt(context.Background(), 1, "rramos")
|
|
require.NoError(t, err)
|
|
require.Equal(t, "5db32cb7", r)
|
|
}
|
|
|
|
func TestPrice(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
r, err := api.Price(context.Background(), 1)
|
|
require.NoError(t, err)
|
|
require.Equal(t, "8ac7230489e80000", r)
|
|
}
|
|
|
|
func TestResourceURL(t *testing.T) {
|
|
api, cancel := setupTestAPI(t)
|
|
defer cancel()
|
|
|
|
uri, err := api.ResourceURL(context.Background(), 1, "simpledapp.eth")
|
|
require.NoError(t, err)
|
|
require.Equal(t, "https", uri.Scheme)
|
|
require.Equal(t, "bafybeidzlqpkbtvpjtxnzgew6ffxhozq5f4ojbk64iq3tjl7lkjue2biby", uri.Host)
|
|
require.Equal(t, "", uri.Path)
|
|
|
|
//fixme: this is not working ATM, as it blocks PRs, i commented it out
|
|
//uri, err = api.ResourceURL(context.Background(), 1, "swarm.eth")
|
|
//require.NoError(t, err)
|
|
//require.Equal(t, "https", uri.Scheme)
|
|
//require.Equal(t, "swarm-gateways.net", uri.Host)
|
|
//require.Equal(t, "/bzz:/b7976f7fabd7ba88a897452a2860228dcefec427302a3dedae164b51c780a5b8/", uri.Path)
|
|
|
|
uri, err = api.ResourceURL(context.Background(), 1, "noahzinsmeister.eth")
|
|
require.NoError(t, err)
|
|
require.Equal(t, "https", uri.Scheme)
|
|
require.Equal(t, "noahzinsmeister.com", uri.Host)
|
|
require.Equal(t, "", uri.Path)
|
|
}
|