Files
MyGoNavi/internal/app/methods_db_oracle_i18n_test.go
Syngnat 88b427c41a 🔥 remove(go-test): 删除后端读取源码文本断言的测试函数
- 移除 99 个仅读取同包 .go 源码做字符串包含断言的测试函数,共 3746 行
- 判据为函数内出现 os.ReadFile 读取 .go 文件且剥离字符串字面量后不调用任何生产代码
- 保留 2 个同时调用生产接口的测试函数,清理 45 个文件中失去引用的 import
- go build、go vet 通过,测试失败集合由 40 项减至 39 项且无新增,减少项为已长期失败的墓碑用例
2026-07-26 21:37:22 +08:00

95 lines
3.4 KiB
Go

package app
import (
"strings"
"testing"
"GoNavi-Wails/internal/connection"
"GoNavi-Wails/shared/i18n"
)
type fakeOracleMetadataDB struct {
rows []map[string]interface{}
fields []string
err error
}
func (db *fakeOracleMetadataDB) Connect(config connection.ConnectionConfig) error { return nil }
func (db *fakeOracleMetadataDB) Close() error { return nil }
func (db *fakeOracleMetadataDB) Ping() error { return nil }
func (db *fakeOracleMetadataDB) Query(query string) ([]map[string]interface{}, []string, error) {
return db.rows, db.fields, db.err
}
func (db *fakeOracleMetadataDB) Exec(query string) (int64, error) { return 0, nil }
func (db *fakeOracleMetadataDB) GetDatabases() ([]string, error) { return nil, nil }
func (db *fakeOracleMetadataDB) GetTables(dbName string) ([]string, error) {
return nil, nil
}
func (db *fakeOracleMetadataDB) GetCreateStatement(dbName, tableName string) (string, error) {
return "", nil
}
func (db *fakeOracleMetadataDB) GetColumns(dbName, tableName string) ([]connection.ColumnDefinition, error) {
return nil, nil
}
func (db *fakeOracleMetadataDB) GetAllColumns(dbName string) ([]connection.ColumnDefinitionWithTable, error) {
return nil, nil
}
func (db *fakeOracleMetadataDB) GetIndexes(dbName, tableName string) ([]connection.IndexDefinition, error) {
return nil, nil
}
func (db *fakeOracleMetadataDB) GetForeignKeys(dbName, tableName string) ([]connection.ForeignKeyDefinition, error) {
return nil, nil
}
func (db *fakeOracleMetadataDB) GetTriggers(dbName, tableName string) ([]connection.TriggerDefinition, error) {
return nil, nil
}
func TestMethodsDBOracleMetadataCatalogKeysExist(t *testing.T) {
catalogs, err := i18n.LoadCatalogs()
if err != nil {
t.Fatalf("LoadCatalogs() error = %v", err)
}
for _, language := range i18n.SupportedLanguages() {
if strings.TrimSpace(catalogs[language]["db.backend.error.column_definitions_missing"]) == "" {
t.Fatalf("%s catalog missing Oracle metadata key %q", language, "db.backend.error.column_definitions_missing")
}
}
}
func TestMethodsDBOracleMetadataUsesEnglishMessages(t *testing.T) {
app := NewAppWithSecretStore(newFakeAppSecretStore())
app.configDir = t.TempDir()
app.SetLanguage(string(i18n.LanguageEnUS))
t.Run("dictionary fallback missing columns", func(t *testing.T) {
_, err := inferOracleColumnsFromDictionary(&fakeOracleMetadataDB{}, "APP", "ORDERS", app.appText)
if err == nil {
t.Fatal("expected inferOracleColumnsFromDictionary to fail")
}
if got, want := err.Error(), "No column definitions were returned"; got != want {
t.Fatalf("expected %q, got %q", want, got)
}
})
t.Run("empty select requires table name", func(t *testing.T) {
_, err := inferOracleColumnsFromEmptySelect(&fakeOracleMetadataDB{}, "APP", " ", app.appText)
if err == nil {
t.Fatal("expected inferOracleColumnsFromEmptySelect to fail")
}
if got, want := err.Error(), "Table name is required"; got != want {
t.Fatalf("expected %q, got %q", want, got)
}
})
t.Run("empty select missing fields", func(t *testing.T) {
_, err := inferOracleColumnsFromEmptySelect(&fakeOracleMetadataDB{}, "APP", "ORDERS", app.appText)
if err == nil {
t.Fatal("expected inferOracleColumnsFromEmptySelect to fail")
}
if got, want := err.Error(), "No column definitions were returned"; got != want {
t.Fatalf("expected %q, got %q", want, got)
}
})
}