From 8304f8bf88c081f2489d6e5564d8bcd15c6d9d10 Mon Sep 17 00:00:00 2001 From: Michal Iskierko Date: Tue, 28 Mar 2023 13:06:35 +0200 Subject: [PATCH] fix(Collectibles): Add database tests Fix #3355 --- services/collectibles/database_test.go | 65 ++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 services/collectibles/database_test.go diff --git a/services/collectibles/database_test.go b/services/collectibles/database_test.go new file mode 100644 index 000000000..8f2990a65 --- /dev/null +++ b/services/collectibles/database_test.go @@ -0,0 +1,65 @@ +package collectibles + +import ( + "io/ioutil" + "testing" + + "github.com/stretchr/testify/suite" + + "github.com/status-im/status-go/appdatabase" + "github.com/status-im/status-go/protocol/sqlite" +) + +func TestDatabaseSuite(t *testing.T) { + suite.Run(t, new(DatabaseSuite)) +} + +type DatabaseSuite struct { + suite.Suite + + db *Database +} + +func (s *DatabaseSuite) SetupTest() { + s.db = nil + + dbPath, err := ioutil.TempFile("", "status-go-collectibles-db-") + s.NoError(err, "creating temp file for db") + + db, err := appdatabase.InitializeDB(dbPath.Name(), "", sqlite.ReducedKDFIterationsNumber) + s.NoError(err, "creating sqlite db instance") + + err = sqlite.Migrate(db) + s.NoError(err, "protocol migrate") + + s.db = &Database{db: db} +} + +func (s *DatabaseSuite) TestAddOwner() { + owners, err := s.db.GetTokenOwners(5, "0x123") + s.Require().NoError(err) + s.Require().Len(owners, 0) + + err = s.db.AddTokenOwners(5, "0x123", []string{"A", "B"}) + s.Require().NoError(err) + owners, err = s.db.GetTokenOwners(5, "0x123") + s.Require().NoError(err) + s.Require().Len(owners, 2) + + s.Equal(owners[0].Amount, 1) + s.Equal(owners[1].Amount, 1) + + err = s.db.AddTokenOwners(5, "0x123", []string{"a"}) + s.Require().NoError(err) + owners, err = s.db.GetTokenOwners(5, "0x123") + s.Require().NoError(err) + s.Require().Len(owners, 2) + + amount, err := s.db.GetAmount(5, "0x123", "A") + s.Require().NoError(err) + s.Equal(amount, 2) + + amount, err = s.db.GetAmount(5, "0x123", "B") + s.Require().NoError(err) + s.Equal(amount, 1) +}