@salesforce/agents 0.3.1 → 0.4.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.
- package/lib/agentTester.d.ts +2 -1
- package/lib/agentTester.js +55 -1
- package/lib/agentTester.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/package.json +2 -1
package/lib/agentTester.d.ts
CHANGED
|
@@ -66,5 +66,6 @@ export declare class AgentTester {
|
|
|
66
66
|
success: boolean;
|
|
67
67
|
}>;
|
|
68
68
|
}
|
|
69
|
-
export declare function humanFormat(
|
|
69
|
+
export declare function humanFormat(details: AgentTestDetailsResponse): Promise<string>;
|
|
70
70
|
export declare function jsonFormat(details: AgentTestDetailsResponse): Promise<string>;
|
|
71
|
+
export declare function junitFormat(details: AgentTestDetailsResponse): Promise<string>;
|
package/lib/agentTester.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AgentTester = void 0;
|
|
4
4
|
exports.humanFormat = humanFormat;
|
|
5
5
|
exports.jsonFormat = jsonFormat;
|
|
6
|
+
exports.junitFormat = junitFormat;
|
|
6
7
|
/*
|
|
7
8
|
* Copyright (c) 2024, salesforce.com, inc.
|
|
8
9
|
* All rights reserved.
|
|
@@ -81,7 +82,7 @@ class AgentTester {
|
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
exports.AgentTester = AgentTester;
|
|
84
|
-
async function humanFormat(
|
|
85
|
+
async function humanFormat(details) {
|
|
85
86
|
const { Ux } = await import('@salesforce/sf-plugins-core');
|
|
86
87
|
const ux = new Ux();
|
|
87
88
|
const tables = [];
|
|
@@ -106,4 +107,57 @@ async function humanFormat(name, details) {
|
|
|
106
107
|
async function jsonFormat(details) {
|
|
107
108
|
return Promise.resolve(JSON.stringify(details, null, 2));
|
|
108
109
|
}
|
|
110
|
+
async function junitFormat(details) {
|
|
111
|
+
// Ideally, these would come from the API response.
|
|
112
|
+
// Worst case scenario, we cache these values when the customer starts the test run.
|
|
113
|
+
// Caching would generally work BUT it's problematic because it doesn't allow the customer to get the results from a test they didn't start on their machine
|
|
114
|
+
// and it doesn't allow them to get the results after the TTL cache expires.
|
|
115
|
+
const subjectName = 'Copilot_for_Salesforce';
|
|
116
|
+
const testSetName = 'CRM_Sanity_v1';
|
|
117
|
+
const { XMLBuilder } = await import('fast-xml-parser');
|
|
118
|
+
const builder = new XMLBuilder({
|
|
119
|
+
format: true,
|
|
120
|
+
attributeNamePrefix: '$',
|
|
121
|
+
ignoreAttributes: false,
|
|
122
|
+
});
|
|
123
|
+
const testCount = details.testCases.length;
|
|
124
|
+
const failureCount = details.testCases.filter((tc) => tc.status === 'ERROR').length;
|
|
125
|
+
const time = details.testCases.reduce((acc, tc) => {
|
|
126
|
+
if (tc.endTime && tc.startTime) {
|
|
127
|
+
return acc + new Date(tc.endTime).getTime() - new Date(tc.startTime).getTime();
|
|
128
|
+
}
|
|
129
|
+
return acc;
|
|
130
|
+
}, 0);
|
|
131
|
+
const suites = builder.build({
|
|
132
|
+
testsuites: {
|
|
133
|
+
$name: subjectName,
|
|
134
|
+
$tests: testCount,
|
|
135
|
+
$failures: failureCount,
|
|
136
|
+
$time: time,
|
|
137
|
+
property: [
|
|
138
|
+
{ $name: 'status', $value: details.status },
|
|
139
|
+
{ $name: 'start-time', $value: details.startTime },
|
|
140
|
+
{ $name: 'end-time', $value: details.endTime },
|
|
141
|
+
],
|
|
142
|
+
testsuite: details.testCases.map((testCase) => {
|
|
143
|
+
const testCaseTime = testCase.endTime
|
|
144
|
+
? new Date(testCase.endTime).getTime() - new Date(testCase.startTime).getTime()
|
|
145
|
+
: 0;
|
|
146
|
+
return {
|
|
147
|
+
$name: `${testSetName}.${testCase.number}`,
|
|
148
|
+
$time: testCaseTime,
|
|
149
|
+
$assertions: testCase.expectationResults.length,
|
|
150
|
+
failure: testCase.expectationResults
|
|
151
|
+
.map((r) => {
|
|
152
|
+
if (r.result === 'Failed') {
|
|
153
|
+
return { $message: r.errorMessage ?? 'Unknown error' };
|
|
154
|
+
}
|
|
155
|
+
})
|
|
156
|
+
.filter((f) => f),
|
|
157
|
+
};
|
|
158
|
+
}),
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
return `<?xml version="1.0" encoding="UTF-8"?>\n${suites}`.trim();
|
|
162
|
+
}
|
|
109
163
|
//# sourceMappingURL=agentTester.js.map
|
package/lib/agentTester.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentTester.js","sourceRoot":"","sources":["../src/agentTester.ts"],"names":[],"mappings":";;;AAuJA,kCAsBC;AAED,gCAEC;
|
|
1
|
+
{"version":3,"file":"agentTester.js","sourceRoot":"","sources":["../src/agentTester.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { type AgentCreateConfig, type AgentCreateResponse, type AgentJobSpec, type AgentJobSpecCreateConfig, type AgentJobSpecCreateResponse, SfAgent, } from './types';
|
|
2
2
|
export { Agent } from './agent';
|
|
3
|
-
export { AgentTester, humanFormat, jsonFormat, type AgentTestDetailsResponse, type AgentTestStartResponse, type AgentTestStatusResponse, type TestCaseResult, type TestStatus, } from './agentTester';
|
|
3
|
+
export { AgentTester, humanFormat, jsonFormat, junitFormat, type AgentTestDetailsResponse, type AgentTestStartResponse, type AgentTestStatusResponse, type TestCaseResult, type TestStatus, } from './agentTester';
|
package/lib/index.js
CHANGED
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.jsonFormat = exports.humanFormat = exports.AgentTester = exports.Agent = void 0;
|
|
9
|
+
exports.junitFormat = exports.jsonFormat = exports.humanFormat = exports.AgentTester = exports.Agent = void 0;
|
|
10
10
|
var agent_1 = require("./agent");
|
|
11
11
|
Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_1.Agent; } });
|
|
12
12
|
var agentTester_1 = require("./agentTester");
|
|
13
13
|
Object.defineProperty(exports, "AgentTester", { enumerable: true, get: function () { return agentTester_1.AgentTester; } });
|
|
14
14
|
Object.defineProperty(exports, "humanFormat", { enumerable: true, get: function () { return agentTester_1.humanFormat; } });
|
|
15
15
|
Object.defineProperty(exports, "jsonFormat", { enumerable: true, get: function () { return agentTester_1.jsonFormat; } });
|
|
16
|
+
Object.defineProperty(exports, "junitFormat", { enumerable: true, get: function () { return agentTester_1.junitFormat; } });
|
|
16
17
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAUH,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAUH,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,6CAUuB;AATrB,0GAAA,WAAW,OAAA;AACX,0GAAA,WAAW,OAAA;AACX,yGAAA,UAAU,OAAA;AACV,0GAAA,WAAW,OAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/agents",
|
|
3
3
|
"description": "Client side APIs for working with Salesforce agents",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.4.0",
|
|
5
5
|
"license": "BSD-3-Clause",
|
|
6
6
|
"author": "Salesforce",
|
|
7
7
|
"main": "lib/index",
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
"@salesforce/core": "^8.8.0",
|
|
16
16
|
"@salesforce/kit": "^3.2.3",
|
|
17
17
|
"@salesforce/sf-plugins-core": "^12.1.0",
|
|
18
|
+
"fast-xml-parser": "^4",
|
|
18
19
|
"nock": "^13.5.6"
|
|
19
20
|
},
|
|
20
21
|
"devDependencies": {
|