github.com/status-im/status-go@v1.1.0/services/browsers/api_test.go (about)

     1  package browsers
     2  
     3  import (
     4  	"context"
     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 setupTestDB(t *testing.T) (*Database, func()) {
    14  	db, cleanup, err := helpers.SetupTestSQLDB(appdatabase.DbInitializer{}, "browsers-tests")
    15  	require.NoError(t, err)
    16  	return NewDB(db), func() { require.NoError(t, cleanup()) }
    17  }
    18  
    19  func setupTestAPI(t *testing.T) (*API, func()) {
    20  	db, cancel := setupTestDB(t)
    21  	return &API{db: db}, cancel
    22  }
    23  
    24  func TestBookmarks(t *testing.T) {
    25  	api, cancel := setupTestAPI(t)
    26  	defer cancel()
    27  
    28  	bookmark := &Bookmark{
    29  		Name:     "MyBookmark",
    30  		URL:      "https://status.im",
    31  		ImageURL: "",
    32  	}
    33  
    34  	_, err := api.StoreBookmark(context.TODO(), *bookmark)
    35  	require.NoError(t, err)
    36  
    37  	rst, err := api.GetBookmarks(context.TODO())
    38  	require.NoError(t, err)
    39  	require.Len(t, rst, 1)
    40  
    41  	err = api.RemoveBookmark(context.TODO(), bookmark.URL)
    42  	require.NoError(t, err)
    43  	rst, err = api.GetBookmarks(context.TODO())
    44  	require.NoError(t, err)
    45  	require.Len(t, rst, 1)
    46  	require.Equal(t, rst[0].Removed, true)
    47  
    48  	require.NoError(t, api.DeleteBookmark(context.TODO(), bookmark.URL))
    49  	rst, err = api.GetBookmarks(context.TODO())
    50  	require.NoError(t, err)
    51  	require.Len(t, rst, 0)
    52  
    53  }
    54  
    55  func TestShouldSyncBookmark(t *testing.T) {
    56  	api, cancel := setupTestAPI(t)
    57  	defer cancel()
    58  
    59  	bookmark := &Bookmark{
    60  		Name:     "MyBookmark",
    61  		URL:      "https://status.im",
    62  		ImageURL: "",
    63  		Clock:    1,
    64  	}
    65  
    66  	_, err := api.StoreBookmark(context.TODO(), *bookmark)
    67  	require.NoError(t, err)
    68  
    69  	bookmark.Clock = 2
    70  	shouldSync, err := api.db.shouldSyncBookmark(bookmark, nil)
    71  	require.NoError(t, err)
    72  	require.True(t, shouldSync)
    73  
    74  	bookmark.Clock = 0
    75  	shouldSync, err = api.db.shouldSyncBookmark(bookmark, nil)
    76  	require.NoError(t, err)
    77  	require.False(t, shouldSync)
    78  }