b3cbeef7cf
真起 server 二进制(sqlite + Redis)跑 HTTP 用户旅程,验证 in-process 测试给不了的 信心(二进制起/迁移/路由/鉴权/DB 端到端): - scripts/e2e-smoke.sh:起栈编排(Redis 三选一:已有 addr / docker / 内嵌 miniredis 兜底)+ 随机端口 + trap 清理;调 Go driver - server/test/e2e/smoke_test.go (tag e2e):造用户(复用 argon2 HashPassword) → 登录 → /v1/me(dp_uuid/plan/email) → /v1/usage 鉴权 + 无 token 401 - server/test/e2e/miniredis (tag e2e):无 docker 时 Redis 兜底 launcher - 本地绿;go build/test ./...(无 tag)仍 25 包绿,tag e2e 文件被静默跳过 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
31 lines
733 B
Go
31 lines
733 B
Go
//go:build e2e
|
|
|
|
// Command miniredis 起一个进程内的 miniredis 实例,打印监听地址(host:port)到 stdout
|
|
// 然后阻塞,直到收到 SIGINT/SIGTERM。供 scripts/e2e-smoke.sh 在无 docker / 无本地
|
|
// redis-server 时作为 Redis 兜底——server 进程经真 TCP 连它。build tag e2e:不进常规构建。
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
|
|
"github.com/alicebob/miniredis/v2"
|
|
)
|
|
|
|
func main() {
|
|
m, err := miniredis.Run()
|
|
if err != nil {
|
|
fmt.Fprintln(os.Stderr, "miniredis:", err)
|
|
os.Exit(1)
|
|
}
|
|
// 第一行 = 监听地址,脚本读它作为 REDIS_ADDR。
|
|
fmt.Println(m.Addr())
|
|
|
|
ch := make(chan os.Signal, 1)
|
|
signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
|
|
<-ch
|
|
m.Close()
|
|
}
|