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 <[email protected]>
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),

Reply via email to