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

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

commit 5e57649665c5463dbddec3facce7e606c5aa7dc1
Author: abeizn <[email protected]>
AuthorDate: Wed Jun 22 15:03:02 2022 +0800

    e2e on tapd bug_changelog
---
 plugins/tapd/e2e/bug_changelog_test.go             | 113 +++++++++++++++++++++
 .../_tool_tapd_bug_changelog_items.csv             |  14 +++
 .../snapshot_tables/_tool_tapd_bug_changelogs.csv  |  14 +++
 plugins/tapd/e2e/snapshot_tables/changelogs.csv    |  14 +++
 plugins/tapd/tasks/bug_changelog_converter.go      |   6 +-
 5 files changed, 159 insertions(+), 2 deletions(-)

diff --git a/plugins/tapd/e2e/bug_changelog_test.go 
b/plugins/tapd/e2e/bug_changelog_test.go
new file mode 100644
index 00000000..04b36285
--- /dev/null
+++ b/plugins/tapd/e2e/bug_changelog_test.go
@@ -0,0 +1,113 @@
+/*
+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"
+       "github.com/apache/incubator-devlake/models/domainlayer/ticket"
+       "testing"
+
+       "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 TestTapdBugChangelogDataFlow(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_bug_changelogs.csv",
+               "_raw_tapd_api_bug_changelogs")
+
+       // verify extraction
+       dataflowTester.FlushTabler(&models.TapdBugChangelog{})
+       dataflowTester.FlushTabler(&models.TapdBugChangelogItem{})
+       dataflowTester.Subtask(tasks.ExtractBugChangelogMeta, taskData)
+       dataflowTester.VerifyTable(
+               models.TapdBugChangelog{},
+               fmt.Sprintf("./snapshot_tables/%s.csv", 
models.TapdBugChangelog{}.TableName()),
+               []string{"connection_id", "id", "field"},
+               []string{
+                       "workspace_id",
+                       "bug_id",
+                       "author",
+                       "old_value",
+                       "new_value",
+                       "memo",
+                       "created",
+                       "_raw_data_params",
+                       "_raw_data_table",
+                       "_raw_data_id",
+                       "_raw_data_remark",
+               },
+       )
+       dataflowTester.VerifyTable(
+               models.TapdBugChangelogItem{},
+               fmt.Sprintf("./snapshot_tables/%s.csv", 
models.TapdBugChangelogItem{}.TableName()),
+               []string{
+                       "connection_id",
+                       "changelog_id",
+                       "field",
+               },
+               []string{
+                       "value_before_parsed",
+                       "value_after_parsed",
+                       "iteration_id_from",
+                       "iteration_id_to",
+                       "_raw_data_params",
+                       "_raw_data_table",
+                       "_raw_data_id",
+                       "_raw_data_remark",
+               },
+       )
+
+       dataflowTester.FlushTabler(&ticket.Changelog{})
+       dataflowTester.Subtask(tasks.ConvertBugChangelogMeta, taskData)
+       dataflowTester.VerifyTable(
+               ticket.Changelog{},
+               fmt.Sprintf("./snapshot_tables/%s.csv", 
ticket.Changelog{}.TableName()),
+               []string{"id"},
+               []string{
+                       "_raw_data_params",
+                       "_raw_data_table",
+                       "_raw_data_id",
+                       "_raw_data_remark",
+                       "issue_id",
+                       "author_id",
+                       "author_name",
+                       "field_id",
+                       "field_name",
+                       "from_value",
+                       "to_value",
+                       "created_date",
+                       "original_from_value",
+                       "original_to_value",
+               },
+       )
+
+}
diff --git 
a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelog_items.csv 
b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelog_items.csv
new file mode 100644
index 00000000..4d086814
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelog_items.csv
@@ -0,0 +1,14 @@
+connection_id,changelog_id,field,value_before_parsed,value_after_parsed,iteration_id_from,iteration_id_to,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,11991001000039,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,1,
+1,11991001000040,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,2,
+1,11991001000090,current_owner,test-11test-11;,test-11test-11test-11;,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,3,
+1,11991001000091,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,4,
+1,11991001000093,bugtype,,App,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,5,
+1,11991001000094,bugtype,App,H5,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,6,
+1,11991001000095,bugtype,H5,test-11test-11,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,7,
+1,11991001000096,bugtype,test-11test-11,App,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,8,
+1,11991001000097,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,9,
+1,11991001000110,current_owner,test-11test-11test-11;,test-11test-11test-11;,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,10,
+1,11991001000112,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,11,
+1,11991001000370,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,12,
+1,11991001000381,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,13,
diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelogs.csv 
b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelogs.csv
new file mode 100644
index 00000000..50ab18cd
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelogs.csv
@@ -0,0 +1,14 @@
+connection_id,id,field,workspace_id,bug_id,author,old_value,new_value,memo,created,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,11991001000039,delete_bug,991,11991001000009,test-11test-11,--,--,delete 
bug,2019-12-13T03:36:06.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,1,
+1,11991001000040,delete_bug,991,11991001000008,test-11test-11,--,--,delete 
bug,2019-12-13T03:36:11.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,2,
+1,11991001000090,current_owner,991,11991001000025,test-11test-11test-11,test-11test-11;,test-11test-11test-11;,,2019-12-17T09:35:34.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,3,
+1,11991001000091,delete_bug,991,11991001000025,test-11test-11test-11,--,--,delete
 
bug,2019-12-17T09:49:27.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,4,
+1,11991001000093,bugtype,991,11991001000026,test-11test-11test-11,,App,,2019-12-17T09:53:19.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,5,
+1,11991001000094,bugtype,991,11991001000026,test-11test-11test-11,App,H5,,2019-12-17T09:53:27.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,6,
+1,11991001000095,bugtype,991,11991001000026,test-11test-11test-11,H5,test-11test-11,,2019-12-17T09:53:29.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,7,
+1,11991001000096,bugtype,991,11991001000026,test-11test-11test-11,test-11test-11,App,,2019-12-17T09:53:32.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,8,
+1,11991001000097,delete_bug,991,11991001000026,test-11test-11test-11,--,--,delete
 
bug,2019-12-17T09:53:54.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,9,
+1,11991001000110,current_owner,991,11991001000034,test-11test-11test-11,test-11test-11test-11;,test-11test-11test-11;,,2019-12-18T07:39:51.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,10,
+1,11991001000112,delete_bug,991,11991001000034,test-11test-11test-11,--,--,delete
 
bug,2019-12-18T07:49:33.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,11,
+1,11991001000370,delete_bug,991,11991001000064,test-11test-11,--,--,delete 
bug,2019-12-20T07:06:39.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,12,
+1,11991001000381,delete_bug,991,11991001000075,test-11test-11test-11,--,--,delete
 
bug,2019-12-20T07:37:52.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,13,
diff --git a/plugins/tapd/e2e/snapshot_tables/changelogs.csv 
b/plugins/tapd/e2e/snapshot_tables/changelogs.csv
new file mode 100644
index 00000000..25f30421
--- /dev/null
+++ b/plugins/tapd/e2e/snapshot_tables/changelogs.csv
@@ -0,0 +1,14 @@
+id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark,issue_id,author_id,author_name,field_id,field_name,from_value,to_value,created_date,original_from_value,original_to_value
+tapd:TapdBugChangelog:1:11991001000039:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,1,,tapd:TapdIssue:1:11991001000009,tapd:TapdUser:1:991:test-11test-11,test-11test-11,delete_bug,delete_bug,,,2019-12-13T03:36:06.000+00:00,--,--
+tapd:TapdBugChangelog:1:11991001000040:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,2,,tapd:TapdIssue:1:11991001000008,tapd:TapdUser:1:991:test-11test-11,test-11test-11,delete_bug,delete_bug,,,2019-12-13T03:36:11.000+00:00,--,--
+tapd:TapdBugChangelog:1:11991001000090:current_owner,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,3,,tapd:TapdIssue:1:11991001000025,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,current_owner,current_owner,,,2019-12-17T09:35:34.000+00:00,test-11test-11;,test-11test-11test-11;
+tapd:TapdBugChangelog:1:11991001000091:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,4,,tapd:TapdIssue:1:11991001000025,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,delete_bug,delete_bug,,,2019-12-17T09:49:27.000+00:00,--,--
+tapd:TapdBugChangelog:1:11991001000093:bugtype,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,5,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,bugtype,bugtype,,,2019-12-17T09:53:19.000+00:00,,App
+tapd:TapdBugChangelog:1:11991001000094:bugtype,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,6,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,bugtype,bugtype,,,2019-12-17T09:53:27.000+00:00,App,H5
+tapd:TapdBugChangelog:1:11991001000095:bugtype,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,7,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,bugtype,bugtype,,,2019-12-17T09:53:29.000+00:00,H5,test-11test-11
+tapd:TapdBugChangelog:1:11991001000096:bugtype,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,8,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,bugtype,bugtype,,,2019-12-17T09:53:32.000+00:00,test-11test-11,App
+tapd:TapdBugChangelog:1:11991001000097:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,9,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,delete_bug,delete_bug,,,2019-12-17T09:53:54.000+00:00,--,--
+tapd:TapdBugChangelog:1:11991001000110:current_owner,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,10,,tapd:TapdIssue:1:11991001000034,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,current_owner,current_owner,,,2019-12-18T07:39:51.000+00:00,test-11test-11test-11;,test-11test-11test-11;
+tapd:TapdBugChangelog:1:11991001000112:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,11,,tapd:TapdIssue:1:11991001000034,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,delete_bug,delete_bug,,,2019-12-18T07:49:33.000+00:00,--,--
+tapd:TapdBugChangelog:1:11991001000370:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,12,,tapd:TapdIssue:1:11991001000064,tapd:TapdUser:1:991:test-11test-11,test-11test-11,delete_bug,delete_bug,,,2019-12-20T07:06:39.000+00:00,--,--
+tapd:TapdBugChangelog:1:11991001000381:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,13,,tapd:TapdIssue:1:11991001000075,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,delete_bug,delete_bug,,,2019-12-20T07:37:52.000+00:00,--,--
diff --git a/plugins/tapd/tasks/bug_changelog_converter.go 
b/plugins/tapd/tasks/bug_changelog_converter.go
index 649f5668..3b07480c 100644
--- a/plugins/tapd/tasks/bug_changelog_converter.go
+++ b/plugins/tapd/tasks/bug_changelog_converter.go
@@ -56,6 +56,8 @@ func ConvertBugChangelog(taskCtx core.SubTaskContext) error {
        logger := taskCtx.GetLogger()
        db := taskCtx.GetDal()
        logger.Info("convert changelog :%d", data.Options.WorkspaceId)
+       issueIdGen := didgen.NewDomainIdGenerator(&models.TapdIssue{})
+       userIdGen := didgen.NewDomainIdGenerator(&models.TapdUser{})
        clIdGen := didgen.NewDomainIdGenerator(&models.TapdBugChangelog{})
        clauses := []dal.Clause{
                dal.Select("tc.created, tc.id, tc.workspace_id, tc.bug_id, 
tc.author, _tool_tapd_bug_changelog_items.*"),
@@ -81,8 +83,8 @@ func ConvertBugChangelog(taskCtx core.SubTaskContext) error {
                                DomainEntity: domainlayer.DomainEntity{
                                        Id: 
clIdGen.Generate(data.Options.ConnectionId, cl.Id, cl.Field),
                                },
-                               IssueId:           
IssueIdGen.Generate(data.Options.ConnectionId, cl.BugId),
-                               AuthorId:          
UserIdGen.Generate(data.Options.ConnectionId, data.Options.WorkspaceId, 
cl.Author),
+                               IssueId:           
issueIdGen.Generate(data.Options.ConnectionId, cl.BugId),
+                               AuthorId:          
userIdGen.Generate(data.Options.ConnectionId, data.Options.WorkspaceId, 
cl.Author),
                                AuthorName:        cl.Author,
                                FieldId:           cl.Field,
                                FieldName:         cl.Field,

Reply via email to