Files
meshtastic_mqtt_server/internal/store/testutil/testutil.go
T
kevinandClaude 52da224a19 refactor(config): console_log 提到顶层并细分 web/mqtt/llm/sql;data_dir 归入 ai
- 新增顶层 ConsoleLogConfig{Web, MQTT, LLM, SQL},默认全 true,方便后续按模块扩展
- WebConfig.ConsoleLog 移除;NewRouter/NewHTTPServer 改为显式接 consoleLog 参数
- AIConfig 增加 DataDir,原 Config.DataDir(仅 ai 模块使用)下沉到 ai.data_dir
- OpenStore(cfg, consoleLog) 通过 console_log.sql 控制 gorm logger 级别(Warn/Silent)
- gorm logger 始终设 IgnoreRecordNotFoundError=true,修掉 GetBoolRuntimeSetting
  正常缺省路径仍刷屏 'record not found' 的噪声
- 同步更新 install.sh 模板、win/etc 默认 yaml 与所有测试调用点

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-19 16:13:18 +08:00

28 lines
851 B
Go

// Package testutil 提供给其它包测试使用的 store 临时实例工厂。
//
// 重构前 db_test.go 中的 openTestStore helper 被 8+ 个测试文件复用;
// 现在抽到这里,让 store 包外的测试也可以零样板地拿到一个临时 SQLite store。
package testutil
import (
"path/filepath"
"testing"
"meshtastic_mqtt_server/internal/config"
"meshtastic_mqtt_server/internal/store"
)
// OpenStore 返回一个写在 t.TempDir() 中的临时 SQLite store。
// 测试结束时调用方需要 defer st.Close()。
func OpenStore(t *testing.T) *store.Store {
t.Helper()
st, err := store.OpenStore(config.DatabaseConfig{
Driver: config.DriverSQLite,
SQLite: config.SQLiteConfig{Path: filepath.Join(t.TempDir(), "mesh_mqtt_go.db")},
}, false)
if err != nil {
t.Fatalf("OpenStore() error = %v", err)
}
return st
}