MCPcopy
hub / github.com/apache/devlake / TestEpicDataflow

Function TestEpicDataflow

backend/plugins/jira/e2e/epic_test.go:32–133  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

30)
31
32func TestEpicDataflow(t *testing.T) {
33 var plugin impl.Jira
34 dataflowTester := e2ehelper.NewDataFlowTester(t, "jira", plugin)
35 taskData := &tasks.JiraTaskData{
36 Options: &tasks.JiraOptions{
37 ConnectionId: 1,
38 BoardId: 93,
39 ScopeConfig: &models.JiraScopeConfig{StoryPointField: "customfield_10024"},
40 },
41 }
42
43 dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_jira_api_issue_types.csv", "_raw_jira_api_issue_types")
44 dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_jira_api_issues.csv", "_raw_jira_api_issues")
45 dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_jira_external_epics.csv", "_raw_jira_api_epics")
46
47 dataflowTester.FlushTabler(&models.JiraIssue{})
48 dataflowTester.FlushTabler(&models.JiraBoardIssue{})
49 dataflowTester.FlushTabler(&models.JiraSprintIssue{})
50 dataflowTester.FlushTabler(&models.JiraIssueChangelogs{})
51 dataflowTester.FlushTabler(&models.JiraIssueChangelogItems{})
52 dataflowTester.FlushTabler(&models.JiraWorklog{})
53 dataflowTester.FlushTabler(&models.JiraAccount{})
54 dataflowTester.FlushTabler(&models.JiraIssueType{})
55 dataflowTester.FlushTabler(&models.JiraIssueComment{})
56
57 ctx := dataflowTester.SubtaskContext(taskData)
58
59 // run pre-req subtasks
60 require.NoError(t, tasks.ExtractIssueTypesMeta.EntryPoint(ctx))
61 require.NoError(t, tasks.ExtractIssuesMeta.EntryPoint(ctx))
62 dataflowTester.VerifyTableWithOptions(
63 models.JiraIssue{}, e2ehelper.TableOptions{
64 CSVRelPath: "./snapshot_tables/_tool_jira_issues_for_external_epics.csv",
65 TargetFields: nil,
66 IgnoreFields: nil,
67 IgnoreTypes: []interface{}{common.NoPKModel{}},
68 },
69 )
70 dataflowTester.VerifyTableWithOptions(
71 models.JiraBoardIssue{}, e2ehelper.TableOptions{
72 CSVRelPath: "./snapshot_tables/_tool_jira_board_issues_for_external_epics.csv",
73 TargetFields: []string{"connection_id", "board_id", "issue_id"},
74 IgnoreFields: nil,
75 IgnoreTypes: []interface{}{common.NoPKModel{}},
76 },
77 )
78 t.Run("batch_single", func(t *testing.T) {
79 // run the part of the collector that queries tools data
80 iter, err := tasks.GetEpicKeysIterator(ctx.GetDal(), taskData, 1)
81 require.NoError(t, err)
82 require.True(t, iter.HasNext())
83 e1, err := iter.Fetch()
84 require.NoError(t, err)
85 require.True(t, iter.HasNext())
86 e2, err := iter.Fetch()
87 require.NoError(t, err)
88 require.False(t, iter.HasNext())
89 require.Equal(t, 1, len(e1.([]interface{})))

Callers

nothing calls this directly

Calls 8

ImportCsvIntoRawTableMethod · 0.95
FlushTablerMethod · 0.95
SubtaskContextMethod · 0.95
RunMethod · 0.80
GetDalMethod · 0.65
HasNextMethod · 0.65
FetchMethod · 0.65

Tested by

no test coverage detected