You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2022/06/22 12:32:51 UTC

[incubator-devlake] branch main updated: e2e on tapd worklog

This is an automated email from the ASF dual-hosted git repository.

abeizn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new 81c181d7 e2e on tapd worklog
81c181d7 is described below

commit 81c181d70217c67519507165562ce48f12f52e76
Author: abeizn <zi...@merico.dev>
AuthorDate: Wed Jun 22 19:57:18 2022 +0800

    e2e on tapd worklog
---
 .../e2e/snapshot_tables/_tool_tapd_worklogs.csv    | 17 ++++
 .../tapd/e2e/snapshot_tables/issue_worklogs.csv    | 17 ++++
 plugins/tapd/e2e/worklog_test.go                   | 91 ++++++++++++++++++++++
 plugins/tapd/tasks/worklog_converter.go            |  3 +-
 4 files changed, 127 insertions(+), 1 deletion(-)

diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_worklogs.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_worklogs.csv
new file mode 100644
index 00000000..f4f1e7ea
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_worklogs.csv
@@ -0,0 +1,17 @@
+connection_id,id,workspace_id,entity_type,entity_id,timespent,spentdate,owner,created,memo,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,11991001000026,991,task,11991001000103,8,2019-12-15T16:00:00.000+00:00,test-11test-11test-11,2019-12-16T08:10:25.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,1,
+1,11991001000031,991,task,11991001000099,8,2019-12-16T16:00:00.000+00:00,test-11test-11test-11,2019-12-17T09:16:07.000+00:00,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,2,
+1,11991001000032,991,task,11991001000107,8,2019-12-16T16:00:00.000+00:00,test-11test-11test-11,2019-12-17T09:16:51.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,3,
+1,11991001000033,991,task,11991001000104,8,2019-12-16T16:00:00.000+00:00,test-11test-11test-11,2019-12-17T09:18:22.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,4,
+1,11991001000034,991,task,11991001000101,8,2019-12-16T16:00:00.000+00:00,test-11test-11test-11,2019-12-17T09:25:04.000+00:00,"test-11test-11test-11test-11test-11test-11test-11test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11 WCMStest-11test-11test-11test-11test-11test-11test-11test-11test-11tes [...]
+1,11991001000038,991,task,11991001000178,8,2019-12-16T16:00:00.000+00:00,test-11test-11test-11,2019-12-17T09:32:53.000+00:00,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,6,
+1,11991001000043,991,task,11991001000140,8,2019-12-16T16:00:00.000+00:00,test-11test-11,2019-12-17T09:52:24.000+00:00,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,7,
+1,11991001000044,991,task,11991001000189,8,2019-12-16T16:00:00.000+00:00,test-11test-11test-11,2019-12-17T09:55:14.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,8,
+1,11991001000045,991,task,11991001000110,3,2019-12-15T16:00:00.000+00:00,test-11test-11test-11,2019-12-17T10:08:35.000+00:00,test-11test-11 - test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,9,
+1,11991001000046,991,task,11991001000110,8,2019-12-15T16:00:00.000+00:00,test-11test-11,2019-12-17T10:14:12.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,10,
+1,11991001000047,991,task,11991001000112,8,2019-12-16T16:00:00.000+00:00,test-11test-11,2019-12-17T10:16:21.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,11,
+1,11991001000048,991,task,11991001000164,8,2019-12-16T16:00:00.000+00:00,test-11test-11,2019-12-17T10:44:34.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11.,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,12,
+1,11991001000049,991,task,11991001000156,8,2019-12-16T16:00:00.000+00:00,test-11test-11test-11,2019-12-17T10:44:55.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,13,
+1,11991001000050,991,task,11991001000209,8,2019-12-16T16:00:00.000+00:00,test-11test-11,2019-12-17T10:45:37.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,14,
+1,11991001000051,991,task,11991001000171,8,2019-12-16T16:00:00.000+00:00,test-11test-11,2019-12-17T10:47:15.000+00:00,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,15,
+1,11991001000055,991,task,11991001000195,8,2019-12-16T16:00:00.000+00:00,test-11test-11,2019-12-17T11:11:18.000+00:00,,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,16,
diff --git a/plugins/tapd/e2e/snapshot_tables/issue_worklogs.csv b/plugins/tapd/e2e/snapshot_tables/issue_worklogs.csv
new file mode 100644
index 00000000..d0231449
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/issue_worklogs.csv
@@ -0,0 +1,17 @@
+id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark,author_id,comment,time_spent_minutes,logged_date,started_date,issue_id
+tapd:TapdWorklog:1:11991001000026,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,1,,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-16T08:10:25.000+00:00,,
+tapd:TapdWorklog:1:11991001000031,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,2,,tapd:TapdUser:1:991:test-11test-11test-11,,8,2019-12-17T09:16:07.000+00:00,,
+tapd:TapdWorklog:1:11991001000032,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,3,,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-17T09:16:51.000+00:00,,
+tapd:TapdWorklog:1:11991001000033,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,4,,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-17T09:18:22.000+00:00,,
+tapd:TapdWorklog:1:11991001000034,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,5,,tapd:TapdUser:1:991:test-11test-11test-11,"test-11test-11test-11test-11test-11test-11test-11test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11 WCMStest-11test-11test-11test-11t [...]
+tapd:TapdWorklog:1:11991001000038,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,6,,tapd:TapdUser:1:991:test-11test-11test-11,,8,2019-12-17T09:32:53.000+00:00,,
+tapd:TapdWorklog:1:11991001000043,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,7,,tapd:TapdUser:1:991:test-11test-11,,8,2019-12-17T09:52:24.000+00:00,,
+tapd:TapdWorklog:1:11991001000044,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,8,,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-17T09:55:14.000+00:00,,
+tapd:TapdWorklog:1:11991001000045,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,9,,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11 - test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,3,2019-12-17T10:08:35.000+00:00,,
+tapd:TapdWorklog:1:11991001000046,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,10,,tapd:TapdUser:1:991:test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-17T10:14:12.000+00:00,,
+tapd:TapdWorklog:1:11991001000047,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,11,,tapd:TapdUser:1:991:test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-17T10:16:21.000+00:00,,
+tapd:TapdWorklog:1:11991001000048,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,12,,tapd:TapdUser:1:991:test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11.,8,2019-12-17T10:44:34.000+00:00,,
+tapd:TapdWorklog:1:11991001000049,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,13,,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-17T10:44:55.000+00:00,,
+tapd:TapdWorklog:1:11991001000050,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,14,,tapd:TapdUser:1:991:test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-17T10:45:37.000+00:00,,
+tapd:TapdWorklog:1:11991001000051,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,15,,tapd:TapdUser:1:991:test-11test-11,test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11test-11,8,2019-12-17T10:47:15.000+00:00,,
+tapd:TapdWorklog:1:11991001000055,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_worklogs,16,,tapd:TapdUser:1:991:test-11test-11,,8,2019-12-17T11:11:18.000+00:00,,
diff --git a/plugins/tapd/e2e/worklog_test.go b/plugins/tapd/e2e/worklog_test.go
new file mode 100644
index 00000000..db6bec0a
--- /dev/null
+++ b/plugins/tapd/e2e/worklog_test.go
@@ -0,0 +1,91 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You 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.
+*/
+
+package e2e
+
+import (
+	"fmt"
+	"testing"
+
+	"github.com/apache/incubator-devlake/models/domainlayer/ticket"
+
+	"github.com/apache/incubator-devlake/helpers/e2ehelper"
+	"github.com/apache/incubator-devlake/plugins/tapd/impl"
+	"github.com/apache/incubator-devlake/plugins/tapd/models"
+	"github.com/apache/incubator-devlake/plugins/tapd/tasks"
+)
+
+func TestTapdWorklogDataFlow(t *testing.T) {
+
+	var tapd impl.Tapd
+	dataflowTester := e2ehelper.NewDataFlowTester(t, "tapd", tapd)
+
+	taskData := &tasks.TapdTaskData{
+		Options: &tasks.TapdOptions{
+			ConnectionId: 1,
+			CompanyId:    99,
+			WorkspaceId:  991,
+		},
+	}
+	// import raw data table
+	dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_worklogs.csv",
+		"_raw_tapd_api_worklogs")
+
+	// verify extraction
+	dataflowTester.FlushTabler(&models.TapdWorklog{})
+	dataflowTester.Subtask(tasks.ExtractWorklogMeta, taskData)
+	dataflowTester.VerifyTable(
+		models.TapdWorklog{},
+		fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdWorklog{}.TableName()),
+		[]string{"connection_id", "id"},
+		[]string{
+			"workspace_id",
+			"entity_type",
+			"entity_id",
+			"timespent",
+			"spentdate",
+			"owner",
+			"created",
+			"memo",
+			"_raw_data_params",
+			"_raw_data_table",
+			"_raw_data_id",
+			"_raw_data_remark",
+		},
+	)
+
+	dataflowTester.FlushTabler(&ticket.IssueWorklog{})
+	dataflowTester.Subtask(tasks.ConvertWorklogMeta, taskData)
+	dataflowTester.VerifyTable(
+		ticket.IssueWorklog{},
+		fmt.Sprintf("./snapshot_tables/%s.csv", ticket.IssueWorklog{}.TableName()),
+		[]string{"id"},
+		[]string{
+			"_raw_data_params",
+			"_raw_data_table",
+			"_raw_data_id",
+			"_raw_data_remark",
+			"author_id",
+			"comment",
+			"time_spent_minutes",
+			"logged_date",
+			"started_date",
+			"issue_id",
+		},
+	)
+
+}
diff --git a/plugins/tapd/tasks/worklog_converter.go b/plugins/tapd/tasks/worklog_converter.go
index 73184bec..1a797518 100644
--- a/plugins/tapd/tasks/worklog_converter.go
+++ b/plugins/tapd/tasks/worklog_converter.go
@@ -36,6 +36,7 @@ func ConvertWorklog(taskCtx core.SubTaskContext) error {
 	db := taskCtx.GetDal()
 	logger.Info("convert board:%d", data.Options.WorkspaceId)
 	worklogIdGen := didgen.NewDomainIdGenerator(&models.TapdWorklog{})
+	userIdGen := didgen.NewDomainIdGenerator(&models.TapdUser{})
 	clauses := []dal.Clause{
 		dal.From(&models.TapdWorklog{}),
 		dal.Where("connection_id = ? AND workspace_id = ?", data.Options.ConnectionId, data.Options.WorkspaceId),
@@ -56,7 +57,7 @@ func ConvertWorklog(taskCtx core.SubTaskContext) error {
 				DomainEntity: domainlayer.DomainEntity{
 					Id: worklogIdGen.Generate(data.Options.ConnectionId, toolL.Id),
 				},
-				AuthorId:         UserIdGen.Generate(data.Options.ConnectionId, toolL.WorkspaceId, toolL.Owner),
+				AuthorId:         userIdGen.Generate(data.Options.ConnectionId, toolL.WorkspaceId, toolL.Owner),
 				Comment:          toolL.Memo,
 				TimeSpentMinutes: int(toolL.Timespent),
 				LoggedDate:       (*time.Time)(toolL.Created),