From 67d28dd7d51887957b2409942191bc295ae474c2 Mon Sep 17 00:00:00 2001 From: "zhuangjie.1125" Date: Wed, 3 Sep 2025 17:14:36 +0800 Subject: [PATCH] feat: fix ut --- .../api/handler/coze/workflow_service_test.go | 6 +- backend/crossdomain/contract/upload/upload.go | 1 + .../contract/upload/uploadmock/upload_mock.go | 88 +++++++++++++++++++ .../internal/canvas/adaptor/canvas_test.go | 14 ++- .../nodes/knowledge/knowledge_indexer.go | 2 +- 5 files changed, 105 insertions(+), 6 deletions(-) create mode 100644 backend/crossdomain/contract/upload/uploadmock/upload_mock.go diff --git a/backend/api/handler/coze/workflow_service_test.go b/backend/api/handler/coze/workflow_service_test.go index 3806995bb..5bb78c3da 100644 --- a/backend/api/handler/coze/workflow_service_test.go +++ b/backend/api/handler/coze/workflow_service_test.go @@ -2454,7 +2454,7 @@ func TestStartNodeDefaultValues(t *testing.T) { result, _ := r.openapiSyncRun(idStr, input) assert.Equal(t, result, map[string]any{ "ts": "2025-07-09 21:43:34", - "files": "http://imagex.fanlv.fun/tos-cn-i-1heqlfnr21/e81acc11277f421390770618e24e01ce.jpeg~tplv-1heqlfnr21-image.image?x-wf-file_name=20250317-154742.jpeg", + "files": "http://imagex.fanlv.fun/tos-cn-i-1heqlfnr21/e81acc11277f421390770618e24e01ce.jpeg~tplv-1heqlfnr21-image.image", "str": "str", "object": map[string]any{ "a": "1", @@ -2478,7 +2478,7 @@ func TestStartNodeDefaultValues(t *testing.T) { result, _ := r.openapiSyncRun(idStr, input) assert.Equal(t, result, map[string]any{ "ts": "2025-07-09 21:43:34", - "files": "http://imagex.fanlv.fun/tos-cn-i-1heqlfnr21/e81acc11277f421390770618e24e01ce.jpeg~tplv-1heqlfnr21-image.image?x-wf-file_name=20250317-154742.jpeg", + "files": "http://imagex.fanlv.fun/tos-cn-i-1heqlfnr21/e81acc11277f421390770618e24e01ce.jpeg~tplv-1heqlfnr21-image.image", "str": "str", "object": map[string]any{ "a": "1", @@ -2503,7 +2503,7 @@ func TestStartNodeDefaultValues(t *testing.T) { result, _ := r.openapiSyncRun(idStr, input) assert.Equal(t, result, map[string]any{ "ts": "2025-07-09 21:43:34", - "files": "http://imagex.fanlv.fun/tos-cn-i-1heqlfnr21/e81acc11277f421390770618e24e01ce.jpeg~tplv-1heqlfnr21-image.image?x-wf-file_name=20250317-154742.jpeg", + "files": "http://imagex.fanlv.fun/tos-cn-i-1heqlfnr21/e81acc11277f421390770618e24e01ce.jpeg~tplv-1heqlfnr21-image.image", "str": "value", "object": map[string]any{ "a": "1", diff --git a/backend/crossdomain/contract/upload/upload.go b/backend/crossdomain/contract/upload/upload.go index 539334e44..df8743035 100644 --- a/backend/crossdomain/contract/upload/upload.go +++ b/backend/crossdomain/contract/upload/upload.go @@ -24,6 +24,7 @@ import ( var defaultSVC Uploader +//go:generate mockgen -destination uploadmock/upload_mock.go --package uploadmock -source upload.go type Uploader interface { GetFile(ctx context.Context, req *service.GetFileRequest) (resp *service.GetFileResponse, err error) GetFileTagging(ctx context.Context, req *service.GetFileTaggingRequest) (resp *service.GetFileTaggingResponse, err error) diff --git a/backend/crossdomain/contract/upload/uploadmock/upload_mock.go b/backend/crossdomain/contract/upload/uploadmock/upload_mock.go new file mode 100644 index 000000000..d9d1d7f2f --- /dev/null +++ b/backend/crossdomain/contract/upload/uploadmock/upload_mock.go @@ -0,0 +1,88 @@ +/* + * Copyright 2025 coze-dev Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Code generated by MockGen. DO NOT EDIT. +// Source: upload.go +// +// Generated by this command: +// +// mockgen -destination uploadmock/upload_mock.go --package uploadmock -source upload.go +// + +// Package uploadmock is a generated GoMock package. +package uploadmock + +import ( + context "context" + reflect "reflect" + + service "github.com/coze-dev/coze-studio/backend/domain/upload/service" + gomock "go.uber.org/mock/gomock" +) + +// MockUploader is a mock of Uploader interface. +type MockUploader struct { + ctrl *gomock.Controller + recorder *MockUploaderMockRecorder + isgomock struct{} +} + +// MockUploaderMockRecorder is the mock recorder for MockUploader. +type MockUploaderMockRecorder struct { + mock *MockUploader +} + +// NewMockUploader creates a new mock instance. +func NewMockUploader(ctrl *gomock.Controller) *MockUploader { + mock := &MockUploader{ctrl: ctrl} + mock.recorder = &MockUploaderMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockUploader) EXPECT() *MockUploaderMockRecorder { + return m.recorder +} + +// GetFile mocks base method. +func (m *MockUploader) GetFile(ctx context.Context, req *service.GetFileRequest) (*service.GetFileResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFile", ctx, req) + ret0, _ := ret[0].(*service.GetFileResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFile indicates an expected call of GetFile. +func (mr *MockUploaderMockRecorder) GetFile(ctx, req any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFile", reflect.TypeOf((*MockUploader)(nil).GetFile), ctx, req) +} + +// GetFileTagging mocks base method. +func (m *MockUploader) GetFileTagging(ctx context.Context, req *service.GetFileTaggingRequest) (*service.GetFileTaggingResponse, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetFileTagging", ctx, req) + ret0, _ := ret[0].(*service.GetFileTaggingResponse) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetFileTagging indicates an expected call of GetFileTagging. +func (mr *MockUploaderMockRecorder) GetFileTagging(ctx, req any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFileTagging", reflect.TypeOf((*MockUploader)(nil).GetFileTagging), ctx, req) +} diff --git a/backend/domain/workflow/internal/canvas/adaptor/canvas_test.go b/backend/domain/workflow/internal/canvas/adaptor/canvas_test.go index e114d8929..e663679e9 100644 --- a/backend/domain/workflow/internal/canvas/adaptor/canvas_test.go +++ b/backend/domain/workflow/internal/canvas/adaptor/canvas_test.go @@ -18,6 +18,10 @@ package adaptor import ( "context" + crossupload "github.com/coze-dev/coze-studio/backend/crossdomain/contract/upload" + "github.com/coze-dev/coze-studio/backend/crossdomain/contract/upload/uploadmock" + "github.com/coze-dev/coze-studio/backend/domain/upload/service" + "github.com/coze-dev/coze-studio/backend/types/consts" "io" "net" "net/http" @@ -57,7 +61,6 @@ import ( "github.com/coze-dev/coze-studio/backend/internal/testutil" "github.com/coze-dev/coze-studio/backend/pkg/ctxcache" "github.com/coze-dev/coze-studio/backend/pkg/sonic" - "github.com/coze-dev/coze-studio/backend/types/consts" ) func TestMain(m *testing.M) { @@ -709,7 +712,14 @@ func TestKnowledgeDeleter(t *testing.T) { assert.NoError(t, err) ctrl := gomock.NewController(t) defer ctrl.Finish() - + mockUpload := uploadmock.NewMockUploader(ctrl) + mockUpload.EXPECT().GetFileTagging(gomock.Any(), gomock.Any()).Return(&service.GetFileTaggingResponse{ + Tagging: map[string]string{ + "filename": "1706.03762v7.pdf", + "file_ext": ".pdf", + }, + }, nil) + crossupload.SetDefaultSVC(mockUpload) mockKnowledgeOperator := knowledgemock.NewMockKnowledge(ctrl) crossknowledge.SetDefaultSVC(mockKnowledgeOperator) diff --git a/backend/domain/workflow/internal/nodes/knowledge/knowledge_indexer.go b/backend/domain/workflow/internal/nodes/knowledge/knowledge_indexer.go index c3cb0999d..30a346693 100644 --- a/backend/domain/workflow/internal/nodes/knowledge/knowledge_indexer.go +++ b/backend/domain/workflow/internal/nodes/knowledge/knowledge_indexer.go @@ -199,7 +199,7 @@ func parseToFileNameAndFileExtension(ctx context.Context, fileURL string) (strin if len(fileExt) == 0 { fileExt = strings.TrimPrefix(filepath.Ext(fileURI), ".") } - ext, support := parser.ValidateFileExtension(fileExt) + ext, support := parser.ValidateFileExtension(strings.TrimPrefix(fileExt, ".")) if !support { return "", "", fmt.Errorf("unsupported file type: %s", fileExt) }