photoprism/internal/server/server_test.go
2025-11-23 22:34:50 +10:00

48 lines
1.1 KiB
Go

package server
import (
"os"
"testing"
"github.com/sirupsen/logrus"
"github.com/photoprism/photoprism/internal/config"
"github.com/photoprism/photoprism/internal/event"
"github.com/photoprism/photoprism/internal/photoprism/get"
"github.com/photoprism/photoprism/internal/server/limiter"
"github.com/photoprism/photoprism/pkg/fs"
)
// TestMain executes testMain returning it's results. It is done this way so that defer can be used to cleanup.
func TestMain(m *testing.M) {
os.Exit(testMain(m))
}
func testMain(m *testing.M) (code int) {
// Init test logger.
log = logrus.StandardLogger()
log.SetLevel(logrus.TraceLevel)
event.AuditLog = log
// Remove temporary SQLite files before running the tests.
fs.PurgeTestDbFiles(".", false)
// Init test config.
c := config.TestConfig()
defer c.CleanupTestFolder()
defer func() {
if err := c.CloseDb(); err != nil {
log.Errorf("close db: %v", err)
}
// Remove temporary SQLite files after running the tests.
fs.PurgeTestDbFiles(".", false)
}()
get.SetConfig(c)
// Increase login rate limit for testing.
limiter.Login = limiter.NewLimit(1, 10000)
// Run unit tests.
return m.Run()
}