Skip to content

Commit 13a6ff0

Browse files
author
tpfz
committed
add ut
1 parent 44b0eab commit 13a6ff0

File tree

5 files changed

+1577
-861
lines changed

5 files changed

+1577
-861
lines changed

backend/modules/evaluation/domain/service/evaluator_impl_test.go

Lines changed: 212 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2019,11 +2019,159 @@ func TestEvaluatorServiceImpl_ListBuiltinEvaluator(t *testing.T) {
20192019
expectedErr: nil,
20202020
},
20212021
{
2022-
name: "成功 - 带版本信息 (WithVersion = true)",
2022+
name: "成功 - 带BuiltinVisibleVersion并回填版本信息",
20232023
request: &entity.ListBuiltinEvaluatorRequest{
2024-
PageSize: 10,
2025-
PageNum: 1,
2026-
WithVersion: true,
2024+
PageSize: 10,
2025+
PageNum: 1,
2026+
},
2027+
setupMock: func(mockRepo *repomocks.MockIEvaluatorRepo) {
2028+
expectedRepoReq := &repo.ListBuiltinEvaluatorRequest{
2029+
PageSize: 10,
2030+
PageNum: 1,
2031+
IncludeDeleted: false,
2032+
FilterOption: nil,
2033+
}
2034+
// 模拟返回有BuiltinVisibleVersion的评估器元数据
2035+
mockRepo.EXPECT().ListBuiltinEvaluator(gomock.Any(), gomock.Eq(expectedRepoReq)).Return(
2036+
&repo.ListBuiltinEvaluatorResponse{
2037+
Evaluators: []*entity.Evaluator{
2038+
{
2039+
ID: 1,
2040+
Name: "BuiltinEval1",
2041+
SpaceID: 1,
2042+
Description: "Builtin Desc1",
2043+
BuiltinVisibleVersion: "1.0.0",
2044+
EvaluatorType: entity.EvaluatorTypePrompt,
2045+
},
2046+
{
2047+
ID: 2,
2048+
Name: "BuiltinEval2",
2049+
SpaceID: 1,
2050+
Description: "Builtin Desc2",
2051+
BuiltinVisibleVersion: "2.0.0",
2052+
EvaluatorType: entity.EvaluatorTypeCode,
2053+
},
2054+
},
2055+
TotalCount: 2,
2056+
}, nil)
2057+
2058+
// 模拟批量查询版本信息
2059+
mockRepo.EXPECT().BatchGetEvaluatorVersionsByEvaluatorIDAndVersions(gomock.Any(), [][2]interface{}{
2060+
{int64(1), "1.0.0"},
2061+
{int64(2), "2.0.0"},
2062+
}).Return([]*entity.Evaluator{
2063+
{
2064+
ID: 1,
2065+
EvaluatorType: entity.EvaluatorTypePrompt,
2066+
PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{
2067+
EvaluatorID: 1,
2068+
Version: "1.0.0",
2069+
MessageList: []*entity.Message{},
2070+
},
2071+
},
2072+
{
2073+
ID: 2,
2074+
EvaluatorType: entity.EvaluatorTypeCode,
2075+
CodeEvaluatorVersion: &entity.CodeEvaluatorVersion{
2076+
EvaluatorID: 2,
2077+
Version: "2.0.0",
2078+
CodeContent: "def evaluate(): pass",
2079+
},
2080+
},
2081+
}, nil)
2082+
},
2083+
expectedList: []*entity.Evaluator{
2084+
{
2085+
ID: 1,
2086+
Name: "BuiltinEval1",
2087+
SpaceID: 1,
2088+
Description: "Builtin Desc1",
2089+
BuiltinVisibleVersion: "1.0.0",
2090+
EvaluatorType: entity.EvaluatorTypePrompt,
2091+
},
2092+
{
2093+
ID: 2,
2094+
Name: "BuiltinEval2",
2095+
SpaceID: 1,
2096+
Description: "Builtin Desc2",
2097+
BuiltinVisibleVersion: "2.0.0",
2098+
EvaluatorType: entity.EvaluatorTypeCode,
2099+
},
2100+
},
2101+
expectedTotal: 2,
2102+
expectedErr: nil,
2103+
},
2104+
{
2105+
name: "成功 - 部分评估器有BuiltinVisibleVersion",
2106+
request: &entity.ListBuiltinEvaluatorRequest{
2107+
PageSize: 10,
2108+
PageNum: 1,
2109+
},
2110+
setupMock: func(mockRepo *repomocks.MockIEvaluatorRepo) {
2111+
expectedRepoReq := &repo.ListBuiltinEvaluatorRequest{
2112+
PageSize: 10,
2113+
PageNum: 1,
2114+
IncludeDeleted: false,
2115+
FilterOption: nil,
2116+
}
2117+
mockRepo.EXPECT().ListBuiltinEvaluator(gomock.Any(), gomock.Eq(expectedRepoReq)).Return(
2118+
&repo.ListBuiltinEvaluatorResponse{
2119+
Evaluators: []*entity.Evaluator{
2120+
{
2121+
ID: 1,
2122+
Name: "BuiltinEval1",
2123+
SpaceID: 1,
2124+
BuiltinVisibleVersion: "1.0.0",
2125+
EvaluatorType: entity.EvaluatorTypePrompt,
2126+
},
2127+
{
2128+
ID: 2,
2129+
Name: "BuiltinEval2",
2130+
SpaceID: 1,
2131+
BuiltinVisibleVersion: "", // 没有版本
2132+
EvaluatorType: entity.EvaluatorTypePrompt,
2133+
},
2134+
},
2135+
TotalCount: 2,
2136+
}, nil)
2137+
2138+
// 只查询有BuiltinVisibleVersion的评估器版本
2139+
mockRepo.EXPECT().BatchGetEvaluatorVersionsByEvaluatorIDAndVersions(gomock.Any(), [][2]interface{}{
2140+
{int64(1), "1.0.0"},
2141+
}).Return([]*entity.Evaluator{
2142+
{
2143+
ID: 1,
2144+
EvaluatorType: entity.EvaluatorTypePrompt,
2145+
PromptEvaluatorVersion: &entity.PromptEvaluatorVersion{
2146+
EvaluatorID: 1,
2147+
Version: "1.0.0",
2148+
},
2149+
},
2150+
}, nil)
2151+
},
2152+
expectedList: []*entity.Evaluator{
2153+
{
2154+
ID: 1,
2155+
Name: "BuiltinEval1",
2156+
SpaceID: 1,
2157+
BuiltinVisibleVersion: "1.0.0",
2158+
EvaluatorType: entity.EvaluatorTypePrompt,
2159+
},
2160+
{
2161+
ID: 2,
2162+
Name: "BuiltinEval2",
2163+
SpaceID: 1,
2164+
EvaluatorType: entity.EvaluatorTypePrompt,
2165+
},
2166+
},
2167+
expectedTotal: 2,
2168+
expectedErr: nil,
2169+
},
2170+
{
2171+
name: "成功 - 空列表",
2172+
request: &entity.ListBuiltinEvaluatorRequest{
2173+
PageSize: 10,
2174+
PageNum: 1,
20272175
},
20282176
setupMock: func(mockRepo *repomocks.MockIEvaluatorRepo) {
20292177
expectedRepoReq := &repo.ListBuiltinEvaluatorRequest{
@@ -2032,6 +2180,31 @@ func TestEvaluatorServiceImpl_ListBuiltinEvaluator(t *testing.T) {
20322180
IncludeDeleted: false,
20332181
FilterOption: nil,
20342182
}
2183+
mockRepo.EXPECT().ListBuiltinEvaluator(gomock.Any(), gomock.Eq(expectedRepoReq)).Return(
2184+
&repo.ListBuiltinEvaluatorResponse{
2185+
Evaluators: []*entity.Evaluator{},
2186+
TotalCount: 0,
2187+
}, nil)
2188+
// 空列表时不会调用BatchGetEvaluatorVersionsByEvaluatorIDAndVersions
2189+
},
2190+
expectedList: []*entity.Evaluator{},
2191+
expectedTotal: 0,
2192+
expectedErr: nil,
2193+
},
2194+
{
2195+
name: "成功 - 带筛选条件",
2196+
request: &entity.ListBuiltinEvaluatorRequest{
2197+
PageSize: 10,
2198+
PageNum: 1,
2199+
FilterOption: &entity.EvaluatorFilterOption{},
2200+
},
2201+
setupMock: func(mockRepo *repomocks.MockIEvaluatorRepo) {
2202+
expectedRepoReq := &repo.ListBuiltinEvaluatorRequest{
2203+
PageSize: 10,
2204+
PageNum: 1,
2205+
IncludeDeleted: false,
2206+
FilterOption: &entity.EvaluatorFilterOption{},
2207+
}
20352208
mockRepo.EXPECT().ListBuiltinEvaluator(gomock.Any(), gomock.Eq(expectedRepoReq)).Return(
20362209
&repo.ListBuiltinEvaluatorResponse{
20372210
Evaluators: []*entity.Evaluator{
@@ -2046,6 +2219,41 @@ func TestEvaluatorServiceImpl_ListBuiltinEvaluator(t *testing.T) {
20462219
expectedTotal: 1,
20472220
expectedErr: nil,
20482221
},
2222+
{
2223+
name: "失败 - BatchGetEvaluatorVersionsByEvaluatorIDAndVersions返回错误",
2224+
request: &entity.ListBuiltinEvaluatorRequest{
2225+
PageSize: 10,
2226+
PageNum: 1,
2227+
},
2228+
setupMock: func(mockRepo *repomocks.MockIEvaluatorRepo) {
2229+
expectedRepoReq := &repo.ListBuiltinEvaluatorRequest{
2230+
PageSize: 10,
2231+
PageNum: 1,
2232+
IncludeDeleted: false,
2233+
FilterOption: nil,
2234+
}
2235+
mockRepo.EXPECT().ListBuiltinEvaluator(gomock.Any(), gomock.Eq(expectedRepoReq)).Return(
2236+
&repo.ListBuiltinEvaluatorResponse{
2237+
Evaluators: []*entity.Evaluator{
2238+
{
2239+
ID: 1,
2240+
Name: "BuiltinEval1",
2241+
SpaceID: 1,
2242+
BuiltinVisibleVersion: "1.0.0",
2243+
EvaluatorType: entity.EvaluatorTypePrompt,
2244+
},
2245+
},
2246+
TotalCount: 1,
2247+
}, nil)
2248+
2249+
mockRepo.EXPECT().BatchGetEvaluatorVersionsByEvaluatorIDAndVersions(gomock.Any(), [][2]interface{}{
2250+
{int64(1), "1.0.0"},
2251+
}).Return(nil, errors.New("version query error"))
2252+
},
2253+
expectedList: nil,
2254+
expectedTotal: 0,
2255+
expectedErr: errors.New("version query error"),
2256+
},
20492257
{
20502258
name: "失败 - repo返回错误",
20512259
request: &entity.ListBuiltinEvaluatorRequest{

0 commit comments

Comments
 (0)