@newpeak/barista-cli 0.1.334 → 0.1.347
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.
- package/dist/commands/liberica/client-price/update.js +1 -1
- package/dist/commands/liberica/client-price/update.js.map +1 -1
- package/dist/commands/liberica/finance/proceeds/create.d.ts.map +1 -1
- package/dist/commands/liberica/finance/proceeds/create.js +102 -31
- package/dist/commands/liberica/finance/proceeds/create.js.map +1 -1
- package/dist/commands/liberica/inventory-shortage/create.d.ts.map +1 -1
- package/dist/commands/liberica/inventory-shortage/create.js.map +1 -1
- package/dist/commands/liberica/material-issue/create.d.ts.map +1 -1
- package/dist/commands/liberica/material-issue/create.js +0 -5
- package/dist/commands/liberica/material-issue/create.js.map +1 -1
- package/dist/commands/liberica/material-return/batch-review.d.ts.map +1 -1
- package/dist/commands/liberica/material-return/batch-review.js +1 -0
- package/dist/commands/liberica/material-return/batch-review.js.map +1 -1
- package/dist/commands/liberica/material-transfers/batch-review.d.ts.map +1 -1
- package/dist/commands/liberica/material-transfers/batch-review.js +0 -1
- package/dist/commands/liberica/material-transfers/batch-review.js.map +1 -1
- package/dist/commands/liberica/material-transfers/create.d.ts.map +1 -1
- package/dist/commands/liberica/material-transfers/create.js.map +1 -1
- package/dist/commands/liberica/purchase-orders/create.d.ts.map +1 -1
- package/dist/commands/liberica/purchase-orders/create.js +17 -0
- package/dist/commands/liberica/purchase-orders/create.js.map +1 -1
- package/dist/commands/liberica/routing/history.d.ts.map +1 -1
- package/dist/commands/liberica/routing/history.js.map +1 -1
- package/dist/commands/liberica/supplier-price/update.js +1 -1
- package/dist/commands/liberica/supplier-price/update.js.map +1 -1
- package/dist/commands/liberica/teams/index.d.ts.map +1 -1
- package/dist/commands/liberica/teams/index.js +12 -0
- package/dist/commands/liberica/teams/index.js.map +1 -1
- package/dist/commands/liberica/teams/tasks/delete.d.ts.map +1 -1
- package/dist/commands/liberica/teams/tasks/delete.js +5 -3
- package/dist/commands/liberica/teams/tasks/delete.js.map +1 -1
- package/dist/commands/liberica/teams/test-cases/batch-delete.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/batch-delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/batch-delete.js +74 -0
- package/dist/commands/liberica/teams/test-cases/batch-delete.js.map +1 -0
- package/dist/commands/liberica/teams/test-cases/create.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/create.js +149 -0
- package/dist/commands/liberica/teams/test-cases/create.js.map +1 -0
- package/dist/commands/liberica/teams/test-cases/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/delete.js +55 -0
- package/dist/commands/liberica/teams/test-cases/delete.js.map +1 -0
- package/dist/commands/liberica/teams/test-cases/get.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/get.js +90 -0
- package/dist/commands/liberica/teams/test-cases/get.js.map +1 -0
- package/dist/commands/liberica/teams/test-cases/index.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/index.js +23 -0
- package/dist/commands/liberica/teams/test-cases/index.js.map +1 -0
- package/dist/commands/liberica/teams/test-cases/list.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/list.js +117 -0
- package/dist/commands/liberica/teams/test-cases/list.js.map +1 -0
- package/dist/commands/liberica/teams/test-cases/update.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/update.js +155 -0
- package/dist/commands/liberica/teams/test-cases/update.js.map +1 -0
- package/dist/commands/liberica/teams/test-cases/version-get.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/version-get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/version-get.js +90 -0
- package/dist/commands/liberica/teams/test-cases/version-get.js.map +1 -0
- package/dist/commands/liberica/teams/test-cases/versions.d.ts +3 -0
- package/dist/commands/liberica/teams/test-cases/versions.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-cases/versions.js +93 -0
- package/dist/commands/liberica/teams/test-cases/versions.js.map +1 -0
- package/dist/commands/liberica/teams/test-executions/add.d.ts +3 -0
- package/dist/commands/liberica/teams/test-executions/add.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-executions/add.js +169 -0
- package/dist/commands/liberica/teams/test-executions/add.js.map +1 -0
- package/dist/commands/liberica/teams/test-executions/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/test-executions/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-executions/delete.js +55 -0
- package/dist/commands/liberica/teams/test-executions/delete.js.map +1 -0
- package/dist/commands/liberica/teams/test-executions/get.d.ts +3 -0
- package/dist/commands/liberica/teams/test-executions/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-executions/get.js +68 -0
- package/dist/commands/liberica/teams/test-executions/get.js.map +1 -0
- package/dist/commands/liberica/teams/test-executions/index.d.ts +3 -0
- package/dist/commands/liberica/teams/test-executions/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-executions/index.js +17 -0
- package/dist/commands/liberica/teams/test-executions/index.js.map +1 -0
- package/dist/commands/liberica/teams/test-executions/list.d.ts +3 -0
- package/dist/commands/liberica/teams/test-executions/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-executions/list.js +118 -0
- package/dist/commands/liberica/teams/test-executions/list.js.map +1 -0
- package/dist/commands/liberica/teams/test-executions/update.d.ts +3 -0
- package/dist/commands/liberica/teams/test-executions/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-executions/update.js +130 -0
- package/dist/commands/liberica/teams/test-executions/update.js.map +1 -0
- package/dist/commands/liberica/teams/test-flaky/index.d.ts +3 -0
- package/dist/commands/liberica/teams/test-flaky/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-flaky/index.js +9 -0
- package/dist/commands/liberica/teams/test-flaky/index.js.map +1 -0
- package/dist/commands/liberica/teams/test-flaky/list.d.ts +3 -0
- package/dist/commands/liberica/teams/test-flaky/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-flaky/list.js +98 -0
- package/dist/commands/liberica/teams/test-flaky/list.js.map +1 -0
- package/dist/commands/liberica/teams/test-projects/create.d.ts +3 -0
- package/dist/commands/liberica/teams/test-projects/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-projects/create.js +139 -0
- package/dist/commands/liberica/teams/test-projects/create.js.map +1 -0
- package/dist/commands/liberica/teams/test-projects/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/test-projects/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-projects/delete.js +55 -0
- package/dist/commands/liberica/teams/test-projects/delete.js.map +1 -0
- package/dist/commands/liberica/teams/test-projects/get.d.ts +3 -0
- package/dist/commands/liberica/teams/test-projects/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-projects/get.js +66 -0
- package/dist/commands/liberica/teams/test-projects/get.js.map +1 -0
- package/dist/commands/liberica/teams/test-projects/index.d.ts +3 -0
- package/dist/commands/liberica/teams/test-projects/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-projects/index.js +17 -0
- package/dist/commands/liberica/teams/test-projects/index.js.map +1 -0
- package/dist/commands/liberica/teams/test-projects/list.d.ts +3 -0
- package/dist/commands/liberica/teams/test-projects/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-projects/list.js +101 -0
- package/dist/commands/liberica/teams/test-projects/list.js.map +1 -0
- package/dist/commands/liberica/teams/test-projects/update.d.ts +3 -0
- package/dist/commands/liberica/teams/test-projects/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-projects/update.js +118 -0
- package/dist/commands/liberica/teams/test-projects/update.js.map +1 -0
- package/dist/commands/liberica/teams/test-runs/create.d.ts +3 -0
- package/dist/commands/liberica/teams/test-runs/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-runs/create.js +141 -0
- package/dist/commands/liberica/teams/test-runs/create.js.map +1 -0
- package/dist/commands/liberica/teams/test-runs/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/test-runs/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-runs/delete.js +55 -0
- package/dist/commands/liberica/teams/test-runs/delete.js.map +1 -0
- package/dist/commands/liberica/teams/test-runs/get.d.ts +3 -0
- package/dist/commands/liberica/teams/test-runs/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-runs/get.js +68 -0
- package/dist/commands/liberica/teams/test-runs/get.js.map +1 -0
- package/dist/commands/liberica/teams/test-runs/index.d.ts +3 -0
- package/dist/commands/liberica/teams/test-runs/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-runs/index.js +17 -0
- package/dist/commands/liberica/teams/test-runs/index.js.map +1 -0
- package/dist/commands/liberica/teams/test-runs/list.d.ts +3 -0
- package/dist/commands/liberica/teams/test-runs/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-runs/list.js +113 -0
- package/dist/commands/liberica/teams/test-runs/list.js.map +1 -0
- package/dist/commands/liberica/teams/test-runs/update.d.ts +3 -0
- package/dist/commands/liberica/teams/test-runs/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-runs/update.js +155 -0
- package/dist/commands/liberica/teams/test-runs/update.js.map +1 -0
- package/dist/commands/liberica/teams/test-suites/create.d.ts +3 -0
- package/dist/commands/liberica/teams/test-suites/create.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-suites/create.js +151 -0
- package/dist/commands/liberica/teams/test-suites/create.js.map +1 -0
- package/dist/commands/liberica/teams/test-suites/delete.d.ts +3 -0
- package/dist/commands/liberica/teams/test-suites/delete.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-suites/delete.js +55 -0
- package/dist/commands/liberica/teams/test-suites/delete.js.map +1 -0
- package/dist/commands/liberica/teams/test-suites/get.d.ts +3 -0
- package/dist/commands/liberica/teams/test-suites/get.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-suites/get.js +71 -0
- package/dist/commands/liberica/teams/test-suites/get.js.map +1 -0
- package/dist/commands/liberica/teams/test-suites/index.d.ts +3 -0
- package/dist/commands/liberica/teams/test-suites/index.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-suites/index.js +17 -0
- package/dist/commands/liberica/teams/test-suites/index.js.map +1 -0
- package/dist/commands/liberica/teams/test-suites/list.d.ts +3 -0
- package/dist/commands/liberica/teams/test-suites/list.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-suites/list.js +101 -0
- package/dist/commands/liberica/teams/test-suites/list.js.map +1 -0
- package/dist/commands/liberica/teams/test-suites/update.d.ts +3 -0
- package/dist/commands/liberica/teams/test-suites/update.d.ts.map +1 -0
- package/dist/commands/liberica/teams/test-suites/update.js +122 -0
- package/dist/commands/liberica/teams/test-suites/update.js.map +1 -0
- package/dist/commands/models/index.d.ts.map +1 -1
- package/dist/commands/models/index.js +1 -1
- package/dist/commands/models/index.js.map +1 -1
- package/dist/commands/models/models.d.ts.map +1 -1
- package/dist/commands/models/models.js +1 -13
- package/dist/commands/models/models.js.map +1 -1
- package/dist/core/api/client.d.ts +30 -0
- package/dist/core/api/client.d.ts.map +1 -1
- package/dist/core/api/client.js +603 -19
- package/dist/core/api/client.js.map +1 -1
- package/dist/skills/barista-cli/scripts/generate.js +0 -1
- package/dist/skills/barista-cli/scripts/generate.js.map +1 -1
- package/dist/types/finance.d.ts +1 -0
- package/dist/types/finance.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/purchase-order.d.ts +1 -0
- package/dist/types/purchase-order.d.ts.map +1 -1
- package/dist/types/test-case.d.ts +336 -0
- package/dist/types/test-case.d.ts.map +1 -0
- package/dist/types/test-case.js +2 -0
- package/dist/types/test-case.js.map +1 -0
- package/package.json +4 -1
- package/skills/barista-cli/data/commands.json +175 -1
- package/skills/barista-cli/data/commands.yaml +112 -1
package/dist/core/api/client.js
CHANGED
|
@@ -16,6 +16,7 @@ export class APIClient {
|
|
|
16
16
|
if (typeof data !== 'string')
|
|
17
17
|
return data;
|
|
18
18
|
try {
|
|
19
|
+
// eslint-disable-next-line no-useless-escape
|
|
19
20
|
const preserved = data.replace(/(?<=[\[,:])\s*(-?\d{16,})\s*(?=[,\]\}])/g, '"$1"');
|
|
20
21
|
return JSON.parse(preserved);
|
|
21
22
|
}
|
|
@@ -939,17 +940,8 @@ export const apiClient = {
|
|
|
939
940
|
return { success: true, data: cached.items };
|
|
940
941
|
}
|
|
941
942
|
try {
|
|
942
|
-
// Use dict API for richer data (dictCode, sortOrder, statusFlag).
|
|
943
|
-
// pageSize 200 is well above typical position counts (<50).
|
|
944
|
-
const result = await this.listDictItems(environment, tenant, {
|
|
945
|
-
dictTypeCode: 'POSITION_TYPE',
|
|
946
|
-
pageSize: 200,
|
|
947
|
-
});
|
|
948
|
-
if (!result.success) {
|
|
949
|
-
return { success: false, error: result.error };
|
|
950
|
-
}
|
|
951
943
|
// Helper to map dict item fields to PositionListItem
|
|
952
|
-
|
|
944
|
+
const mapDictItem = (d) => {
|
|
953
945
|
return {
|
|
954
946
|
id: String(d.dictId || ''),
|
|
955
947
|
name: String(d.dictName || ''),
|
|
@@ -960,6 +952,15 @@ export const apiClient = {
|
|
|
960
952
|
sortOrder: typeof d.sortOrder === 'number' ? d.sortOrder : 0,
|
|
961
953
|
statusFlag: typeof d.statusFlag === 'number' ? d.statusFlag : 1,
|
|
962
954
|
};
|
|
955
|
+
};
|
|
956
|
+
// Use dict API for richer data (dictCode, sortOrder, statusFlag).
|
|
957
|
+
// pageSize 200 is well above typical position counts (<50).
|
|
958
|
+
const result = await this.listDictItems(environment, tenant, {
|
|
959
|
+
dictTypeCode: 'POSITION_TYPE',
|
|
960
|
+
pageSize: 200,
|
|
961
|
+
});
|
|
962
|
+
if (!result.success) {
|
|
963
|
+
return { success: false, error: result.error };
|
|
963
964
|
}
|
|
964
965
|
const rawData = result.data;
|
|
965
966
|
let items = [];
|
|
@@ -4230,6 +4231,558 @@ export const apiClient = {
|
|
|
4230
4231
|
}
|
|
4231
4232
|
},
|
|
4232
4233
|
// ============================================
|
|
4234
|
+
// TestTracking: TestCase API methods
|
|
4235
|
+
// ============================================
|
|
4236
|
+
async listTestCases(environment, tenant, params) {
|
|
4237
|
+
try {
|
|
4238
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4239
|
+
if (!token) {
|
|
4240
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4241
|
+
}
|
|
4242
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4243
|
+
client.setAuthToken(token);
|
|
4244
|
+
const queryString = new URLSearchParams();
|
|
4245
|
+
if (params.pageNo !== undefined)
|
|
4246
|
+
queryString.append('pageNo', params.pageNo.toString());
|
|
4247
|
+
if (params.pageSize)
|
|
4248
|
+
queryString.append('pageSize', params.pageSize.toString());
|
|
4249
|
+
if (params.suiteId)
|
|
4250
|
+
queryString.append('suiteId', params.suiteId);
|
|
4251
|
+
if (params.status)
|
|
4252
|
+
queryString.append('status', params.status);
|
|
4253
|
+
if (params.projectCode)
|
|
4254
|
+
queryString.append('projectCode', params.projectCode);
|
|
4255
|
+
if (params.moduleCode)
|
|
4256
|
+
queryString.append('moduleCode', params.moduleCode);
|
|
4257
|
+
if (params.featureArea)
|
|
4258
|
+
queryString.append('featureArea', params.featureArea);
|
|
4259
|
+
if (params.name)
|
|
4260
|
+
queryString.append('name', params.name);
|
|
4261
|
+
const url = `/api/enterprise/team/test/case/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
|
|
4262
|
+
const response = await client.getClient().get(url);
|
|
4263
|
+
return response.data;
|
|
4264
|
+
}
|
|
4265
|
+
catch (error) {
|
|
4266
|
+
return handleApiErrorTestCase(error);
|
|
4267
|
+
}
|
|
4268
|
+
},
|
|
4269
|
+
async getTestCase(environment, tenant, testCaseId) {
|
|
4270
|
+
try {
|
|
4271
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4272
|
+
if (!token) {
|
|
4273
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4274
|
+
}
|
|
4275
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4276
|
+
client.setAuthToken(token);
|
|
4277
|
+
const response = await client.getClient().get(`/api/enterprise/team/test/case/detail?testCaseId=${testCaseId}`);
|
|
4278
|
+
return response.data;
|
|
4279
|
+
}
|
|
4280
|
+
catch (error) {
|
|
4281
|
+
return handleApiErrorTestCase(error);
|
|
4282
|
+
}
|
|
4283
|
+
},
|
|
4284
|
+
async createTestCase(environment, tenant, data) {
|
|
4285
|
+
try {
|
|
4286
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4287
|
+
if (!token) {
|
|
4288
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4289
|
+
}
|
|
4290
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4291
|
+
client.setAuthToken(token);
|
|
4292
|
+
const response = await client.getClient().post('/api/enterprise/team/test/case/add', data);
|
|
4293
|
+
return response.data;
|
|
4294
|
+
}
|
|
4295
|
+
catch (error) {
|
|
4296
|
+
return handleApiErrorTestCase(error);
|
|
4297
|
+
}
|
|
4298
|
+
},
|
|
4299
|
+
async updateTestCase(environment, tenant, data) {
|
|
4300
|
+
try {
|
|
4301
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4302
|
+
if (!token) {
|
|
4303
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4304
|
+
}
|
|
4305
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4306
|
+
client.setAuthToken(token);
|
|
4307
|
+
const response = await client.getClient().post('/api/enterprise/team/test/case/edit', data);
|
|
4308
|
+
return response.data;
|
|
4309
|
+
}
|
|
4310
|
+
catch (error) {
|
|
4311
|
+
return handleApiErrorTestCase(error);
|
|
4312
|
+
}
|
|
4313
|
+
},
|
|
4314
|
+
async deleteTestCase(environment, tenant, testCaseId) {
|
|
4315
|
+
try {
|
|
4316
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4317
|
+
if (!token) {
|
|
4318
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4319
|
+
}
|
|
4320
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4321
|
+
client.setAuthToken(token);
|
|
4322
|
+
const response = await client.getClient().post('/api/enterprise/team/test/case/del', { testCaseId });
|
|
4323
|
+
return response.data;
|
|
4324
|
+
}
|
|
4325
|
+
catch (error) {
|
|
4326
|
+
return handleApiErrorTestCase(error);
|
|
4327
|
+
}
|
|
4328
|
+
},
|
|
4329
|
+
async batchDeleteTestCase(environment, tenant, data) {
|
|
4330
|
+
try {
|
|
4331
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4332
|
+
if (!token) {
|
|
4333
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4334
|
+
}
|
|
4335
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4336
|
+
client.setAuthToken(token);
|
|
4337
|
+
const response = await client.getClient().post('/api/enterprise/team/test/case/batchDel', data);
|
|
4338
|
+
return response.data;
|
|
4339
|
+
}
|
|
4340
|
+
catch (error) {
|
|
4341
|
+
return handleApiErrorTestCase(error);
|
|
4342
|
+
}
|
|
4343
|
+
},
|
|
4344
|
+
// ============================================
|
|
4345
|
+
// TestTracking: TestProject API methods
|
|
4346
|
+
// ============================================
|
|
4347
|
+
async listTestProjects(environment, tenant, params) {
|
|
4348
|
+
try {
|
|
4349
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4350
|
+
if (!token) {
|
|
4351
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4352
|
+
}
|
|
4353
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4354
|
+
client.setAuthToken(token);
|
|
4355
|
+
const queryString = new URLSearchParams();
|
|
4356
|
+
if (params.pageNo !== undefined)
|
|
4357
|
+
queryString.append('pageNo', params.pageNo.toString());
|
|
4358
|
+
if (params.pageSize)
|
|
4359
|
+
queryString.append('pageSize', params.pageSize.toString());
|
|
4360
|
+
if (params.projectCode)
|
|
4361
|
+
queryString.append('projectCode', params.projectCode);
|
|
4362
|
+
if (params.projectType)
|
|
4363
|
+
queryString.append('projectType', params.projectType);
|
|
4364
|
+
if (params.testFramework)
|
|
4365
|
+
queryString.append('testFramework', params.testFramework);
|
|
4366
|
+
const url = `/api/enterprise/team/test/project/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
|
|
4367
|
+
const response = await client.getClient().get(url);
|
|
4368
|
+
return response.data;
|
|
4369
|
+
}
|
|
4370
|
+
catch (error) {
|
|
4371
|
+
return handleApiErrorTestProject(error);
|
|
4372
|
+
}
|
|
4373
|
+
},
|
|
4374
|
+
async getTestProject(environment, tenant, testProjectId) {
|
|
4375
|
+
try {
|
|
4376
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4377
|
+
if (!token) {
|
|
4378
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4379
|
+
}
|
|
4380
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4381
|
+
client.setAuthToken(token);
|
|
4382
|
+
const response = await client.getClient().get(`/api/enterprise/team/test/project/detail?testProjectId=${testProjectId}`);
|
|
4383
|
+
return response.data;
|
|
4384
|
+
}
|
|
4385
|
+
catch (error) {
|
|
4386
|
+
return handleApiErrorTestProject(error);
|
|
4387
|
+
}
|
|
4388
|
+
},
|
|
4389
|
+
async createTestProject(environment, tenant, data) {
|
|
4390
|
+
try {
|
|
4391
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4392
|
+
if (!token) {
|
|
4393
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4394
|
+
}
|
|
4395
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4396
|
+
client.setAuthToken(token);
|
|
4397
|
+
const response = await client.getClient().post('/api/enterprise/team/test/project/add', data);
|
|
4398
|
+
return response.data;
|
|
4399
|
+
}
|
|
4400
|
+
catch (error) {
|
|
4401
|
+
return handleApiErrorTestProject(error);
|
|
4402
|
+
}
|
|
4403
|
+
},
|
|
4404
|
+
async updateTestProject(environment, tenant, data) {
|
|
4405
|
+
try {
|
|
4406
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4407
|
+
if (!token) {
|
|
4408
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4409
|
+
}
|
|
4410
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4411
|
+
client.setAuthToken(token);
|
|
4412
|
+
const response = await client.getClient().post('/api/enterprise/team/test/project/edit', data);
|
|
4413
|
+
return response.data;
|
|
4414
|
+
}
|
|
4415
|
+
catch (error) {
|
|
4416
|
+
return handleApiErrorTestProject(error);
|
|
4417
|
+
}
|
|
4418
|
+
},
|
|
4419
|
+
async deleteTestProject(environment, tenant, testProjectId) {
|
|
4420
|
+
try {
|
|
4421
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4422
|
+
if (!token) {
|
|
4423
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4424
|
+
}
|
|
4425
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4426
|
+
client.setAuthToken(token);
|
|
4427
|
+
const response = await client.getClient().post('/api/enterprise/team/test/project/delete', { testProjectId });
|
|
4428
|
+
return response.data;
|
|
4429
|
+
}
|
|
4430
|
+
catch (error) {
|
|
4431
|
+
return handleApiErrorTestProject(error);
|
|
4432
|
+
}
|
|
4433
|
+
},
|
|
4434
|
+
// ============================================
|
|
4435
|
+
// TestTracking: TestSuite API methods
|
|
4436
|
+
// ============================================
|
|
4437
|
+
async listTestSuites(environment, tenant, params) {
|
|
4438
|
+
try {
|
|
4439
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4440
|
+
if (!token) {
|
|
4441
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4442
|
+
}
|
|
4443
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4444
|
+
client.setAuthToken(token);
|
|
4445
|
+
const queryString = new URLSearchParams();
|
|
4446
|
+
if (params.pageNo !== undefined)
|
|
4447
|
+
queryString.append('pageNo', params.pageNo.toString());
|
|
4448
|
+
if (params.pageSize)
|
|
4449
|
+
queryString.append('pageSize', params.pageSize.toString());
|
|
4450
|
+
if (params.testProjectId)
|
|
4451
|
+
queryString.append('testProjectId', params.testProjectId);
|
|
4452
|
+
if (params.moduleCode)
|
|
4453
|
+
queryString.append('moduleCode', params.moduleCode);
|
|
4454
|
+
if (params.testType)
|
|
4455
|
+
queryString.append('testType', params.testType);
|
|
4456
|
+
const url = `/api/enterprise/team/test/suite/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
|
|
4457
|
+
const response = await client.getClient().get(url);
|
|
4458
|
+
return response.data;
|
|
4459
|
+
}
|
|
4460
|
+
catch (error) {
|
|
4461
|
+
return handleApiErrorTestSuite(error);
|
|
4462
|
+
}
|
|
4463
|
+
},
|
|
4464
|
+
async getTestSuite(environment, tenant, testSuiteId) {
|
|
4465
|
+
try {
|
|
4466
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4467
|
+
if (!token) {
|
|
4468
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4469
|
+
}
|
|
4470
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4471
|
+
client.setAuthToken(token);
|
|
4472
|
+
const response = await client.getClient().get(`/api/enterprise/team/test/suite/detail?testSuiteId=${testSuiteId}`);
|
|
4473
|
+
return response.data;
|
|
4474
|
+
}
|
|
4475
|
+
catch (error) {
|
|
4476
|
+
return handleApiErrorTestSuite(error);
|
|
4477
|
+
}
|
|
4478
|
+
},
|
|
4479
|
+
async createTestSuite(environment, tenant, data) {
|
|
4480
|
+
try {
|
|
4481
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4482
|
+
if (!token) {
|
|
4483
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4484
|
+
}
|
|
4485
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4486
|
+
client.setAuthToken(token);
|
|
4487
|
+
const response = await client.getClient().post('/api/enterprise/team/test/suite/add', data);
|
|
4488
|
+
return response.data;
|
|
4489
|
+
}
|
|
4490
|
+
catch (error) {
|
|
4491
|
+
return handleApiErrorTestSuite(error);
|
|
4492
|
+
}
|
|
4493
|
+
},
|
|
4494
|
+
async updateTestSuite(environment, tenant, data) {
|
|
4495
|
+
try {
|
|
4496
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4497
|
+
if (!token) {
|
|
4498
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4499
|
+
}
|
|
4500
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4501
|
+
client.setAuthToken(token);
|
|
4502
|
+
const response = await client.getClient().post('/api/enterprise/team/test/suite/edit', data);
|
|
4503
|
+
return response.data;
|
|
4504
|
+
}
|
|
4505
|
+
catch (error) {
|
|
4506
|
+
return handleApiErrorTestSuite(error);
|
|
4507
|
+
}
|
|
4508
|
+
},
|
|
4509
|
+
async deleteTestSuite(environment, tenant, testSuiteId) {
|
|
4510
|
+
try {
|
|
4511
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4512
|
+
if (!token) {
|
|
4513
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4514
|
+
}
|
|
4515
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4516
|
+
client.setAuthToken(token);
|
|
4517
|
+
const response = await client.getClient().post('/api/enterprise/team/test/suite/delete', { testSuiteId });
|
|
4518
|
+
return response.data;
|
|
4519
|
+
}
|
|
4520
|
+
catch (error) {
|
|
4521
|
+
return handleApiErrorTestSuite(error);
|
|
4522
|
+
}
|
|
4523
|
+
},
|
|
4524
|
+
// ============================================
|
|
4525
|
+
// TestTracking: TestRun API methods
|
|
4526
|
+
// ============================================
|
|
4527
|
+
async listTestRuns(environment, tenant, params) {
|
|
4528
|
+
try {
|
|
4529
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4530
|
+
if (!token) {
|
|
4531
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4532
|
+
}
|
|
4533
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4534
|
+
client.setAuthToken(token);
|
|
4535
|
+
const queryString = new URLSearchParams();
|
|
4536
|
+
if (params.pageNo !== undefined)
|
|
4537
|
+
queryString.append('pageNo', params.pageNo.toString());
|
|
4538
|
+
if (params.pageSize)
|
|
4539
|
+
queryString.append('pageSize', params.pageSize.toString());
|
|
4540
|
+
if (params.projectCode)
|
|
4541
|
+
queryString.append('projectCode', params.projectCode);
|
|
4542
|
+
if (params.status)
|
|
4543
|
+
queryString.append('status', params.status);
|
|
4544
|
+
if (params.suiteId)
|
|
4545
|
+
queryString.append('suiteId', params.suiteId);
|
|
4546
|
+
if (params.branch)
|
|
4547
|
+
queryString.append('branch', params.branch);
|
|
4548
|
+
if (params.triggerSource)
|
|
4549
|
+
queryString.append('triggerSource', params.triggerSource);
|
|
4550
|
+
const url = `/api/enterprise/team/test/run/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
|
|
4551
|
+
const response = await client.getClient().get(url);
|
|
4552
|
+
return response.data;
|
|
4553
|
+
}
|
|
4554
|
+
catch (error) {
|
|
4555
|
+
return handleApiErrorTestRun(error);
|
|
4556
|
+
}
|
|
4557
|
+
},
|
|
4558
|
+
async getTestRun(environment, tenant, testRunId) {
|
|
4559
|
+
try {
|
|
4560
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4561
|
+
if (!token) {
|
|
4562
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4563
|
+
}
|
|
4564
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4565
|
+
client.setAuthToken(token);
|
|
4566
|
+
const response = await client.getClient().get(`/api/enterprise/team/test/run/detail?testRunId=${testRunId}`);
|
|
4567
|
+
return response.data;
|
|
4568
|
+
}
|
|
4569
|
+
catch (error) {
|
|
4570
|
+
return handleApiErrorTestRun(error);
|
|
4571
|
+
}
|
|
4572
|
+
},
|
|
4573
|
+
async createTestRun(environment, tenant, data) {
|
|
4574
|
+
try {
|
|
4575
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4576
|
+
if (!token) {
|
|
4577
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4578
|
+
}
|
|
4579
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4580
|
+
client.setAuthToken(token);
|
|
4581
|
+
const response = await client.getClient().post('/api/enterprise/team/test/run/add', data);
|
|
4582
|
+
return response.data;
|
|
4583
|
+
}
|
|
4584
|
+
catch (error) {
|
|
4585
|
+
return handleApiErrorTestRun(error);
|
|
4586
|
+
}
|
|
4587
|
+
},
|
|
4588
|
+
async updateTestRun(environment, tenant, data) {
|
|
4589
|
+
try {
|
|
4590
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4591
|
+
if (!token) {
|
|
4592
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4593
|
+
}
|
|
4594
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4595
|
+
client.setAuthToken(token);
|
|
4596
|
+
const response = await client.getClient().post('/api/enterprise/team/test/run/edit', data);
|
|
4597
|
+
return response.data;
|
|
4598
|
+
}
|
|
4599
|
+
catch (error) {
|
|
4600
|
+
return handleApiErrorTestRun(error);
|
|
4601
|
+
}
|
|
4602
|
+
},
|
|
4603
|
+
async deleteTestRun(environment, tenant, testRunId) {
|
|
4604
|
+
try {
|
|
4605
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4606
|
+
if (!token) {
|
|
4607
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4608
|
+
}
|
|
4609
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4610
|
+
client.setAuthToken(token);
|
|
4611
|
+
const response = await client.getClient().post('/api/enterprise/team/test/run/delete', { testRunId });
|
|
4612
|
+
return response.data;
|
|
4613
|
+
}
|
|
4614
|
+
catch (error) {
|
|
4615
|
+
return handleApiErrorTestRun(error);
|
|
4616
|
+
}
|
|
4617
|
+
},
|
|
4618
|
+
// ============================================
|
|
4619
|
+
// TestTracking: TestExecution API methods
|
|
4620
|
+
// ============================================
|
|
4621
|
+
async listTestExecutions(environment, tenant, params) {
|
|
4622
|
+
try {
|
|
4623
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4624
|
+
if (!token) {
|
|
4625
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4626
|
+
}
|
|
4627
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4628
|
+
client.setAuthToken(token);
|
|
4629
|
+
const queryString = new URLSearchParams();
|
|
4630
|
+
if (params.pageNo !== undefined)
|
|
4631
|
+
queryString.append('pageNo', params.pageNo.toString());
|
|
4632
|
+
if (params.pageSize)
|
|
4633
|
+
queryString.append('pageSize', params.pageSize.toString());
|
|
4634
|
+
if (params.runId)
|
|
4635
|
+
queryString.append('runId', params.runId);
|
|
4636
|
+
if (params.testCaseId)
|
|
4637
|
+
queryString.append('testCaseId', params.testCaseId);
|
|
4638
|
+
if (params.status)
|
|
4639
|
+
queryString.append('status', params.status);
|
|
4640
|
+
if (params.errorCategory)
|
|
4641
|
+
queryString.append('errorCategory', params.errorCategory);
|
|
4642
|
+
if (params.browser)
|
|
4643
|
+
queryString.append('browser', params.browser);
|
|
4644
|
+
if (params.os)
|
|
4645
|
+
queryString.append('os', params.os);
|
|
4646
|
+
if (params.retryNumber !== undefined)
|
|
4647
|
+
queryString.append('retryNumber', params.retryNumber.toString());
|
|
4648
|
+
const url = `/api/enterprise/team/test/execution/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
|
|
4649
|
+
const response = await client.getClient().get(url);
|
|
4650
|
+
return response.data;
|
|
4651
|
+
}
|
|
4652
|
+
catch (error) {
|
|
4653
|
+
return handleApiErrorTestExecution(error);
|
|
4654
|
+
}
|
|
4655
|
+
},
|
|
4656
|
+
async getTestExecution(environment, tenant, testExecutionId) {
|
|
4657
|
+
try {
|
|
4658
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4659
|
+
if (!token) {
|
|
4660
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4661
|
+
}
|
|
4662
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4663
|
+
client.setAuthToken(token);
|
|
4664
|
+
const response = await client.getClient().get(`/api/enterprise/team/test/execution/detail?testExecutionId=${testExecutionId}`);
|
|
4665
|
+
return response.data;
|
|
4666
|
+
}
|
|
4667
|
+
catch (error) {
|
|
4668
|
+
return handleApiErrorTestExecution(error);
|
|
4669
|
+
}
|
|
4670
|
+
},
|
|
4671
|
+
async createTestExecution(environment, tenant, data) {
|
|
4672
|
+
try {
|
|
4673
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4674
|
+
if (!token) {
|
|
4675
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4676
|
+
}
|
|
4677
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4678
|
+
client.setAuthToken(token);
|
|
4679
|
+
const response = await client.getClient().post('/api/enterprise/team/test/execution/add', data);
|
|
4680
|
+
return response.data;
|
|
4681
|
+
}
|
|
4682
|
+
catch (error) {
|
|
4683
|
+
return handleApiErrorTestExecution(error);
|
|
4684
|
+
}
|
|
4685
|
+
},
|
|
4686
|
+
async updateTestExecution(environment, tenant, data) {
|
|
4687
|
+
try {
|
|
4688
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4689
|
+
if (!token) {
|
|
4690
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4691
|
+
}
|
|
4692
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4693
|
+
client.setAuthToken(token);
|
|
4694
|
+
const response = await client.getClient().post('/api/enterprise/team/test/execution/edit', data);
|
|
4695
|
+
return response.data;
|
|
4696
|
+
}
|
|
4697
|
+
catch (error) {
|
|
4698
|
+
return handleApiErrorTestExecution(error);
|
|
4699
|
+
}
|
|
4700
|
+
},
|
|
4701
|
+
async deleteTestExecution(environment, tenant, testExecutionId) {
|
|
4702
|
+
try {
|
|
4703
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4704
|
+
if (!token) {
|
|
4705
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4706
|
+
}
|
|
4707
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4708
|
+
client.setAuthToken(token);
|
|
4709
|
+
const response = await client.getClient().post('/api/enterprise/team/test/execution/delete', { testExecutionId });
|
|
4710
|
+
return response.data;
|
|
4711
|
+
}
|
|
4712
|
+
catch (error) {
|
|
4713
|
+
return handleApiErrorTestExecution(error);
|
|
4714
|
+
}
|
|
4715
|
+
},
|
|
4716
|
+
// ============================================
|
|
4717
|
+
// TestTracking: TestCaseVersion API methods
|
|
4718
|
+
// ============================================
|
|
4719
|
+
async listTestCaseVersions(environment, tenant, params) {
|
|
4720
|
+
try {
|
|
4721
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4722
|
+
if (!token) {
|
|
4723
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4724
|
+
}
|
|
4725
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4726
|
+
client.setAuthToken(token);
|
|
4727
|
+
const queryString = new URLSearchParams();
|
|
4728
|
+
if (params.pageNo !== undefined)
|
|
4729
|
+
queryString.append('pageNo', params.pageNo.toString());
|
|
4730
|
+
if (params.pageSize)
|
|
4731
|
+
queryString.append('pageSize', params.pageSize.toString());
|
|
4732
|
+
if (params.testCaseId)
|
|
4733
|
+
queryString.append('testCaseId', params.testCaseId);
|
|
4734
|
+
const url = `/api/enterprise/team/test/case/version/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
|
|
4735
|
+
const response = await client.getClient().get(url);
|
|
4736
|
+
return response.data;
|
|
4737
|
+
}
|
|
4738
|
+
catch (error) {
|
|
4739
|
+
return handleApiErrorTestCaseVersion(error);
|
|
4740
|
+
}
|
|
4741
|
+
},
|
|
4742
|
+
async getTestCaseVersion(environment, tenant, versionId) {
|
|
4743
|
+
try {
|
|
4744
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4745
|
+
if (!token) {
|
|
4746
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4747
|
+
}
|
|
4748
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4749
|
+
client.setAuthToken(token);
|
|
4750
|
+
const response = await client.getClient().get(`/api/enterprise/team/test/case/version/detail?versionId=${versionId}`);
|
|
4751
|
+
return response.data;
|
|
4752
|
+
}
|
|
4753
|
+
catch (error) {
|
|
4754
|
+
return handleApiErrorTestCaseVersion(error);
|
|
4755
|
+
}
|
|
4756
|
+
},
|
|
4757
|
+
// ============================================
|
|
4758
|
+
// TestTracking: FlakyTest API methods
|
|
4759
|
+
// ============================================
|
|
4760
|
+
async listFlakyTests(environment, tenant, params) {
|
|
4761
|
+
try {
|
|
4762
|
+
const token = await tokenManager.getToken({ service: 'liberica', environment, tenant });
|
|
4763
|
+
if (!token) {
|
|
4764
|
+
return { success: false, error: { code: 'NO_TOKEN', message: 'Not logged in. Run: barista auth login --service liberica --env ' + environment } };
|
|
4765
|
+
}
|
|
4766
|
+
const client = createAPIClient('liberica', environment, tenant);
|
|
4767
|
+
client.setAuthToken(token);
|
|
4768
|
+
const queryString = new URLSearchParams();
|
|
4769
|
+
if (params.pageNo !== undefined)
|
|
4770
|
+
queryString.append('pageNo', params.pageNo.toString());
|
|
4771
|
+
if (params.pageSize)
|
|
4772
|
+
queryString.append('pageSize', params.pageSize.toString());
|
|
4773
|
+
if (params.projectCode)
|
|
4774
|
+
queryString.append('projectCode', params.projectCode);
|
|
4775
|
+
if (params.suiteId)
|
|
4776
|
+
queryString.append('suiteId', params.suiteId);
|
|
4777
|
+
const url = `/api/enterprise/team/test/flaky/page${queryString.toString() ? '?' + queryString.toString() : ''}`;
|
|
4778
|
+
const response = await client.getClient().get(url);
|
|
4779
|
+
return response.data;
|
|
4780
|
+
}
|
|
4781
|
+
catch (error) {
|
|
4782
|
+
return handleApiErrorFlakyTest(error);
|
|
4783
|
+
}
|
|
4784
|
+
},
|
|
4785
|
+
// ============================================
|
|
4233
4786
|
// TransferInForm API methods
|
|
4234
4787
|
// ============================================
|
|
4235
4788
|
async listTransferInForms(environment, tenant, params) {
|
|
@@ -10083,6 +10636,27 @@ export const apiClient = {
|
|
|
10083
10636
|
}
|
|
10084
10637
|
},
|
|
10085
10638
|
};
|
|
10639
|
+
function handleApiErrorTestCase(error) {
|
|
10640
|
+
return extractApiError(error);
|
|
10641
|
+
}
|
|
10642
|
+
function handleApiErrorTestProject(error) {
|
|
10643
|
+
return extractApiError(error);
|
|
10644
|
+
}
|
|
10645
|
+
function handleApiErrorTestSuite(error) {
|
|
10646
|
+
return extractApiError(error);
|
|
10647
|
+
}
|
|
10648
|
+
function handleApiErrorTestRun(error) {
|
|
10649
|
+
return extractApiError(error);
|
|
10650
|
+
}
|
|
10651
|
+
function handleApiErrorTestExecution(error) {
|
|
10652
|
+
return extractApiError(error);
|
|
10653
|
+
}
|
|
10654
|
+
function handleApiErrorTestCaseVersion(error) {
|
|
10655
|
+
return extractApiError(error);
|
|
10656
|
+
}
|
|
10657
|
+
function handleApiErrorFlakyTest(error) {
|
|
10658
|
+
return extractApiError(error);
|
|
10659
|
+
}
|
|
10086
10660
|
function handleApiErrorStockReservation(error) {
|
|
10087
10661
|
return extractApiError(error);
|
|
10088
10662
|
}
|
|
@@ -10150,9 +10724,17 @@ export function extractApiError(error, context) {
|
|
|
10150
10724
|
};
|
|
10151
10725
|
}
|
|
10152
10726
|
const exceptionTip = responseData.exceptionTip;
|
|
10727
|
+
const httpStatus = axiosError.response?.status;
|
|
10728
|
+
const httpSuffix = httpStatus ? ` (HTTP ${httpStatus})` : '';
|
|
10729
|
+
const reqMethod = axiosError.config?.method ? axiosError.config.method.toUpperCase() : '';
|
|
10730
|
+
const reqUrl = axiosError.config?.url || '';
|
|
10731
|
+
const reqContext = reqMethod && reqUrl ? ` [${reqMethod} ${reqUrl}]` : '';
|
|
10732
|
+
const fallbackMsg = message || 'API error occurred';
|
|
10153
10733
|
const enhancedMessage = exceptionTip
|
|
10154
|
-
? `${
|
|
10155
|
-
: (
|
|
10734
|
+
? `${fallbackMsg}\n Backend: ${exceptionTip}`
|
|
10735
|
+
: (fallbackMsg === 'API error occurred' && (httpSuffix || reqContext)
|
|
10736
|
+
? `${fallbackMsg}${httpSuffix}${reqContext}`
|
|
10737
|
+
: fallbackMsg);
|
|
10156
10738
|
return {
|
|
10157
10739
|
success: false,
|
|
10158
10740
|
error: {
|
|
@@ -10163,6 +10745,12 @@ export function extractApiError(error, context) {
|
|
|
10163
10745
|
}
|
|
10164
10746
|
}
|
|
10165
10747
|
// Fallback: passthrough for already-normalized responses
|
|
10748
|
+
// Include HTTP status code + request context to help diagnose backend issues (e.g. regression TYP-9747ac4b)
|
|
10749
|
+
const httpStatus = axiosError.response?.status;
|
|
10750
|
+
const httpSuffix = httpStatus ? ` (HTTP ${httpStatus})` : '';
|
|
10751
|
+
const reqMethod = axiosError.config?.method ? axiosError.config.method.toUpperCase() : '';
|
|
10752
|
+
const reqUrl = axiosError.config?.url || '';
|
|
10753
|
+
const reqContext = reqMethod && reqUrl ? ` [${reqMethod} ${reqUrl}]` : '';
|
|
10166
10754
|
const fallbackMessage = responseData.error?.message ||
|
|
10167
10755
|
responseData.message ||
|
|
10168
10756
|
'API error occurred';
|
|
@@ -10175,7 +10763,9 @@ export function extractApiError(error, context) {
|
|
|
10175
10763
|
'API_ERROR',
|
|
10176
10764
|
message: exceptionTip
|
|
10177
10765
|
? `${fallbackMessage}\n Backend: ${exceptionTip}`
|
|
10178
|
-
: fallbackMessage
|
|
10766
|
+
: (fallbackMessage === 'API error occurred' && (httpSuffix || reqContext)
|
|
10767
|
+
? `${fallbackMessage}${httpSuffix}${reqContext}`
|
|
10768
|
+
: fallbackMessage),
|
|
10179
10769
|
},
|
|
10180
10770
|
};
|
|
10181
10771
|
}
|
|
@@ -10294,9 +10884,6 @@ function handleApiErrorOutsourcingStockIn(error) {
|
|
|
10294
10884
|
function handleApiErrorPurchaseOrder(error) {
|
|
10295
10885
|
return extractApiError(error);
|
|
10296
10886
|
}
|
|
10297
|
-
function handleApiErrorSalesOrder(error) {
|
|
10298
|
-
return extractApiError(error);
|
|
10299
|
-
}
|
|
10300
10887
|
function handleApiErrorActualProduction(error) {
|
|
10301
10888
|
return extractApiError(error);
|
|
10302
10889
|
}
|
|
@@ -10315,9 +10902,6 @@ function handleApiErrorMrpTask(error) {
|
|
|
10315
10902
|
function handleApiErrorAps(error) {
|
|
10316
10903
|
return extractApiError(error);
|
|
10317
10904
|
}
|
|
10318
|
-
function handleApiErrorPlanOrder(error) {
|
|
10319
|
-
return extractApiError(error);
|
|
10320
|
-
}
|
|
10321
10905
|
function handleApiErrorPhysicalInventory(error) {
|
|
10322
10906
|
return extractApiError(error);
|
|
10323
10907
|
}
|