mirror of
https://github.com/status-im/status-protocol-go.git
synced 2025-03-03 20:10:32 +00:00
Make database optional (#72)
This commit is contained in:
parent
4492eb9779
commit
3fa3648db9
17
messenger.go
17
messenger.go
@ -230,22 +230,25 @@ func NewMessenger(
|
||||
}
|
||||
}
|
||||
|
||||
var err error
|
||||
|
||||
// Configure the database.
|
||||
database := c.db
|
||||
if c.db == nil && c.dbConfig == (dbConfig{}) {
|
||||
return nil, errors.New("database instance or database path needs to be provided")
|
||||
}
|
||||
if c.db == nil {
|
||||
if database == nil && c.dbConfig != (dbConfig{}) {
|
||||
logger.Info("opening a database", zap.String("dbPath", c.dbConfig.dbPath))
|
||||
var err error
|
||||
database, err = sqlite.Open(c.dbConfig.dbPath, c.dbConfig.dbKey)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to initialize database from the db config")
|
||||
}
|
||||
} else {
|
||||
logger.Info("using in-memory database")
|
||||
database, err = sqlite.Open(":memory:", "")
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to initialize in-memory database")
|
||||
}
|
||||
}
|
||||
|
||||
// Apply migrations for all components.
|
||||
err := sqlite.Migrate(database)
|
||||
err = sqlite.Migrate(database)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "failed to apply migrations")
|
||||
}
|
||||
|
@ -100,6 +100,28 @@ func (s *MessengerSuite) TearDownTest() {
|
||||
_ = s.logger.Sync()
|
||||
}
|
||||
|
||||
func (s *MessengerSuite) TestInMemoryDatabase() {
|
||||
key, err := crypto.GenerateKey()
|
||||
s.Require().NoError(err)
|
||||
m, err := NewMessenger(
|
||||
key,
|
||||
s.shh,
|
||||
"installation-1",
|
||||
)
|
||||
s.Require().NoError(err)
|
||||
// Verify the in-memory database works.
|
||||
err = m.persistence.SaveChat(Chat{
|
||||
ID: "abc",
|
||||
Name: "abc",
|
||||
Active: true,
|
||||
ChatType: ChatTypePublic,
|
||||
})
|
||||
s.Require().NoError(err)
|
||||
result, err := m.persistence.Chats()
|
||||
s.Require().NoError(err)
|
||||
s.Require().Len(result, 1)
|
||||
}
|
||||
|
||||
func (s *MessengerSuite) TestInit() {
|
||||
testCases := []struct {
|
||||
Name string
|
||||
|
Loading…
x
Reference in New Issue
Block a user