mirror of
https://github.com/gotify/server.git
synced 2024-01-28 15:20:56 +03:00
102 lines
3.1 KiB
Go
102 lines
3.1 KiB
Go
package database
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/gotify/server/v2/model"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func (s *DatabaseSuite) TestApplication() {
|
|
if app, err := s.db.GetApplicationByToken("asdasdf"); assert.NoError(s.T(), err) {
|
|
assert.Nil(s.T(), app, "not existing app")
|
|
}
|
|
|
|
if app, err := s.db.GetApplicationByID(uint(1)); assert.NoError(s.T(), err) {
|
|
assert.Nil(s.T(), app, "not existing app")
|
|
}
|
|
|
|
user := &model.User{Name: "test", Pass: []byte{1}}
|
|
s.db.CreateUser(user)
|
|
assert.NotEqual(s.T(), 0, user.ID)
|
|
|
|
if apps, err := s.db.GetApplicationsByUser(user.ID); assert.NoError(s.T(), err) {
|
|
assert.Empty(s.T(), apps)
|
|
}
|
|
|
|
app := &model.Application{UserID: user.ID, Token: "C0000000000", Name: "backupserver"}
|
|
s.db.CreateApplication(app)
|
|
|
|
if apps, err := s.db.GetApplicationsByUser(user.ID); assert.NoError(s.T(), err) {
|
|
assert.Len(s.T(), apps, 1)
|
|
assert.Contains(s.T(), apps, app)
|
|
}
|
|
|
|
newApp, err := s.db.GetApplicationByToken(app.Token)
|
|
if assert.NoError(s.T(), err) {
|
|
assert.Equal(s.T(), app, newApp)
|
|
}
|
|
|
|
newApp, err = s.db.GetApplicationByID(app.ID)
|
|
if assert.NoError(s.T(), err) {
|
|
assert.Equal(s.T(), app, newApp)
|
|
}
|
|
|
|
lastUsed := time.Now().Add(-time.Hour)
|
|
s.db.UpdateApplicationTokenLastUsed(app.Token, &lastUsed)
|
|
newApp, err = s.db.GetApplicationByID(app.ID)
|
|
if assert.NoError(s.T(), err) {
|
|
assert.Equal(s.T(), lastUsed.Unix(), newApp.LastUsed.Unix())
|
|
}
|
|
app.LastUsed = &lastUsed
|
|
|
|
newApp.Image = "asdasd"
|
|
assert.NoError(s.T(), s.db.UpdateApplication(newApp))
|
|
|
|
newApp, err = s.db.GetApplicationByID(app.ID)
|
|
if assert.NoError(s.T(), err) {
|
|
assert.Equal(s.T(), "asdasd", newApp.Image)
|
|
}
|
|
|
|
assert.NoError(s.T(), s.db.DeleteApplicationByID(app.ID))
|
|
|
|
if apps, err := s.db.GetApplicationsByUser(user.ID); assert.NoError(s.T(), err) {
|
|
assert.Empty(s.T(), apps)
|
|
}
|
|
|
|
if app, err := s.db.GetApplicationByID(app.ID); assert.NoError(s.T(), err) {
|
|
assert.Nil(s.T(), app)
|
|
}
|
|
}
|
|
|
|
func (s *DatabaseSuite) TestDeleteAppDeletesMessages() {
|
|
assert.NoError(s.T(), s.db.CreateApplication(&model.Application{ID: 55, Token: "token"}))
|
|
assert.NoError(s.T(), s.db.CreateApplication(&model.Application{ID: 66, Token: "token2"}))
|
|
assert.NoError(s.T(), s.db.CreateMessage(&model.Message{ID: 12, ApplicationID: 55}))
|
|
assert.NoError(s.T(), s.db.CreateMessage(&model.Message{ID: 13, ApplicationID: 66}))
|
|
assert.NoError(s.T(), s.db.CreateMessage(&model.Message{ID: 14, ApplicationID: 55}))
|
|
assert.NoError(s.T(), s.db.CreateMessage(&model.Message{ID: 15, ApplicationID: 55}))
|
|
|
|
assert.NoError(s.T(), s.db.DeleteApplicationByID(55))
|
|
|
|
if msg, err := s.db.GetMessageByID(12); assert.NoError(s.T(), err) {
|
|
assert.Nil(s.T(), msg)
|
|
}
|
|
if msg, err := s.db.GetMessageByID(13); assert.NoError(s.T(), err) {
|
|
assert.NotNil(s.T(), msg)
|
|
}
|
|
if msg, err := s.db.GetMessageByID(14); assert.NoError(s.T(), err) {
|
|
assert.Nil(s.T(), msg)
|
|
}
|
|
if msg, err := s.db.GetMessageByID(15); assert.NoError(s.T(), err) {
|
|
assert.Nil(s.T(), msg)
|
|
}
|
|
|
|
if msgs, err := s.db.GetMessagesByApplication(55); assert.NoError(s.T(), err) {
|
|
assert.Empty(s.T(), msgs)
|
|
}
|
|
if msgs, err := s.db.GetMessagesByApplication(66); assert.NoError(s.T(), err) {
|
|
assert.NotEmpty(s.T(), msgs)
|
|
}
|
|
}
|