Implement internal mail skill MVP

This commit is contained in:
赵义仑
2026-06-06 22:28:36 +08:00
commit 097df73495
22 changed files with 4059 additions and 0 deletions

33
internal/db/db_test.go Normal file
View File

@@ -0,0 +1,33 @@
package db
import (
"context"
"database/sql"
"testing"
)
func TestOpenAndMigrateCreatesCoreTables(t *testing.T) {
store, err := Open(":memory:")
if err != nil {
t.Fatalf("Open() error = %v", err)
}
defer store.Close()
if err := store.Migrate(context.Background()); err != nil {
t.Fatalf("Migrate() error = %v", err)
}
var name string
err = store.DB.QueryRowContext(context.Background(), "SELECT name FROM sqlite_master WHERE type='table' AND name='mail_messages'").Scan(&name)
if err != nil {
t.Fatalf("mail_messages table missing: %v", err)
}
err = store.DB.QueryRowContext(context.Background(), "SELECT name FROM sqlite_master WHERE type='table' AND name='sent_messages'").Scan(&name)
if err != nil && err != sql.ErrNoRows {
t.Fatalf("sent_messages lookup failed: %v", err)
}
if name != "sent_messages" {
t.Fatalf("sent_messages table missing, got %q", name)
}
}