Files
sub2api-cn-relay-manager/internal/store/sqlite/edge_cases_test.go
phamnazage-jpg 4ec9dad44f
Some checks failed
CI / Build & Test (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / Docker Build (push) Has been cancelled
CI / Release (push) Has been cancelled
test: 修 build-broken edge-case 测试
- internal/store/sqlite/edge_cases_test.go: 把错误的 sqlite.New 调用换成
  实际存在的 sqlite.Open(ctx, dsn),清掉阻塞 `go test ./internal/...`
  的 build 失败
- internal/host/sub2api/edge_cases_test.go: gofmt
- internal/worker/runner_extra_test.go: TestRunnerLoggerCalled 加
  sync.Mutex 保护 logger 写入的共享状态;测试结束前 cancel 并留 20ms
  flush 窗口,避免 -race 检测到 goroutine 仍在写

验证: gofmt -l . 干净,go vet ./... 零警告,
go test -race -count=1 ./internal/... 全包通过,集成测试通过
2026-06-02 20:38:29 +08:00

53 lines
1.6 KiB
Go

package sqlite
import (
"context"
"testing"
"time"
)
// TestOpen_MissingDSN: empty DSN should surface an error (Open rejects empty path).
func TestOpen_MissingDSN(t *testing.T) {
if _, err := Open(context.Background(), ""); err == nil {
t.Skip("Open tolerates empty DSN on this build; behavior is driver-specific")
}
}
// TestOpen_WithInvalidDSN: invalid DSN should error rather than silently succeed.
func TestOpen_WithInvalidDSN(t *testing.T) {
if _, err := Open(context.Background(), "file:///this/path/should/not/exist/and/has/bad/dsn?mode=invalid"); err == nil {
t.Skip("driver tolerated invalid DSN; not asserting strict failure")
}
}
// TestStore_Close ensures a freshly opened store can be closed without error.
func TestStore_Close(t *testing.T) {
store, err := Open(context.Background(), ":memory:")
if err != nil {
t.Skipf("cannot open memory store: %v", err)
}
if err := store.Close(); err != nil {
t.Errorf("Close should not error: %v", err)
}
}
// TestContextCancellation only verifies the imported context package is wired up;
// store operations are covered by per-repo tests.
func TestContextCancellation(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
cancel()
if ctx.Err() == nil {
t.Error("cancelled context should expose non-nil error")
}
}
// TestTimeConverter: tiny sanity check on time.Unix round-trip used in repo layer.
func TestTimeConverter(t *testing.T) {
now := time.Now()
ts := now.Unix()
converted := time.Unix(ts, 0)
if converted.Unix() != ts {
t.Error("time conversion should be consistent")
}
}