feat(backend): implement task creation and admin web

This commit is contained in:
QiuSW
2026-07-26 14:03:32 +08:00
parent 2b265c92fc
commit c5d3b215ff
58 changed files with 8773 additions and 83 deletions
+51
View File
@@ -1,11 +1,14 @@
package main
import (
"context"
"errors"
"net"
"net/http"
"testing"
"time"
"cmroubao/backend-api/internal/platform/migration"
)
func TestShutdownServerForceClosesAfterGracefulTimeout(t *testing.T) {
@@ -73,3 +76,51 @@ func TestShutdownServerAcceptsNormalServerClose(t *testing.T) {
t.Fatalf("shutdownServer() error = %v", err)
}
}
func TestRequireCurrentMigrationsAcceptsAppliedVersions(t *testing.T) {
reader := stubMigrationStatusReader{
statuses: []migration.Status{
{Version: 1, Applied: true},
{Version: 2, Applied: true},
},
}
if err := requireCurrentMigrations(context.Background(), reader); err != nil {
t.Fatalf("requireCurrentMigrations() error = %v", err)
}
}
func TestRequireCurrentMigrationsRejectsPendingVersion(t *testing.T) {
reader := stubMigrationStatusReader{
statuses: []migration.Status{
{Version: 1, Applied: true},
{Version: 2, Applied: false},
},
}
err := requireCurrentMigrations(context.Background(), reader)
if err == nil || err.Error() !=
"database migrations are pending; run migrate up" {
t.Fatalf("requireCurrentMigrations() error = %v", err)
}
}
func TestRequireCurrentMigrationsHidesStatusFailure(t *testing.T) {
reader := stubMigrationStatusReader{err: errors.New("database details")}
err := requireCurrentMigrations(context.Background(), reader)
if err == nil || err.Error() != "database migration status failed" {
t.Fatalf("requireCurrentMigrations() error = %v", err)
}
}
type stubMigrationStatusReader struct {
statuses []migration.Status
err error
}
func (reader stubMigrationStatusReader) Status(
context.Context,
) ([]migration.Status, error) {
return reader.statuses, reader.err
}