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  }