mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-10 17:26:38 +08:00
refactor(repository): 收敛 model/repository 分层为唯一持久化入口
将 OpenFlare 与平台业务的数据访问从 model 与 apps 直连迁入 repository, model 仅保留实体与无 IO 规则;补充 code-check 架构守卫与开发规范。
This commit is contained in:
@@ -11,6 +11,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/Rain-kl/Wavelet/internal/repository"
|
||||
|
||||
db "github.com/Rain-kl/Wavelet/internal/infra/persistence"
|
||||
"github.com/Rain-kl/Wavelet/internal/model"
|
||||
"github.com/glebarez/sqlite"
|
||||
@@ -32,7 +34,7 @@ func setupIPGroupSyncTestDB(t *testing.T) func() {
|
||||
))
|
||||
|
||||
db.SetDB(sqliteDB)
|
||||
resetAccessLogStore := model.SetAccessLogStoreForTest(model.NewMemoryAccessLogStore())
|
||||
resetAccessLogStore := repository.SetAccessLogStoreForTest(repository.NewMemoryAccessLogStore())
|
||||
return func() {
|
||||
resetAccessLogStore()
|
||||
db.SetDB(nil)
|
||||
@@ -161,28 +163,28 @@ func TestListDueOpenFlareWAFIPGroups(t *testing.T) {
|
||||
Name: "due auto", Type: wafIPGroupTypeAutomatic, Enabled: true,
|
||||
IPList: "[]", AutoConfig: "{}", ExtIPs: "[]", NextSyncAt: &past,
|
||||
}
|
||||
require.NoError(t, model.CreateOpenFlareWAFIPGroup(ctx, dueAuto))
|
||||
require.NoError(t, repository.CreateOpenFlareWAFIPGroup(ctx, dueAuto))
|
||||
|
||||
futureAuto := &model.OpenFlareWAFIPGroup{
|
||||
Name: "future auto", Type: wafIPGroupTypeAutomatic, Enabled: true,
|
||||
IPList: "[]", AutoConfig: "{}", ExtIPs: "[]", NextSyncAt: &future,
|
||||
}
|
||||
require.NoError(t, model.CreateOpenFlareWAFIPGroup(ctx, futureAuto))
|
||||
require.NoError(t, repository.CreateOpenFlareWAFIPGroup(ctx, futureAuto))
|
||||
|
||||
dueSub := &model.OpenFlareWAFIPGroup{
|
||||
Name: "due sub", Type: wafIPGroupTypeSubscription, Enabled: true,
|
||||
IPList: "[]", AutoConfig: "{}", ExtIPs: "[]",
|
||||
SubscriptionURL: "https://example.com/list", NextSyncAt: &past,
|
||||
}
|
||||
require.NoError(t, model.CreateOpenFlareWAFIPGroup(ctx, dueSub))
|
||||
require.NoError(t, repository.CreateOpenFlareWAFIPGroup(ctx, dueSub))
|
||||
|
||||
manual := &model.OpenFlareWAFIPGroup{
|
||||
Name: "manual", Type: wafIPGroupTypeManual, Enabled: true,
|
||||
IPList: "[]", AutoConfig: "{}", ExtIPs: "[]", NextSyncAt: &past,
|
||||
}
|
||||
require.NoError(t, model.CreateOpenFlareWAFIPGroup(ctx, manual))
|
||||
require.NoError(t, repository.CreateOpenFlareWAFIPGroup(ctx, manual))
|
||||
|
||||
groups, err := model.ListDueOpenFlareWAFIPGroups(ctx, time.Now().UTC())
|
||||
groups, err := repository.ListDueOpenFlareWAFIPGroups(ctx, time.Now().UTC())
|
||||
require.NoError(t, err)
|
||||
require.Len(t, groups, 2)
|
||||
ids := []uint{groups[0].ID, groups[1].ID}
|
||||
@@ -207,7 +209,7 @@ func seedWAFAccessLogs(t *testing.T, ctx context.Context, loggedAt time.Time, re
|
||||
StatusCode: statusCode,
|
||||
})
|
||||
}
|
||||
require.NoError(t, model.InsertOpenFlareAccessLogsBatch(ctx, records))
|
||||
require.NoError(t, repository.InsertOpenFlareAccessLogsBatch(ctx, records))
|
||||
}
|
||||
|
||||
func TestParseIPGroupAutoConfigLookback(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user