github.com/status-im/status-go@v1.1.0/services/connector/database/persistence_test.go (about) 1 package persistence 2 3 import ( 4 "testing" 5 6 "database/sql" 7 8 "github.com/status-im/status-go/eth-node/types" 9 "github.com/status-im/status-go/t/helpers" 10 "github.com/status-im/status-go/walletdatabase" 11 12 "github.com/stretchr/testify/require" 13 ) 14 15 var testDApp = DApp{ 16 Name: "Test DApp", 17 URL: "https://test-dapp-url.com", 18 IconURL: "https://test-dapp-icon-url.com", 19 SharedAccount: types.HexToAddress("0x1234567890"), 20 ChainID: 0x1, 21 } 22 23 func setupTestDB(t *testing.T) (db *sql.DB, close func()) { 24 db, err := helpers.SetupTestMemorySQLDB(walletdatabase.DbInitializer{}) 25 require.NoError(t, err) 26 return db, func() { 27 require.NoError(t, db.Close()) 28 } 29 } 30 31 func TestInsertAndSelectDApp(t *testing.T) { 32 db, close := setupTestDB(t) 33 defer close() 34 35 err := UpsertDApp(db, &testDApp) 36 require.NoError(t, err) 37 38 dAppBack, err := SelectDAppByUrl(db, testDApp.URL) 39 require.NoError(t, err) 40 require.Equal(t, &testDApp, dAppBack) 41 } 42 43 func TestInsertAndUpdateDApp(t *testing.T) { 44 db, close := setupTestDB(t) 45 defer close() 46 47 err := UpsertDApp(db, &testDApp) 48 require.NoError(t, err) 49 50 updatedDApp := DApp{ 51 Name: "Updated Test DApp", 52 URL: testDApp.URL, 53 IconURL: "https://updated-test-dapp-icon-url.com", 54 } 55 56 err = UpsertDApp(db, &updatedDApp) 57 require.NoError(t, err) 58 59 dAppBack, err := SelectDAppByUrl(db, testDApp.URL) 60 require.NoError(t, err) 61 require.Equal(t, &updatedDApp, dAppBack) 62 require.NotEqual(t, &testDApp, dAppBack) 63 } 64 65 func TestInsertAndRemoveDApp(t *testing.T) { 66 db, close := setupTestDB(t) 67 defer close() 68 69 err := UpsertDApp(db, &testDApp) 70 require.NoError(t, err) 71 72 dAppBack, err := SelectDAppByUrl(db, testDApp.URL) 73 require.NoError(t, err) 74 require.Equal(t, &testDApp, dAppBack) 75 76 err = DeleteDApp(db, testDApp.URL) 77 require.NoError(t, err) 78 79 dAppBack, err = SelectDAppByUrl(db, testDApp.URL) 80 require.NoError(t, err) 81 require.Empty(t, dAppBack) 82 } 83 84 func TestSelectAllDApps(t *testing.T) { 85 db, close := setupTestDB(t) 86 defer close() 87 88 err := UpsertDApp(db, &testDApp) 89 require.NoError(t, err) 90 91 dApps, err := SelectAllDApps(db) 92 require.NoError(t, err) 93 require.Len(t, dApps, 1) 94 require.Equal(t, testDApp, dApps[0]) 95 }