github.com/status-im/status-go@v1.1.0/services/local-notifications/database_test.go (about) 1 package localnotifications 2 3 import ( 4 "database/sql" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 9 "github.com/status-im/status-go/appdatabase" 10 "github.com/status-im/status-go/t/helpers" 11 ) 12 13 func setupAppTestDb(t *testing.T) (*sql.DB, func()) { 14 db, cleanup, err := helpers.SetupTestSQLDB(appdatabase.DbInitializer{}, "local-notifications-tests-") 15 require.NoError(t, err) 16 return db, func() { require.NoError(t, cleanup()) } 17 } 18 19 func setupTestDB(t *testing.T, db *sql.DB) (*Database, func()) { 20 return NewDB(db, 1777), func() { 21 require.NoError(t, db.Close()) 22 } 23 } 24 25 func TestWalletPreferences(t *testing.T) { 26 appDB, appStop := setupAppTestDb(t) 27 defer appStop() 28 29 db, stop := setupTestDB(t, appDB) 30 defer stop() 31 32 enabled := true 33 require.NoError(t, db.ChangeWalletPreference(enabled)) 34 rst, err := db.GetWalletPreference() 35 require.NoError(t, err) 36 require.Equal(t, enabled, rst.Enabled) 37 38 enabled = false 39 require.NoError(t, db.ChangeWalletPreference(enabled)) 40 rst, err = db.GetWalletPreference() 41 require.Equal(t, enabled, rst.Enabled) 42 43 require.NoError(t, err) 44 } 45 46 func TestPreferences(t *testing.T) { 47 appDB, appStop := setupAppTestDb(t) 48 defer appStop() 49 50 db, stop := setupTestDB(t, appDB) 51 defer stop() 52 53 enabled := true 54 55 require.NoError(t, db.ChangeWalletPreference(enabled)) 56 rst, err := db.GetPreferences() 57 58 require.Equal(t, 1, len(rst)) 59 require.Equal(t, enabled, rst[0].Enabled) 60 61 require.NoError(t, err) 62 }