Skip to content

Commit cbf992b

Browse files
Use issue instead of bug when description is chosen (#1070)
1 parent 359c0d9 commit cbf992b

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

src/issue-filing/services/azure-boards/azure-boards-issue-filing-settings.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// Licensed under the MIT License.
33
export type AzureBoardsIssueDetailField = 'reproSteps' | 'description';
44

5+
export type AzureBoardsWorkItemType = 'Bug' | 'Issue';
6+
57
export type AzureBoardsIssueFilingSettings = {
68
projectURL: string;
79
issueDetailsField: AzureBoardsIssueDetailField;

src/issue-filing/services/azure-boards/create-azure-boards-issue-filing-url.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { HTTPQueryBuilder } from '../../common/http-query-builder';
88
import { IssueDetailsBuilder } from '../../common/issue-details-builder';
99
import { IssueFilingUrlStringUtils, IssueUrlCreationUtils } from '../../common/issue-filing-url-string-utils';
1010
import { HTMLFormatter } from '../../common/markup/html-formatter';
11-
import { AzureBoardsIssueFilingSettings } from './azure-boards-issue-filing-settings';
11+
import { AzureBoardsIssueFilingSettings, AzureBoardsWorkItemType } from './azure-boards-issue-filing-settings';
1212

1313
const buildTags = (createIssueData: CreateIssueDetailsTextData, standardTags: string[]): string => {
1414
const tags = ['Accessibility', title, `rule: ${createIssueData.ruleResult.ruleId}`, ...standardTags];
@@ -27,13 +27,15 @@ export const createAzureBoardsIssueFilingUrlProvider = (
2727
const body = issueDetailsBuilder(environmentInfo, issueData);
2828

2929
let bodyField: string = '[Microsoft.VSTS.TCM.ReproSteps]';
30+
let workItemType: AzureBoardsWorkItemType = 'Bug';
3031

3132
if (settingsData.issueDetailsField === 'description') {
3233
bodyField = '[System.Description]';
34+
workItemType = 'Issue';
3335
}
3436

3537
return queryBuilderProvider()
36-
.withBaseUrl(`${settingsData.projectURL}/_workitems/create/Bug`)
38+
.withBaseUrl(`${settingsData.projectURL}/_workitems/create/${workItemType}`)
3739
.withParam('fullScreen', 'true')
3840
.withParam('[System.Title]', titleField)
3941
.withParam('[System.Tags]', tags)

src/tests/unit/tests/issue-filing/services/azure-boards/create-azure-boards-issue-filing-url.test.ts

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,6 @@ describe('createAzureBoardsIssueFilingUrl', () => {
6060

6161
queryBuilderMock = Mock.ofType<HTTPQueryBuilder>();
6262

63-
queryBuilderMock
64-
.setup(builder => builder.withBaseUrl(`${settingsData.projectURL}/_workitems/create/Bug`))
65-
.returns(() => queryBuilderMock.object);
66-
6763
queryBuilderMock.setup(builder => builder.withParam('fullScreen', 'true')).returns(() => queryBuilderMock.object);
6864
queryBuilderMock.setup(builder => builder.withParam('[System.Title]', testTitle)).returns(() => queryBuilderMock.object);
6965

@@ -80,6 +76,9 @@ describe('createAzureBoardsIssueFilingUrl', () => {
8076
it('uses description field, without tags', () => {
8177
stringUtilsMock.setup(utils => utils.standardizeTags(sampleIssueDetailsData)).returns(() => []);
8278

79+
queryBuilderMock
80+
.setup(builder => builder.withBaseUrl(`${settingsData.projectURL}/_workitems/create/Issue`))
81+
.returns(() => queryBuilderMock.object);
8382
queryBuilderMock.setup(builder => builder.withParam('[System.Tags]', baseTags)).returns(() => queryBuilderMock.object);
8483

8584
queryBuilderMock
@@ -94,6 +93,10 @@ describe('createAzureBoardsIssueFilingUrl', () => {
9493
it('uses description field, with tags', () => {
9594
stringUtilsMock.setup(utils => utils.standardizeTags(sampleIssueDetailsData)).returns(() => ['TAG1', 'TAG2']);
9695

96+
queryBuilderMock
97+
.setup(builder => builder.withBaseUrl(`${settingsData.projectURL}/_workitems/create/Issue`))
98+
.returns(() => queryBuilderMock.object);
99+
97100
const expectedTags = `${baseTags}; TAG1; TAG2`;
98101
queryBuilderMock.setup(builder => builder.withParam('[System.Tags]', expectedTags)).returns(() => queryBuilderMock.object);
99102
queryBuilderMock
@@ -109,6 +112,10 @@ describe('createAzureBoardsIssueFilingUrl', () => {
109112
settingsData.issueDetailsField = 'reproSteps';
110113
stringUtilsMock.setup(utils => utils.standardizeTags(sampleIssueDetailsData)).returns(() => []);
111114

115+
queryBuilderMock
116+
.setup(builder => builder.withBaseUrl(`${settingsData.projectURL}/_workitems/create/Bug`))
117+
.returns(() => queryBuilderMock.object);
118+
112119
queryBuilderMock.setup(builder => builder.withParam('[System.Tags]', baseTags)).returns(() => queryBuilderMock.object);
113120
queryBuilderMock
114121
.setup(builder => builder.withParam('[Microsoft.VSTS.TCM.ReproSteps]', testIssueDetails))
@@ -123,6 +130,10 @@ describe('createAzureBoardsIssueFilingUrl', () => {
123130
settingsData.issueDetailsField = 'reproSteps';
124131
stringUtilsMock.setup(utils => utils.standardizeTags(sampleIssueDetailsData)).returns(() => ['TAG1', 'TAG2']);
125132

133+
queryBuilderMock
134+
.setup(builder => builder.withBaseUrl(`${settingsData.projectURL}/_workitems/create/Bug`))
135+
.returns(() => queryBuilderMock.object);
136+
126137
const expectedTags = `${baseTags}; TAG1; TAG2`;
127138
queryBuilderMock.setup(builder => builder.withParam('[System.Tags]', expectedTags)).returns(() => queryBuilderMock.object);
128139
queryBuilderMock

0 commit comments

Comments
 (0)