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 }