(t *testing.T)
| 49 | } |
| 50 | |
| 51 | func Test_RenderIssueIndexPattern(t *testing.T) { |
| 52 | urlPrefix := "/prefix" |
| 53 | t.Run("render to internal issue tracker", func(t *testing.T) { |
| 54 | tests := []struct { |
| 55 | input string |
| 56 | expVal string |
| 57 | }{ |
| 58 | {input: "", expVal: ""}, |
| 59 | {input: "this is a test", expVal: "this is a test"}, |
| 60 | {input: "test 123 123 1234", expVal: "test 123 123 1234"}, |
| 61 | {input: "#", expVal: "#"}, |
| 62 | {input: "# # #", expVal: "# # #"}, |
| 63 | {input: "# 123", expVal: "# 123"}, |
| 64 | {input: "#abcd", expVal: "#abcd"}, |
| 65 | {input: "##1234", expVal: "##1234"}, |
| 66 | {input: "test#1234", expVal: "test#1234"}, |
| 67 | {input: "#1234test", expVal: "#1234test"}, |
| 68 | {input: " test #1234test", expVal: " test #1234test"}, |
| 69 | |
| 70 | {input: "#1234 test", expVal: "<a href=\"/prefix/issues/1234\">#1234</a> test"}, |
| 71 | {input: "test #1234 issue", expVal: "test <a href=\"/prefix/issues/1234\">#1234</a> issue"}, |
| 72 | {input: "test issue #1234", expVal: "test issue <a href=\"/prefix/issues/1234\">#1234</a>"}, |
| 73 | {input: "#5 test", expVal: "<a href=\"/prefix/issues/5\">#5</a> test"}, |
| 74 | {input: "test #5 issue", expVal: "test <a href=\"/prefix/issues/5\">#5</a> issue"}, |
| 75 | {input: "test issue #5", expVal: "test issue <a href=\"/prefix/issues/5\">#5</a>"}, |
| 76 | |
| 77 | {input: "(#54321 issue)", expVal: "(<a href=\"/prefix/issues/54321\">#54321</a> issue)"}, |
| 78 | {input: "test (#54321) issue", expVal: "test (<a href=\"/prefix/issues/54321\">#54321</a>) issue"}, |
| 79 | {input: "test (#54321 extra) issue", expVal: "test (<a href=\"/prefix/issues/54321\">#54321</a> extra) issue"}, |
| 80 | {input: "test (#54321 issue)", expVal: "test (<a href=\"/prefix/issues/54321\">#54321</a> issue)"}, |
| 81 | {input: "test (#54321)", expVal: "test (<a href=\"/prefix/issues/54321\">#54321</a>)"}, |
| 82 | |
| 83 | {input: "[#54321 issue]", expVal: "[<a href=\"/prefix/issues/54321\">#54321</a> issue]"}, |
| 84 | {input: "test [#54321] issue", expVal: "test [<a href=\"/prefix/issues/54321\">#54321</a>] issue"}, |
| 85 | {input: "test [#54321 extra] issue", expVal: "test [<a href=\"/prefix/issues/54321\">#54321</a> extra] issue"}, |
| 86 | {input: "test [#54321 issue]", expVal: "test [<a href=\"/prefix/issues/54321\">#54321</a> issue]"}, |
| 87 | {input: "test [#54321]", expVal: "test [<a href=\"/prefix/issues/54321\">#54321</a>]"}, |
| 88 | |
| 89 | {input: "#54321 #1243", expVal: "<a href=\"/prefix/issues/54321\">#54321</a> <a href=\"/prefix/issues/1243\">#1243</a>"}, |
| 90 | {input: "test #54321 #1243", expVal: "test <a href=\"/prefix/issues/54321\">#54321</a> <a href=\"/prefix/issues/1243\">#1243</a>"}, |
| 91 | {input: "(#54321 #1243)", expVal: "(<a href=\"/prefix/issues/54321\">#54321</a> <a href=\"/prefix/issues/1243\">#1243</a>)"}, |
| 92 | {input: "(#54321)(#1243)", expVal: "(<a href=\"/prefix/issues/54321\">#54321</a>)(<a href=\"/prefix/issues/1243\">#1243</a>)"}, |
| 93 | {input: "text #54321 test #1243 issue", expVal: "text <a href=\"/prefix/issues/54321\">#54321</a> test <a href=\"/prefix/issues/1243\">#1243</a> issue"}, |
| 94 | {input: "#1 (#4321) test", expVal: "<a href=\"/prefix/issues/1\">#1</a> (<a href=\"/prefix/issues/4321\">#4321</a>) test"}, |
| 95 | } |
| 96 | for _, test := range tests { |
| 97 | t.Run(test.input, func(t *testing.T) { |
| 98 | assert.Equal(t, test.expVal, string(RenderIssueIndexPattern([]byte(test.input), urlPrefix, nil))) |
| 99 | }) |
| 100 | } |
| 101 | }) |
| 102 | |
| 103 | t.Run("render to external issue tracker", func(t *testing.T) { |
| 104 | t.Run("numeric style", func(t *testing.T) { |
| 105 | metas := map[string]string{ |
| 106 | "format": "https://someurl.com/{user}/{repo}/{index}", |
| 107 | "user": "someuser", |
| 108 | "repo": "somerepo", |
nothing calls this directly
no test coverage detected