Skip to content

Commit 9655c5e

Browse files
committed
feat: extra col
1 parent cc4d471 commit 9655c5e

1 file changed

Lines changed: 154 additions & 3 deletions

File tree

  • backend/modules/observability/application/convertor/task

backend/modules/observability/application/convertor/task/task_test.go

Lines changed: 154 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"github.com/bytedance/gg/gptr"
1212
"github.com/bytedance/sonic"
1313
"github.com/stretchr/testify/assert"
14+
"github.com/stretchr/testify/require"
1415

1516
kitCommon "github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/common"
1617
"github.com/coze-dev/coze-loop/backend/kitex_gen/coze/loop/observability/domain/dataset"
@@ -219,15 +220,41 @@ func TestTaskConfigDO2DTO_EvaluationExperimentConfig(t *testing.T) {
219220
EvaluationExperimentConfig: &entity.EvaluationExperimentConfig{
220221
ItemConcurrencyCount: gptr.Of(int32(5)),
221222
ItemMaxRetryCount: gptr.Of(int32(6)),
223+
SourceTargetID: gptr.Of("target-123"),
224+
ExptTemplateID: gptr.Of(int64(999)),
225+
SourceTargetVersion: gptr.Of("v1.0"),
226+
FullEvalSetFieldMappings: []*entity.EvaluateFieldMapping{
227+
{
228+
FieldSchema: &dataset.FieldSchema{
229+
Key: gptr.Of("key1"),
230+
Name: gptr.Of("field1"),
231+
},
232+
TraceFieldKey: "Input",
233+
TraceFieldJsonpath: "$.input",
234+
EvalSetName: gptr.Of("field1"),
235+
},
236+
},
222237
},
223238
}
224239
dto := TaskConfigDO2DTO(do)
225240
if assert.NotNil(t, dto) {
226-
if assert.NotNil(t, dto.EvaluationExperimentConfig) {
227-
assert.Equal(t, int32(5), ptr.From(dto.EvaluationExperimentConfig.ItemConcurrencyCount))
228-
assert.Equal(t, int32(6), ptr.From(dto.EvaluationExperimentConfig.ItemMaxRetryCount))
241+
ec := dto.EvaluationExperimentConfig
242+
if assert.NotNil(t, ec) {
243+
assert.Equal(t, int32(5), ptr.From(ec.ItemConcurrencyCount))
244+
assert.Equal(t, int32(6), ptr.From(ec.ItemMaxRetryCount))
245+
assert.Equal(t, "target-123", ptr.From(ec.SourceTargetID))
246+
assert.Equal(t, int64(999), ptr.From(ec.ExptTemplateID))
247+
assert.Equal(t, "v1.0", ptr.From(ec.SourceTargetVersion))
248+
if assert.Len(t, ec.FullEvalSetFieldMappings, 1) {
249+
fm := ec.FullEvalSetFieldMappings[0]
250+
assert.Equal(t, "Input", fm.TraceFieldKey)
251+
assert.Equal(t, "$.input", fm.TraceFieldJsonpath)
252+
assert.Equal(t, "field1", ptr.From(fm.EvalSetName))
253+
}
229254
}
230255
}
256+
257+
assert.Nil(t, EvaluationExperimentConfigDO2DTO(nil))
231258
}
232259

233260
func TestTaskDTO2DO(t *testing.T) {
@@ -429,3 +456,127 @@ func TestSpanFilterDTO2DO(t *testing.T) {
429456
}
430457
})
431458
}
459+
460+
func TestSourceInfoListDTO2DO(t *testing.T) {
461+
t.Parallel()
462+
463+
t.Run("nil input returns nil", func(t *testing.T) {
464+
t.Parallel()
465+
assert.Nil(t, SourceInfoListDTO2DO(nil))
466+
})
467+
468+
t.Run("empty input returns nil", func(t *testing.T) {
469+
t.Parallel()
470+
assert.Nil(t, SourceInfoListDTO2DO([]*kitTask.SourceInfo{}))
471+
})
472+
473+
t.Run("skips nil elements", func(t *testing.T) {
474+
t.Parallel()
475+
result := SourceInfoListDTO2DO([]*kitTask.SourceInfo{
476+
nil,
477+
{Name: gptr.Of("svc"), Version: gptr.Of("v1")},
478+
})
479+
if assert.Len(t, result, 1) {
480+
assert.Equal(t, "svc", ptr.From(result[0].Name))
481+
assert.Equal(t, "v1", ptr.From(result[0].Version))
482+
}
483+
})
484+
485+
t.Run("normal conversion", func(t *testing.T) {
486+
t.Parallel()
487+
result := SourceInfoListDTO2DO([]*kitTask.SourceInfo{
488+
{Name: gptr.Of("a"), Version: gptr.Of("1.0")},
489+
{Name: gptr.Of("b"), Version: gptr.Of("2.0")},
490+
})
491+
if assert.Len(t, result, 2) {
492+
assert.Equal(t, "a", ptr.From(result[0].Name))
493+
assert.Equal(t, "1.0", ptr.From(result[0].Version))
494+
assert.Equal(t, "b", ptr.From(result[1].Name))
495+
assert.Equal(t, "2.0", ptr.From(result[1].Version))
496+
}
497+
})
498+
}
499+
500+
func TestTaskConfigDTO2DO_FullEvalSetAndSourceInfo(t *testing.T) {
501+
t.Parallel()
502+
503+
schema := &dataset.FieldSchema{
504+
Key: gptr.Of("output_key"),
505+
Name: gptr.Of("Output"),
506+
ContentType: gptr.Of("Text"),
507+
}
508+
509+
dto := &kitTask.TaskConfig{
510+
AutoEvaluateConfigs: []*kitTask.AutoEvaluateConfig{
511+
{
512+
EvaluatorVersionID: 1,
513+
EvaluatorID: 2,
514+
FieldMappings: []*kitTask.EvaluateFieldMapping{
515+
{
516+
FieldSchema: schema,
517+
TraceFieldKey: "Input",
518+
TraceFieldJsonpath: "$.input",
519+
EvalSetName: gptr.Of("input_field"),
520+
},
521+
},
522+
},
523+
},
524+
EvaluationExperimentConfig: &kitTask.EvaluationExperimentConfig{
525+
ItemConcurrencyCount: gptr.Of(int32(5)),
526+
ItemMaxRetryCount: gptr.Of(int32(3)),
527+
ExptTemplateID: gptr.Of(int64(888)),
528+
SourceTargetID: gptr.Of("target-1"),
529+
SourceTargetVersion: gptr.Of("v2"),
530+
FullEvalSetFieldMappings: []*kitTask.EvaluateFieldMapping{
531+
{
532+
FieldSchema: schema,
533+
TraceFieldKey: "Output",
534+
TraceFieldJsonpath: "$.output",
535+
EvalSetName: gptr.Of("output_field"),
536+
},
537+
{
538+
FieldSchema: schema,
539+
TraceFieldKey: "Output",
540+
TraceFieldJsonpath: "$.output",
541+
},
542+
},
543+
},
544+
SourceInfo: []*kitTask.SourceInfo{
545+
{Name: gptr.Of("my-service"), Version: gptr.Of("1.0.0")},
546+
},
547+
IsWorkflowScheduled: gptr.Of(true),
548+
}
549+
550+
cfg := TaskConfigDTO2DO(dto)
551+
require.NotNil(t, cfg)
552+
553+
ec := cfg.EvaluationExperimentConfig
554+
if assert.NotNil(t, ec) {
555+
assert.Equal(t, int32(5), ptr.From(ec.ItemConcurrencyCount))
556+
assert.Equal(t, int32(3), ptr.From(ec.ItemMaxRetryCount))
557+
assert.Equal(t, int64(888), ptr.From(ec.ExptTemplateID))
558+
assert.Equal(t, "target-1", ptr.From(ec.SourceTargetID))
559+
assert.Equal(t, "v2", ptr.From(ec.SourceTargetVersion))
560+
if assert.Len(t, ec.FullEvalSetFieldMappings, 2) {
561+
assert.Equal(t, "output_field", ptr.From(ec.FullEvalSetFieldMappings[0].EvalSetName))
562+
assert.Equal(t, "output", ptr.From(ec.FullEvalSetFieldMappings[0].DatasetKey))
563+
assert.Equal(t, "output", ptr.From(ec.FullEvalSetFieldMappings[1].DatasetKey))
564+
}
565+
}
566+
567+
if assert.Len(t, cfg.SourceInfo, 1) {
568+
assert.Equal(t, "my-service", ptr.From(cfg.SourceInfo[0].Name))
569+
assert.Equal(t, "1.0.0", ptr.From(cfg.SourceInfo[0].Version))
570+
}
571+
572+
assert.Equal(t, true, ptr.From(cfg.IsWorkflowScheduled))
573+
574+
if assert.Len(t, cfg.AutoEvaluateConfigs, 1) {
575+
fm := cfg.AutoEvaluateConfigs[0].FieldMappings
576+
if assert.Len(t, fm, 1) {
577+
assert.Equal(t, "input_field", ptr.From(fm[0].EvalSetName))
578+
}
579+
}
580+
581+
assert.Nil(t, TaskConfigDTO2DO(nil))
582+
}

0 commit comments

Comments
 (0)