smartling-api-sdk-nodejs 2.32.0 → 2.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/api/base/base-api.ts +3 -1
  2. package/api/http/smartling-bare-list-response.ts +5 -0
  3. package/api/http/smartling-list-response.ts +3 -2
  4. package/api/issues/dto/create-issue-string-dto.ts +4 -0
  5. package/api/issues/dto/issue-answered-dto.ts +3 -0
  6. package/api/issues/dto/issue-assignee-dto.ts +3 -0
  7. package/api/issues/dto/issue-changed-type-dto.ts +8 -0
  8. package/api/issues/dto/issue-comment-dto.ts +7 -0
  9. package/api/issues/dto/issue-dto.ts +30 -0
  10. package/api/issues/dto/issue-severity-level-dto.ts +5 -0
  11. package/api/issues/dto/issue-sort-by-dto.ts +5 -0
  12. package/api/issues/dto/issue-sort-item-dto.ts +7 -0
  13. package/api/issues/dto/issue-state-dto.ts +6 -0
  14. package/api/issues/dto/issue-string-dto.ts +4 -0
  15. package/api/issues/dto/issue-text-dto.ts +4 -0
  16. package/api/issues/dto/issues-count-dto.ts +3 -0
  17. package/api/issues/dto/job-filter-dto.ts +6 -0
  18. package/api/issues/dto/string-filter-dto.ts +4 -0
  19. package/api/issues/enums/issue-severity-level.ts +5 -0
  20. package/api/issues/enums/issue-sort-field.ts +14 -0
  21. package/api/issues/enums/issue-state.ts +4 -0
  22. package/api/issues/enums/issue-sub-type.ts +10 -0
  23. package/api/issues/enums/issue-type.ts +4 -0
  24. package/api/issues/enums/issue-watching-state.ts +4 -0
  25. package/api/issues/enums/job-filter-presence.ts +4 -0
  26. package/api/issues/index.ts +238 -0
  27. package/api/issues/params/base-issues-filter-parameters.ts +102 -0
  28. package/api/issues/params/count-account-issues-parameters.ts +8 -0
  29. package/api/issues/params/count-project-issues-parameters.ts +3 -0
  30. package/api/issues/params/create-issue-comment-parameters.ts +12 -0
  31. package/api/issues/params/create-issue-parameters.ts +41 -0
  32. package/api/issues/params/edit-issue-comment-parameters.ts +12 -0
  33. package/api/issues/params/edit-issue-parameters.ts +12 -0
  34. package/api/issues/params/find-account-issues-parameters.ts +31 -0
  35. package/api/issues/params/find-project-issues-parameters.ts +26 -0
  36. package/api/issues/params/update-issue-answered-parameters.ts +8 -0
  37. package/api/issues/params/update-issue-assignee-parameters.ts +12 -0
  38. package/api/issues/params/update-issue-severity-level-parameters.ts +9 -0
  39. package/api/issues/params/update-issue-state-parameters.ts +9 -0
  40. package/api/issues/params/update-issue-type-parameters.ts +20 -0
  41. package/api/vendors/dto/content-assignment-dto.ts +29 -0
  42. package/api/vendors/dto/workflow-step-type.ts +15 -0
  43. package/api/vendors/index.ts +23 -0
  44. package/built/api/base/base-api.js +3 -1
  45. package/built/api/base/base-api.js.map +1 -1
  46. package/built/api/http/smartling-bare-list-response.d.ts +4 -0
  47. package/built/api/http/smartling-bare-list-response.js +3 -0
  48. package/built/api/http/smartling-bare-list-response.js.map +1 -0
  49. package/built/api/http/smartling-list-response.d.ts +2 -2
  50. package/built/api/issues/dto/create-issue-string-dto.d.ts +4 -0
  51. package/built/api/issues/dto/create-issue-string-dto.js +3 -0
  52. package/built/api/issues/dto/create-issue-string-dto.js.map +1 -0
  53. package/built/api/issues/dto/issue-answered-dto.d.ts +3 -0
  54. package/built/api/issues/dto/issue-answered-dto.js +3 -0
  55. package/built/api/issues/dto/issue-answered-dto.js.map +1 -0
  56. package/built/api/issues/dto/issue-assignee-dto.d.ts +3 -0
  57. package/built/api/issues/dto/issue-assignee-dto.js +3 -0
  58. package/built/api/issues/dto/issue-assignee-dto.js.map +1 -0
  59. package/built/api/issues/dto/issue-changed-type-dto.d.ts +7 -0
  60. package/built/api/issues/dto/issue-changed-type-dto.js +3 -0
  61. package/built/api/issues/dto/issue-changed-type-dto.js.map +1 -0
  62. package/built/api/issues/dto/issue-comment-dto.d.ts +7 -0
  63. package/built/api/issues/dto/issue-comment-dto.js +3 -0
  64. package/built/api/issues/dto/issue-comment-dto.js.map +1 -0
  65. package/built/api/issues/dto/issue-dto.d.ts +29 -0
  66. package/built/api/issues/dto/issue-dto.js +3 -0
  67. package/built/api/issues/dto/issue-dto.js.map +1 -0
  68. package/built/api/issues/dto/issue-severity-level-dto.d.ts +4 -0
  69. package/built/api/issues/dto/issue-severity-level-dto.js +3 -0
  70. package/built/api/issues/dto/issue-severity-level-dto.js.map +1 -0
  71. package/built/api/issues/dto/issue-sort-by-dto.d.ts +4 -0
  72. package/built/api/issues/dto/issue-sort-by-dto.js +3 -0
  73. package/built/api/issues/dto/issue-sort-by-dto.js.map +1 -0
  74. package/built/api/issues/dto/issue-sort-item-dto.d.ts +6 -0
  75. package/built/api/issues/dto/issue-sort-item-dto.js +3 -0
  76. package/built/api/issues/dto/issue-sort-item-dto.js.map +1 -0
  77. package/built/api/issues/dto/issue-state-dto.d.ts +5 -0
  78. package/built/api/issues/dto/issue-state-dto.js +3 -0
  79. package/built/api/issues/dto/issue-state-dto.js.map +1 -0
  80. package/built/api/issues/dto/issue-string-dto.d.ts +4 -0
  81. package/built/api/issues/dto/issue-string-dto.js +3 -0
  82. package/built/api/issues/dto/issue-string-dto.js.map +1 -0
  83. package/built/api/issues/dto/issue-text-dto.d.ts +4 -0
  84. package/built/api/issues/dto/issue-text-dto.js +3 -0
  85. package/built/api/issues/dto/issue-text-dto.js.map +1 -0
  86. package/built/api/issues/dto/issues-count-dto.d.ts +3 -0
  87. package/built/api/issues/dto/issues-count-dto.js +3 -0
  88. package/built/api/issues/dto/issues-count-dto.js.map +1 -0
  89. package/built/api/issues/dto/job-filter-dto.d.ts +5 -0
  90. package/built/api/issues/dto/job-filter-dto.js +3 -0
  91. package/built/api/issues/dto/job-filter-dto.js.map +1 -0
  92. package/built/api/issues/dto/string-filter-dto.d.ts +4 -0
  93. package/built/api/issues/dto/string-filter-dto.js +3 -0
  94. package/built/api/issues/dto/string-filter-dto.js.map +1 -0
  95. package/built/api/issues/enums/issue-severity-level.d.ts +5 -0
  96. package/built/api/issues/enums/issue-severity-level.js +10 -0
  97. package/built/api/issues/enums/issue-severity-level.js.map +1 -0
  98. package/built/api/issues/enums/issue-sort-field.d.ts +14 -0
  99. package/built/api/issues/enums/issue-sort-field.js +19 -0
  100. package/built/api/issues/enums/issue-sort-field.js.map +1 -0
  101. package/built/api/issues/enums/issue-state.d.ts +4 -0
  102. package/built/api/issues/enums/issue-state.js +9 -0
  103. package/built/api/issues/enums/issue-state.js.map +1 -0
  104. package/built/api/issues/enums/issue-sub-type.d.ts +10 -0
  105. package/built/api/issues/enums/issue-sub-type.js +15 -0
  106. package/built/api/issues/enums/issue-sub-type.js.map +1 -0
  107. package/built/api/issues/enums/issue-type.d.ts +4 -0
  108. package/built/api/issues/enums/issue-type.js +9 -0
  109. package/built/api/issues/enums/issue-type.js.map +1 -0
  110. package/built/api/issues/enums/issue-watching-state.d.ts +4 -0
  111. package/built/api/issues/enums/issue-watching-state.js +9 -0
  112. package/built/api/issues/enums/issue-watching-state.js.map +1 -0
  113. package/built/api/issues/enums/job-filter-presence.d.ts +4 -0
  114. package/built/api/issues/enums/job-filter-presence.js +9 -0
  115. package/built/api/issues/enums/job-filter-presence.js.map +1 -0
  116. package/built/api/issues/index.d.ts +47 -0
  117. package/built/api/issues/index.js +112 -0
  118. package/built/api/issues/index.js.map +1 -0
  119. package/built/api/issues/params/base-issues-filter-parameters.d.ts +27 -0
  120. package/built/api/issues/params/base-issues-filter-parameters.js +83 -0
  121. package/built/api/issues/params/base-issues-filter-parameters.js.map +1 -0
  122. package/built/api/issues/params/count-account-issues-parameters.d.ts +4 -0
  123. package/built/api/issues/params/count-account-issues-parameters.js +12 -0
  124. package/built/api/issues/params/count-account-issues-parameters.js.map +1 -0
  125. package/built/api/issues/params/count-project-issues-parameters.d.ts +3 -0
  126. package/built/api/issues/params/count-project-issues-parameters.js +8 -0
  127. package/built/api/issues/params/count-project-issues-parameters.js.map +1 -0
  128. package/built/api/issues/params/create-issue-comment-parameters.d.ts +4 -0
  129. package/built/api/issues/params/create-issue-comment-parameters.js +16 -0
  130. package/built/api/issues/params/create-issue-comment-parameters.js.map +1 -0
  131. package/built/api/issues/params/create-issue-parameters.d.ts +13 -0
  132. package/built/api/issues/params/create-issue-parameters.js +36 -0
  133. package/built/api/issues/params/create-issue-parameters.js.map +1 -0
  134. package/built/api/issues/params/edit-issue-comment-parameters.d.ts +4 -0
  135. package/built/api/issues/params/edit-issue-comment-parameters.js +16 -0
  136. package/built/api/issues/params/edit-issue-comment-parameters.js.map +1 -0
  137. package/built/api/issues/params/edit-issue-parameters.d.ts +4 -0
  138. package/built/api/issues/params/edit-issue-parameters.js +16 -0
  139. package/built/api/issues/params/edit-issue-parameters.js.map +1 -0
  140. package/built/api/issues/params/find-account-issues-parameters.d.ts +8 -0
  141. package/built/api/issues/params/find-account-issues-parameters.js +31 -0
  142. package/built/api/issues/params/find-account-issues-parameters.js.map +1 -0
  143. package/built/api/issues/params/find-project-issues-parameters.d.ts +7 -0
  144. package/built/api/issues/params/find-project-issues-parameters.js +27 -0
  145. package/built/api/issues/params/find-project-issues-parameters.js.map +1 -0
  146. package/built/api/issues/params/update-issue-answered-parameters.d.ts +4 -0
  147. package/built/api/issues/params/update-issue-answered-parameters.js +12 -0
  148. package/built/api/issues/params/update-issue-answered-parameters.js.map +1 -0
  149. package/built/api/issues/params/update-issue-assignee-parameters.d.ts +4 -0
  150. package/built/api/issues/params/update-issue-assignee-parameters.js +16 -0
  151. package/built/api/issues/params/update-issue-assignee-parameters.js.map +1 -0
  152. package/built/api/issues/params/update-issue-severity-level-parameters.d.ts +5 -0
  153. package/built/api/issues/params/update-issue-severity-level-parameters.js +12 -0
  154. package/built/api/issues/params/update-issue-severity-level-parameters.js.map +1 -0
  155. package/built/api/issues/params/update-issue-state-parameters.d.ts +5 -0
  156. package/built/api/issues/params/update-issue-state-parameters.js +12 -0
  157. package/built/api/issues/params/update-issue-state-parameters.js.map +1 -0
  158. package/built/api/issues/params/update-issue-type-parameters.d.ts +8 -0
  159. package/built/api/issues/params/update-issue-type-parameters.js +20 -0
  160. package/built/api/issues/params/update-issue-type-parameters.js.map +1 -0
  161. package/built/api/vendors/dto/content-assignment-dto.d.ts +27 -0
  162. package/built/api/vendors/dto/content-assignment-dto.js +3 -0
  163. package/built/api/vendors/dto/content-assignment-dto.js.map +1 -0
  164. package/built/api/vendors/dto/workflow-step-type.d.ts +14 -0
  165. package/built/api/vendors/dto/workflow-step-type.js +19 -0
  166. package/built/api/vendors/dto/workflow-step-type.js.map +1 -0
  167. package/built/api/vendors/index.d.ts +9 -0
  168. package/built/api/vendors/index.js +27 -0
  169. package/built/api/vendors/index.js.map +1 -0
  170. package/built/index.d.ts +41 -0
  171. package/built/index.js +41 -0
  172. package/built/index.js.map +1 -1
  173. package/built/package.json +1 -1
  174. package/built/test/issues.spec.d.ts +1 -0
  175. package/built/test/issues.spec.js +513 -0
  176. package/built/test/issues.spec.js.map +1 -0
  177. package/built/test/vendors.spec.d.ts +1 -0
  178. package/built/test/vendors.spec.js +133 -0
  179. package/built/test/vendors.spec.js.map +1 -0
  180. package/index.ts +41 -0
  181. package/package.json +1 -1
  182. package/test/issues.spec.ts +624 -0
  183. package/test/vendors.spec.ts +136 -0
@@ -0,0 +1,513 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ const sinon = __importStar(require("sinon"));
36
+ const assert = __importStar(require("assert"));
37
+ const mock_1 = require("./mock");
38
+ const index_1 = require("../api/issues/index");
39
+ const issue_type_1 = require("../api/issues/enums/issue-type");
40
+ const issue_sub_type_1 = require("../api/issues/enums/issue-sub-type");
41
+ const issue_severity_level_1 = require("../api/issues/enums/issue-severity-level");
42
+ const count_project_issues_parameters_1 = require("../api/issues/params/count-project-issues-parameters");
43
+ const job_filter_presence_1 = require("../api/issues/enums/job-filter-presence");
44
+ const create_issue_parameters_1 = require("../api/issues/params/create-issue-parameters");
45
+ const edit_issue_parameters_1 = require("../api/issues/params/edit-issue-parameters");
46
+ const update_issue_state_parameters_1 = require("../api/issues/params/update-issue-state-parameters");
47
+ const issue_state_1 = require("../api/issues/enums/issue-state");
48
+ const update_issue_assignee_parameters_1 = require("../api/issues/params/update-issue-assignee-parameters");
49
+ const create_issue_comment_parameters_1 = require("../api/issues/params/create-issue-comment-parameters");
50
+ const edit_issue_comment_parameters_1 = require("../api/issues/params/edit-issue-comment-parameters");
51
+ const find_project_issues_parameters_1 = require("../api/issues/params/find-project-issues-parameters");
52
+ const find_account_issues_parameters_1 = require("../api/issues/params/find-account-issues-parameters");
53
+ const update_issue_answered_parameters_1 = require("../api/issues/params/update-issue-answered-parameters");
54
+ const update_issue_severity_level_parameters_1 = require("../api/issues/params/update-issue-severity-level-parameters");
55
+ const update_issue_type_parameters_1 = require("../api/issues/params/update-issue-type-parameters");
56
+ const count_account_issues_parameters_1 = require("../api/issues/params/count-account-issues-parameters");
57
+ const issue_sort_field_1 = require("../api/issues/enums/issue-sort-field");
58
+ const order_1 = require("../api/parameters/order");
59
+ describe("SmartlingIssuesAPI class tests.", () => {
60
+ const accountUid = "testAccountUid";
61
+ const projectId = "testProjectId";
62
+ const issueUid = "testIssueUid";
63
+ const issueCommentUid = "testIssueCommentUid";
64
+ let issuesApi;
65
+ let issuesServiceApiFetchStub;
66
+ let issuesServiceApiUaStub;
67
+ let responseMockJsonStub;
68
+ beforeEach(() => {
69
+ issuesApi = new index_1.SmartlingIssuesApi("https://test.com", mock_1.authMock, mock_1.loggerMock);
70
+ issuesServiceApiFetchStub = sinon.stub(issuesApi, "fetch");
71
+ issuesServiceApiUaStub = sinon.stub(issuesApi, "ua");
72
+ responseMockJsonStub = sinon.stub(mock_1.responseMock, "json");
73
+ issuesServiceApiUaStub.returns("test_user_agent");
74
+ issuesServiceApiFetchStub.returns(mock_1.responseMock);
75
+ responseMockJsonStub.returns({
76
+ response: {}
77
+ });
78
+ });
79
+ afterEach(() => {
80
+ issuesServiceApiFetchStub.restore();
81
+ responseMockJsonStub.restore();
82
+ issuesServiceApiUaStub.restore();
83
+ });
84
+ describe("Methods", () => {
85
+ it("Create issue", () => __awaiter(void 0, void 0, void 0, function* () {
86
+ const params = new create_issue_parameters_1.CreateIssueParameters()
87
+ .setIssueText("This translation is incorrect.")
88
+ .setIssueType(issue_type_1.IssueType.TRANSLATION)
89
+ .setIssueSubType(issue_sub_type_1.IssueSubType.POOR_TRANSLATION)
90
+ .setString({ hashcode: "c32c16cddafd63dfa0dc12449372a093", localeId: "ru-RU" })
91
+ .setIssueSeverityLevel(issue_severity_level_1.IssueSeverityLevel.LOW);
92
+ yield issuesApi.createIssue(projectId, params);
93
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
94
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues`, {
95
+ body: "{\"issueText\":\"This translation is incorrect.\",\"issueTypeCode\":\"TRANSLATION\",\"issueSubTypeCode\":\"POOR_TRANSLATION\",\"string\":{\"hashcode\":\"c32c16cddafd63dfa0dc12449372a093\",\"localeId\":\"ru-RU\"},\"issueSeverityLevelCode\":\"LOW\"}",
96
+ headers: {
97
+ Authorization: "test_token_type test_access_token",
98
+ "Content-Type": "application/json",
99
+ "User-Agent": "test_user_agent"
100
+ },
101
+ method: "post"
102
+ });
103
+ }));
104
+ it("Edit issue", () => __awaiter(void 0, void 0, void 0, function* () {
105
+ const params = new edit_issue_parameters_1.EditIssueParameters().setIssueText("Edited issue text.");
106
+ yield issuesApi.editIssue(projectId, issueUid, params);
107
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
108
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/issueText`, {
109
+ body: "{\"issueText\":\"Edited issue text.\"}",
110
+ headers: {
111
+ Authorization: "test_token_type test_access_token",
112
+ "Content-Type": "application/json",
113
+ "User-Agent": "test_user_agent"
114
+ },
115
+ method: "put"
116
+ });
117
+ }));
118
+ it("Open or close issue", () => __awaiter(void 0, void 0, void 0, function* () {
119
+ const params = new update_issue_state_parameters_1.UpdateIssueStateParameters().setIssueState(issue_state_1.IssueState.RESOLVED);
120
+ yield issuesApi.openOrCloseIssue(projectId, issueUid, params);
121
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
122
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/state`, {
123
+ body: "{\"issueStateCode\":\"RESOLVED\"}",
124
+ headers: {
125
+ Authorization: "test_token_type test_access_token",
126
+ "Content-Type": "application/json",
127
+ "User-Agent": "test_user_agent"
128
+ },
129
+ method: "put"
130
+ });
131
+ }));
132
+ it("Get issue details", () => __awaiter(void 0, void 0, void 0, function* () {
133
+ yield issuesApi.getIssueDetails(projectId, issueUid);
134
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
135
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}`, {
136
+ headers: {
137
+ Authorization: "test_token_type test_access_token",
138
+ "Content-Type": "application/json",
139
+ "User-Agent": "test_user_agent"
140
+ },
141
+ method: "get"
142
+ });
143
+ }));
144
+ it("Update issue answered", () => __awaiter(void 0, void 0, void 0, function* () {
145
+ const params = new update_issue_answered_parameters_1.UpdateIssueAnsweredParameters().setAnswered(true);
146
+ yield issuesApi.updateIssueAnswered(projectId, issueUid, params);
147
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
148
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/answered`, {
149
+ body: "{\"answered\":true}",
150
+ headers: {
151
+ Authorization: "test_token_type test_access_token",
152
+ "Content-Type": "application/json",
153
+ "User-Agent": "test_user_agent"
154
+ },
155
+ method: "put"
156
+ });
157
+ }));
158
+ it("Update issue assignee", () => __awaiter(void 0, void 0, void 0, function* () {
159
+ const params = new update_issue_assignee_parameters_1.UpdateIssueAssigneeParameters().setAssigneeUserUid("661801f19693");
160
+ yield issuesApi.updateIssueAssignee(projectId, issueUid, params);
161
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
162
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/assignee`, {
163
+ body: "{\"assigneeUserUid\":\"661801f19693\"}",
164
+ headers: {
165
+ Authorization: "test_token_type test_access_token",
166
+ "Content-Type": "application/json",
167
+ "User-Agent": "test_user_agent"
168
+ },
169
+ method: "put"
170
+ });
171
+ }));
172
+ it("Delete issue assignee", () => __awaiter(void 0, void 0, void 0, function* () {
173
+ yield issuesApi.deleteIssueAssignee(projectId, issueUid);
174
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
175
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/assignee`, {
176
+ headers: {
177
+ Authorization: "test_token_type test_access_token",
178
+ "Content-Type": "application/json",
179
+ "User-Agent": "test_user_agent"
180
+ },
181
+ method: "delete"
182
+ });
183
+ }));
184
+ it("Update issue severity level", () => __awaiter(void 0, void 0, void 0, function* () {
185
+ const params = new update_issue_severity_level_parameters_1.UpdateIssueSeverityLevelParameters()
186
+ .setIssueSeverityLevel(issue_severity_level_1.IssueSeverityLevel.HIGH);
187
+ yield issuesApi.updateIssueSeverityLevel(projectId, issueUid, params);
188
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
189
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/severity-level`, {
190
+ body: "{\"issueSeverityLevelCode\":\"HIGH\"}",
191
+ headers: {
192
+ Authorization: "test_token_type test_access_token",
193
+ "Content-Type": "application/json",
194
+ "User-Agent": "test_user_agent"
195
+ },
196
+ method: "put"
197
+ });
198
+ }));
199
+ it("Update issue type", () => __awaiter(void 0, void 0, void 0, function* () {
200
+ const params = new update_issue_type_parameters_1.UpdateIssueTypeParameters()
201
+ .setIssueType(issue_type_1.IssueType.TRANSLATION)
202
+ .setIssueSubType(issue_sub_type_1.IssueSubType.POOR_TRANSLATION)
203
+ .setLocaleId("ru-RU");
204
+ yield issuesApi.updateIssueType(projectId, issueUid, params);
205
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
206
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/change-type`, {
207
+ body: "{\"issueTypeCode\":\"TRANSLATION\",\"issueSubTypeCode\":\"POOR_TRANSLATION\",\"localeId\":\"ru-RU\"}",
208
+ headers: {
209
+ Authorization: "test_token_type test_access_token",
210
+ "Content-Type": "application/json",
211
+ "User-Agent": "test_user_agent"
212
+ },
213
+ method: "put"
214
+ });
215
+ }));
216
+ it("Get issue comments", () => __awaiter(void 0, void 0, void 0, function* () {
217
+ yield issuesApi.getIssueComments(projectId, issueUid);
218
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
219
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/comments`, {
220
+ headers: {
221
+ Authorization: "test_token_type test_access_token",
222
+ "Content-Type": "application/json",
223
+ "User-Agent": "test_user_agent"
224
+ },
225
+ method: "get"
226
+ });
227
+ }));
228
+ it("Add issue comment", () => __awaiter(void 0, void 0, void 0, function* () {
229
+ const params = new create_issue_comment_parameters_1.CreateIssueCommentParameters().setCommentText("Looks good.");
230
+ yield issuesApi.addIssueComment(projectId, issueUid, params);
231
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
232
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/comments`, {
233
+ body: "{\"commentText\":\"Looks good.\"}",
234
+ headers: {
235
+ Authorization: "test_token_type test_access_token",
236
+ "Content-Type": "application/json",
237
+ "User-Agent": "test_user_agent"
238
+ },
239
+ method: "post"
240
+ });
241
+ }));
242
+ it("Update issue comment", () => __awaiter(void 0, void 0, void 0, function* () {
243
+ const params = new edit_issue_comment_parameters_1.EditIssueCommentParameters().setCommentText("Updated comment.");
244
+ yield issuesApi.updateIssueComment(projectId, issueUid, issueCommentUid, params);
245
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
246
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/comments/${issueCommentUid}`, {
247
+ body: "{\"commentText\":\"Updated comment.\"}",
248
+ headers: {
249
+ Authorization: "test_token_type test_access_token",
250
+ "Content-Type": "application/json",
251
+ "User-Agent": "test_user_agent"
252
+ },
253
+ method: "put"
254
+ });
255
+ }));
256
+ it("Get issue comment details", () => __awaiter(void 0, void 0, void 0, function* () {
257
+ yield issuesApi.getIssueCommentDetails(projectId, issueUid, issueCommentUid);
258
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
259
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/comments/${issueCommentUid}`, {
260
+ headers: {
261
+ Authorization: "test_token_type test_access_token",
262
+ "Content-Type": "application/json",
263
+ "User-Agent": "test_user_agent"
264
+ },
265
+ method: "get"
266
+ });
267
+ }));
268
+ it("Delete issue comment", () => __awaiter(void 0, void 0, void 0, function* () {
269
+ yield issuesApi.deleteIssueComment(projectId, issueUid, issueCommentUid);
270
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
271
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/${issueUid}/comments/${issueCommentUid}`, {
272
+ headers: {
273
+ Authorization: "test_token_type test_access_token",
274
+ "Content-Type": "application/json",
275
+ "User-Agent": "test_user_agent"
276
+ },
277
+ method: "delete"
278
+ });
279
+ }));
280
+ it("Find project issues", () => __awaiter(void 0, void 0, void 0, function* () {
281
+ const params = new find_project_issues_parameters_1.FindProjectIssuesParameters()
282
+ .setIssueTypeCodes([issue_type_1.IssueType.TRANSLATION])
283
+ .setIssueStateCodes([issue_state_1.IssueState.OPENED])
284
+ .setLimit(50)
285
+ .setOffset(0)
286
+ .setSortBy({
287
+ items: [{ direction: order_1.Order.DESC, fieldName: issue_sort_field_1.IssueSortField.CREATED_DATE }]
288
+ });
289
+ yield issuesApi.findProjectIssues(projectId, params);
290
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
291
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/list`, {
292
+ body: "{\"issueTypeCodes\":[\"TRANSLATION\"],\"issueStateCodes\":[\"OPENED\"],\"limit\":50,\"offset\":0,\"sortBy\":{\"items\":[{\"direction\":\"DESC\",\"fieldName\":\"createdDate\"}]}}",
293
+ headers: {
294
+ Authorization: "test_token_type test_access_token",
295
+ "Content-Type": "application/json",
296
+ "User-Agent": "test_user_agent"
297
+ },
298
+ method: "post"
299
+ });
300
+ }));
301
+ it("Count project issues", () => __awaiter(void 0, void 0, void 0, function* () {
302
+ const params = new count_project_issues_parameters_1.CountProjectIssuesParameters()
303
+ .setIssueStateCodes([issue_state_1.IssueState.OPENED, issue_state_1.IssueState.RESOLVED]);
304
+ yield issuesApi.countProjectIssues(projectId, params);
305
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
306
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/projects/${projectId}/issues/count`, {
307
+ body: "{\"issueStateCodes\":[\"OPENED\",\"RESOLVED\"]}",
308
+ headers: {
309
+ Authorization: "test_token_type test_access_token",
310
+ "Content-Type": "application/json",
311
+ "User-Agent": "test_user_agent"
312
+ },
313
+ method: "post"
314
+ });
315
+ }));
316
+ it("Find account issues", () => __awaiter(void 0, void 0, void 0, function* () {
317
+ const params = new find_account_issues_parameters_1.FindAccountIssuesParameters()
318
+ .setProjectIds(["project1", "project2"])
319
+ .setIssueTypeCodes([issue_type_1.IssueType.SOURCE])
320
+ .setLimit(30)
321
+ .setOffset(0);
322
+ yield issuesApi.findAccountIssues(accountUid, params);
323
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
324
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/accounts/${accountUid}/issues/list`, {
325
+ body: "{\"projectIds\":[\"project1\",\"project2\"],\"issueTypeCodes\":[\"SOURCE\"],\"limit\":30,\"offset\":0}",
326
+ headers: {
327
+ Authorization: "test_token_type test_access_token",
328
+ "Content-Type": "application/json",
329
+ "User-Agent": "test_user_agent"
330
+ },
331
+ method: "post"
332
+ });
333
+ }));
334
+ it("Count account issues", () => __awaiter(void 0, void 0, void 0, function* () {
335
+ const params = new count_account_issues_parameters_1.CountAccountIssuesParameters()
336
+ .setProjectIds(["project1"])
337
+ .setAnswered(false);
338
+ yield issuesApi.countAccountIssues(accountUid, params);
339
+ sinon.assert.calledOnce(issuesServiceApiFetchStub);
340
+ sinon.assert.calledWithExactly(issuesServiceApiFetchStub, `https://test.com/issues-api/v2/accounts/${accountUid}/issues/count`, {
341
+ body: "{\"projectIds\":[\"project1\"],\"answered\":false}",
342
+ headers: {
343
+ Authorization: "test_token_type test_access_token",
344
+ "Content-Type": "application/json",
345
+ "User-Agent": "test_user_agent"
346
+ },
347
+ method: "post"
348
+ });
349
+ }));
350
+ });
351
+ describe("Parameter validation", () => {
352
+ it("BaseIssuesFilterParameters should validate issueNumbers limit", () => {
353
+ const params = new count_project_issues_parameters_1.CountProjectIssuesParameters();
354
+ const tooManyNumbers = Array(1001).fill(1);
355
+ try {
356
+ params.setIssueNumbers(tooManyNumbers);
357
+ throw new Error("Exception is not thrown.");
358
+ }
359
+ catch (e) {
360
+ assert.equal(e.constructor.name, "SmartlingException");
361
+ assert.equal(e.message, "Issue numbers array must not exceed 1000 items");
362
+ }
363
+ });
364
+ it("BaseIssuesFilterParameters should validate jobFilter jobUids limit", () => {
365
+ const params = new count_project_issues_parameters_1.CountProjectIssuesParameters();
366
+ const tooManyUids = Array(1001).fill("uid");
367
+ try {
368
+ params.setJobFilter({ jobUids: tooManyUids, presence: job_filter_presence_1.JobFilterPresence.HAS_ANY });
369
+ throw new Error("Exception is not thrown.");
370
+ }
371
+ catch (e) {
372
+ assert.equal(e.constructor.name, "SmartlingException");
373
+ assert.equal(e.message, "Job filter jobUids array must not exceed 1000 items");
374
+ }
375
+ });
376
+ it("CreateIssueParameters should validate issueText length", () => {
377
+ const params = new create_issue_parameters_1.CreateIssueParameters();
378
+ const tooLong = "a".repeat(4001);
379
+ try {
380
+ params.setIssueText(tooLong);
381
+ throw new Error("Exception is not thrown.");
382
+ }
383
+ catch (e) {
384
+ assert.equal(e.constructor.name, "SmartlingException");
385
+ assert.equal(e.message, "Issue text length must not exceed 4000 characters");
386
+ }
387
+ });
388
+ it("EditIssueParameters should validate issueText length", () => {
389
+ const params = new edit_issue_parameters_1.EditIssueParameters();
390
+ const tooLong = "a".repeat(4001);
391
+ try {
392
+ params.setIssueText(tooLong);
393
+ throw new Error("Exception is not thrown.");
394
+ }
395
+ catch (e) {
396
+ assert.equal(e.constructor.name, "SmartlingException");
397
+ assert.equal(e.message, "Issue text length must not exceed 4000 characters");
398
+ }
399
+ });
400
+ it("UpdateIssueAssigneeParameters should reject empty assigneeUserUid", () => {
401
+ const params = new update_issue_assignee_parameters_1.UpdateIssueAssigneeParameters();
402
+ try {
403
+ params.setAssigneeUserUid("");
404
+ throw new Error("Exception is not thrown.");
405
+ }
406
+ catch (e) {
407
+ assert.equal(e.constructor.name, "SmartlingException");
408
+ assert.equal(e.message, "assigneeUserUid is required");
409
+ }
410
+ });
411
+ it("CreateIssueCommentParameters should validate commentText length", () => {
412
+ const params = new create_issue_comment_parameters_1.CreateIssueCommentParameters();
413
+ const tooLong = "a".repeat(4001);
414
+ try {
415
+ params.setCommentText(tooLong);
416
+ throw new Error("Exception is not thrown.");
417
+ }
418
+ catch (e) {
419
+ assert.equal(e.constructor.name, "SmartlingException");
420
+ assert.equal(e.message, "Comment text length must not exceed 4000 characters");
421
+ }
422
+ });
423
+ it("EditIssueCommentParameters should validate commentText length", () => {
424
+ const params = new edit_issue_comment_parameters_1.EditIssueCommentParameters();
425
+ const tooLong = "a".repeat(4001);
426
+ try {
427
+ params.setCommentText(tooLong);
428
+ throw new Error("Exception is not thrown.");
429
+ }
430
+ catch (e) {
431
+ assert.equal(e.constructor.name, "SmartlingException");
432
+ assert.equal(e.message, "Comment text length must not exceed 4000 characters");
433
+ }
434
+ });
435
+ it("FindProjectIssuesParameters should validate limit is non-negative", () => {
436
+ const params = new find_project_issues_parameters_1.FindProjectIssuesParameters();
437
+ try {
438
+ params.setLimit(-1);
439
+ throw new Error("Exception is not thrown.");
440
+ }
441
+ catch (e) {
442
+ assert.equal(e.constructor.name, "SmartlingException");
443
+ assert.equal(e.message, "Limit must be non-negative");
444
+ }
445
+ });
446
+ it("FindProjectIssuesParameters should validate offset is non-negative", () => {
447
+ const params = new find_project_issues_parameters_1.FindProjectIssuesParameters();
448
+ try {
449
+ params.setOffset(-1);
450
+ throw new Error("Exception is not thrown.");
451
+ }
452
+ catch (e) {
453
+ assert.equal(e.constructor.name, "SmartlingException");
454
+ assert.equal(e.message, "Offset must be non-negative");
455
+ }
456
+ });
457
+ it("FindAccountIssuesParameters should validate limit is non-negative", () => {
458
+ const params = new find_account_issues_parameters_1.FindAccountIssuesParameters();
459
+ try {
460
+ params.setLimit(-1);
461
+ throw new Error("Exception is not thrown.");
462
+ }
463
+ catch (e) {
464
+ assert.equal(e.constructor.name, "SmartlingException");
465
+ assert.equal(e.message, "Limit must be non-negative");
466
+ }
467
+ });
468
+ it("FindAccountIssuesParameters should validate offset is non-negative", () => {
469
+ const params = new find_account_issues_parameters_1.FindAccountIssuesParameters();
470
+ try {
471
+ params.setOffset(-1);
472
+ throw new Error("Exception is not thrown.");
473
+ }
474
+ catch (e) {
475
+ assert.equal(e.constructor.name, "SmartlingException");
476
+ assert.equal(e.message, "Offset must be non-negative");
477
+ }
478
+ });
479
+ });
480
+ describe("Edge cases", () => {
481
+ it("Should accept maximum issueText length", () => {
482
+ const params = new create_issue_parameters_1.CreateIssueParameters();
483
+ const maxText = "a".repeat(4000);
484
+ params.setIssueText(maxText);
485
+ assert.equal(params.export().issueText, maxText);
486
+ });
487
+ it("Should accept maximum commentText length", () => {
488
+ const params = new create_issue_comment_parameters_1.CreateIssueCommentParameters();
489
+ const maxText = "a".repeat(4000);
490
+ params.setCommentText(maxText);
491
+ assert.equal(params.export().commentText, maxText);
492
+ });
493
+ it("Should accept maximum issue numbers", () => {
494
+ const params = new count_project_issues_parameters_1.CountProjectIssuesParameters();
495
+ const maxNumbers = Array(1000).fill(1);
496
+ params.setIssueNumbers(maxNumbers);
497
+ assert.deepStrictEqual(params.export().issueNumbers, maxNumbers);
498
+ });
499
+ it("Should accept maximum jobUids in jobFilter", () => {
500
+ const params = new count_project_issues_parameters_1.CountProjectIssuesParameters();
501
+ const maxUids = Array(1000).fill("uid");
502
+ params.setJobFilter({ jobUids: maxUids, presence: job_filter_presence_1.JobFilterPresence.HAS_ANY });
503
+ assert.deepStrictEqual(params.export().jobFilter.jobUids, maxUids);
504
+ });
505
+ it("Should accept zero limit and offset", () => {
506
+ const params = new find_project_issues_parameters_1.FindProjectIssuesParameters();
507
+ params.setLimit(0).setOffset(0);
508
+ assert.equal(params.export().limit, 0);
509
+ assert.equal(params.export().offset, 0);
510
+ });
511
+ });
512
+ });
513
+ //# sourceMappingURL=issues.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issues.spec.js","sourceRoot":"","sources":["../../test/issues.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};