@@ -2,6 +2,7 @@ package gitview
22
33import (
44 "fmt"
5+ "github.com/kosli-dev/cli/internal/jira"
56 "os"
67 "path/filepath"
78 "testing"
@@ -360,6 +361,7 @@ func (suite *GitViewTestSuite) TestMatchPatternInCommitMessageORBranchName() {
360361 _ , workTree , fs , err := testHelpers .InitializeGitRepo (suite .tmpDir )
361362 require .NoError (suite .Suite .T (), err )
362363
364+ defaultJiraPattern := "[A-Z][A-Z0-9]{1,9}-[0-9]+"
363365 for _ , t := range []struct {
364366 name string
365367 pattern string
@@ -373,36 +375,36 @@ func (suite *GitViewTestSuite) TestMatchPatternInCommitMessageORBranchName() {
373375 }{
374376 {
375377 name : "One Jira reference found" ,
376- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
378+ pattern : jira . MakeJiraIssueKeyPattern ([] string {}) ,
377379 commitMessage : "EX-1 test commit" ,
378380 want : []string {"EX-1" },
379381 wantError : false ,
380382 },
381383 {
382384 name : "Two Jira references found" ,
383- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
385+ pattern : defaultJiraPattern ,
384386 commitMessage : "EX-1 ABC-22 test commit" ,
385387 want : []string {"EX-1" , "ABC-22" },
386388 wantError : false ,
387389 },
388390 {
389391 name : "No Jira references found" ,
390- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
392+ pattern : defaultJiraPattern ,
391393 commitMessage : "test commit" ,
392394 want : []string {},
393395 wantError : false ,
394396 },
395397 {
396398 name : "Jira references found in branch name" ,
397- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
399+ pattern : defaultJiraPattern ,
398400 commitMessage : "some test commit" ,
399401 branchName : "EX-5-cool-branch" ,
400402 want : []string {"EX-5" },
401403 wantError : false ,
402404 },
403405 {
404406 name : "Jira references found in branch name but ignoreBranchMatch set" ,
405- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
407+ pattern : defaultJiraPattern ,
406408 commitMessage : "some test commit" ,
407409 branchName : "EX-6-cool-branch" ,
408410 ignoreBranchMatch : true ,
@@ -411,39 +413,39 @@ func (suite *GitViewTestSuite) TestMatchPatternInCommitMessageORBranchName() {
411413 },
412414 {
413415 name : "Jira references found in secondary source" ,
414- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
416+ pattern : defaultJiraPattern ,
415417 commitMessage : "some test commit" ,
416418 secondarySource : "EX-1-test-commit" ,
417419 want : []string {"EX-1" },
418420 wantError : false ,
419421 },
420422 {
421423 name : "Jira references found in commit and secondary source" ,
422- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
424+ pattern : defaultJiraPattern ,
423425 commitMessage : "EX-1 some test commit" ,
424426 secondarySource : "EX-2-test-commit" ,
425427 want : []string {"EX-1" , "EX-2" },
426428 wantError : false ,
427429 },
428430 {
429431 name : "Jira references found in commit and branch name" ,
430- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
432+ pattern : defaultJiraPattern ,
431433 commitMessage : "EX-1 some test commit" ,
432434 branchName : "EX-2-test-commit" ,
433435 want : []string {"EX-1" , "EX-2" },
434436 wantError : false ,
435437 },
436438 {
437439 name : "Same Jira references found in commit and branch name is not duplicated" ,
438- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
440+ pattern : defaultJiraPattern ,
439441 commitMessage : "DUP-1 some test commit" ,
440442 branchName : "DUP-1-test-commit" ,
441443 want : []string {"DUP-1" },
442444 wantError : false ,
443445 },
444446 {
445447 name : "Jira references found in commit, branch name and secondary source" ,
446- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
448+ pattern : defaultJiraPattern ,
447449 commitMessage : "ALL-1 some test commit" ,
448450 branchName : "ALL-2-test-commit" ,
449451 secondarySource : "ALL-3-some-things" ,
@@ -452,14 +454,28 @@ func (suite *GitViewTestSuite) TestMatchPatternInCommitMessageORBranchName() {
452454 },
453455 {
454456 name : "No Jira references found, despite something that looks similar to Jira reference" ,
455- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
457+ pattern : defaultJiraPattern ,
456458 commitMessage : "Ea-1 test commit" ,
457459 want : []string {},
458460 wantError : false ,
459461 },
462+ {
463+ name : "One Jira reference found with specific pattern" ,
464+ pattern : jira .MakeJiraIssueKeyPattern ([]string {"EX" }),
465+ commitMessage : "EX-1 ABC-22 test commit" ,
466+ want : []string {"EX-1" },
467+ wantError : false ,
468+ },
469+ {
470+ name : "Two Jira references found with specific pattern" ,
471+ pattern : jira .MakeJiraIssueKeyPattern ([]string {"EX" , "ABC" }),
472+ commitMessage : "EX-1 ABC-22 test commit" ,
473+ want : []string {"EX-1" , "ABC-22" },
474+ wantError : false ,
475+ },
460476 {
461477 name : "Commit not found, expect an error" ,
462- pattern : "[A-Z][A-Z0-9]{1,9}-[0-9]+" ,
478+ pattern : defaultJiraPattern ,
463479 commitSha : "3b7420d0392114794591aaefcd84d7b100b8d095" ,
464480 wantError : true ,
465481 },
0 commit comments