@sonisoft/now-sdk-ext-core 1.0.0-alpha.32 → 2.0.0-alpha.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/dist/auth/NowSDKAuthenticationHandler.d.ts +3 -3
- package/dist/auth/NowSDKAuthenticationHandler.js +6 -3
- package/dist/auth/NowSDKAuthenticationHandler.js.map +1 -1
- package/dist/comm/http/HTTPRequest.d.ts +2 -0
- package/dist/comm/http/RequestHandler.d.ts +1 -0
- package/dist/comm/http/RequestHandler.js +49 -15
- package/dist/comm/http/RequestHandler.js.map +1 -1
- package/dist/comm/http/ServiceNowProcessorRequest.d.ts +3 -0
- package/dist/comm/http/ServiceNowProcessorRequest.js +7 -4
- package/dist/comm/http/ServiceNowProcessorRequest.js.map +1 -1
- package/dist/index.d.ts +13 -3
- package/dist/index.js +13 -3
- package/dist/index.js.map +1 -1
- package/dist/sn/Application.d.ts +1 -0
- package/dist/sn/Application.js +26 -0
- package/dist/sn/Application.js.map +1 -1
- package/dist/sn/IServiceNowInstance.d.ts +1 -1
- package/dist/sn/ProgressWorker.d.ts +33 -0
- package/dist/sn/ProgressWorker.js +24 -0
- package/dist/sn/ProgressWorker.js.map +1 -0
- package/dist/sn/ServiceNowInstance.d.ts +2 -2
- package/dist/sn/ServiceNowInstance.js.map +1 -1
- package/dist/sn/amb/AMBClient.d.ts +66 -0
- package/dist/sn/amb/AMBClient.js +358 -0
- package/dist/sn/amb/AMBClient.js.map +1 -0
- package/dist/sn/amb/AMBConstants.d.ts +8 -0
- package/dist/sn/amb/AMBConstants.js +10 -0
- package/dist/sn/amb/AMBConstants.js.map +1 -0
- package/dist/sn/amb/AuthenticatedWebSocket.d.ts +25 -0
- package/dist/sn/amb/AuthenticatedWebSocket.js +56 -0
- package/dist/sn/amb/AuthenticatedWebSocket.js.map +1 -0
- package/dist/sn/amb/Channel.d.ts +67 -0
- package/dist/sn/amb/Channel.js +212 -0
- package/dist/sn/amb/Channel.js.map +1 -0
- package/dist/sn/amb/ChannelListener.d.ts +31 -0
- package/dist/sn/amb/ChannelListener.js +60 -0
- package/dist/sn/amb/ChannelListener.js.map +1 -0
- package/dist/sn/amb/ChannelRedirect.d.ts +13 -0
- package/dist/sn/amb/ChannelRedirect.js +50 -0
- package/dist/sn/amb/ChannelRedirect.js.map +1 -0
- package/dist/sn/amb/CrossClientChannel.d.ts +4 -0
- package/dist/sn/amb/CrossClientChannel.js +14 -0
- package/dist/sn/amb/CrossClientChannel.js.map +1 -0
- package/dist/sn/amb/EventManager.d.ts +13 -0
- package/dist/sn/amb/EventManager.js +40 -0
- package/dist/sn/amb/EventManager.js.map +1 -0
- package/dist/sn/amb/FunctionQueue.d.ts +53 -0
- package/dist/sn/amb/FunctionQueue.js +95 -0
- package/dist/sn/amb/FunctionQueue.js.map +1 -0
- package/dist/sn/amb/GraphQLSubscriptionExtension.d.ts +12 -0
- package/dist/sn/amb/GraphQLSubscriptionExtension.js +31 -0
- package/dist/sn/amb/GraphQLSubscriptionExtension.js.map +1 -0
- package/dist/sn/amb/Helper.d.ts +5 -0
- package/dist/sn/amb/Helper.js +6 -0
- package/dist/sn/amb/Helper.js.map +1 -0
- package/dist/sn/amb/MessageClient.d.ts +73 -0
- package/dist/sn/amb/MessageClient.js +154 -0
- package/dist/sn/amb/MessageClient.js.map +1 -0
- package/dist/sn/amb/MessageClientBuilder.d.ts +24 -0
- package/dist/sn/amb/MessageClientBuilder.js +95 -0
- package/dist/sn/amb/MessageClientBuilder.js.map +1 -0
- package/dist/sn/amb/Properties.d.ts +16 -0
- package/dist/sn/amb/Properties.js +32 -0
- package/dist/sn/amb/Properties.js.map +1 -0
- package/dist/sn/amb/ServerConnection.d.ts +132 -0
- package/dist/sn/amb/ServerConnection.js +579 -0
- package/dist/sn/amb/ServerConnection.js.map +1 -0
- package/dist/sn/amb/SessionExtension.d.ts +8 -0
- package/dist/sn/amb/SessionExtension.js +20 -0
- package/dist/sn/amb/SessionExtension.js.map +1 -0
- package/dist/sn/amb/SubscriptionCommandSender.d.ts +60 -0
- package/dist/sn/amb/SubscriptionCommandSender.js +222 -0
- package/dist/sn/amb/SubscriptionCommandSender.js.map +1 -0
- package/dist/sn/amb/TokenManagementExtension.d.ts +20 -0
- package/dist/sn/amb/TokenManagementExtension.js +90 -0
- package/dist/sn/amb/TokenManagementExtension.js.map +1 -0
- package/dist/sn/amb/XMLHttpRequest.d.ts +31 -0
- package/dist/sn/amb/XMLHttpRequest.js +287 -0
- package/dist/sn/amb/XMLHttpRequest.js.map +1 -0
- package/dist/sn/amb/cometd-nodejs-client.d.ts +1 -0
- package/dist/sn/amb/cometd-nodejs-client.js +84 -0
- package/dist/sn/amb/cometd-nodejs-client.js.map +1 -0
- package/dist/sn/amb/index.d.ts +19 -0
- package/dist/sn/amb/index.js +20 -0
- package/dist/sn/amb/index.js.map +1 -0
- package/dist/sn/application/AppRepoApplication.d.ts +166 -0
- package/dist/sn/application/AppRepoApplication.js +167 -0
- package/dist/sn/application/AppRepoApplication.js.map +1 -0
- package/dist/sn/application/ApplicationDetailModel.d.ts +71 -0
- package/dist/sn/application/ApplicationDetailModel.js +72 -0
- package/dist/sn/application/ApplicationDetailModel.js.map +1 -0
- package/dist/sn/application/ApplicationManager.d.ts +117 -0
- package/dist/sn/application/ApplicationManager.js +251 -0
- package/dist/sn/application/ApplicationManager.js.map +1 -0
- package/dist/sn/application/BatchDefinition.d.ts +16 -0
- package/dist/sn/application/BatchDefinition.js +60 -0
- package/dist/sn/application/BatchDefinition.js.map +1 -0
- package/dist/sn/application/BatchInstallation.d.ts +8 -0
- package/dist/sn/application/BatchInstallation.js +20 -0
- package/dist/sn/application/BatchInstallation.js.map +1 -0
- package/dist/sn/application/CompanyApplications.d.ts +234 -0
- package/dist/sn/application/CompanyApplications.js +91 -0
- package/dist/sn/application/CompanyApplications.js.map +1 -0
- package/dist/sn/atf/ATFTest.d.ts +27 -0
- package/dist/sn/atf/ATFTest.js +3 -0
- package/dist/sn/atf/ATFTest.js.map +1 -0
- package/dist/sn/atf/ATFTestExecutor.d.ts +115 -0
- package/dist/sn/atf/ATFTestExecutor.js +239 -0
- package/dist/sn/atf/ATFTestExecutor.js.map +1 -0
- package/dist/sn/atf/ATFTestStep.d.ts +0 -0
- package/dist/sn/atf/ATFTestStep.js +1 -0
- package/dist/sn/atf/ATFTestStep.js.map +1 -0
- package/dist/sn/atf/ATFTestSuite.d.ts +0 -0
- package/dist/sn/atf/ATFTestSuite.js +1 -0
- package/dist/sn/atf/ATFTestSuite.js.map +1 -0
- package/dist/sn/atf/TestFactory.d.ts +2 -0
- package/dist/sn/atf/TestFactory.js +3 -0
- package/dist/sn/atf/TestFactory.js.map +1 -0
- package/dist/sn/atf/TestStepFactory.d.ts +0 -0
- package/dist/sn/atf/TestStepFactory.js +1 -0
- package/dist/sn/atf/TestStepFactory.js.map +1 -0
- package/dist/sn/atf/TestSuiteFactory.d.ts +0 -0
- package/dist/sn/atf/TestSuiteFactory.js +1 -0
- package/dist/sn/atf/TestSuiteFactory.js.map +1 -0
- package/dist/sn/syslog/SyslogReader.d.ts +113 -0
- package/dist/sn/syslog/SyslogReader.js +369 -0
- package/dist/sn/syslog/SyslogReader.js.map +1 -0
- package/dist/sn/syslog/SyslogRecord.d.ts +86 -0
- package/dist/sn/syslog/SyslogRecord.js +2 -0
- package/dist/sn/syslog/SyslogRecord.js.map +1 -0
- package/package.json +8 -9
- package/dist/comm/http/CookieStore.d.ts +0 -8
- package/dist/comm/http/CookieStore.js +0 -21
- package/dist/comm/http/CookieStore.js.map +0 -1
- package/dist/comm/http/CookieStoreFactory.d.ts +0 -5
- package/dist/comm/http/CookieStoreFactory.js +0 -11
- package/dist/comm/http/CookieStoreFactory.js.map +0 -1
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { Logger } from "../../util/Logger.js";
|
|
2
|
+
import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
|
|
3
|
+
/**
|
|
4
|
+
* CompanyApplications class for retrieving company application information
|
|
5
|
+
* Provides methods to get applications shared internally within the company
|
|
6
|
+
*/
|
|
7
|
+
export class CompanyApplications {
|
|
8
|
+
COMPANY_APPS_API_URL = "/sn_appclient_api_v1.do";
|
|
9
|
+
_logger = new Logger("CompanyApplications");
|
|
10
|
+
_req;
|
|
11
|
+
_instance;
|
|
12
|
+
constructor(instance) {
|
|
13
|
+
this._instance = instance;
|
|
14
|
+
this._req = new ServiceNowRequest(instance);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Gets the list of company applications shared internally
|
|
18
|
+
* @param sharedInternally Filter for internally shared applications (default: true)
|
|
19
|
+
* @param isFirstLoad Indicates if this is the first load (default: true)
|
|
20
|
+
* @returns Promise<CompanyApplicationsResponse> Response containing list of applications
|
|
21
|
+
*/
|
|
22
|
+
async getCompanyApplications(sharedInternally = true, isFirstLoad = true) {
|
|
23
|
+
const queryParams = {
|
|
24
|
+
app_request_type: 'list_apps_versions',
|
|
25
|
+
shared_internally: sharedInternally,
|
|
26
|
+
isFirstLoad: isFirstLoad,
|
|
27
|
+
uniq_param: Date.now().toString()
|
|
28
|
+
};
|
|
29
|
+
const httpRequest = {
|
|
30
|
+
method: 'GET',
|
|
31
|
+
path: this.COMPANY_APPS_API_URL,
|
|
32
|
+
headers: {
|
|
33
|
+
'Accept': 'application/json',
|
|
34
|
+
'Content-Type': 'application/json'
|
|
35
|
+
},
|
|
36
|
+
query: queryParams,
|
|
37
|
+
body: null
|
|
38
|
+
};
|
|
39
|
+
this._logger.info(`Fetching company applications (shared_internally: ${sharedInternally})`);
|
|
40
|
+
const resp = await this._req.get(httpRequest);
|
|
41
|
+
if (resp.status === 200 && resp.bodyObject) {
|
|
42
|
+
this._logger.info(`Successfully retrieved ${resp.bodyObject.data?.length || 0} company applications`);
|
|
43
|
+
return resp.bodyObject;
|
|
44
|
+
}
|
|
45
|
+
throw new Error(`Failed to get company applications. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Gets a specific company application by scope
|
|
49
|
+
* @param scope The application scope to search for
|
|
50
|
+
* @param sharedInternally Filter for internally shared applications (default: true)
|
|
51
|
+
* @returns Promise<CompanyApplication | null> The application if found, null otherwise
|
|
52
|
+
*/
|
|
53
|
+
async getCompanyApplicationByScope(scope, sharedInternally = true) {
|
|
54
|
+
const response = await this.getCompanyApplications(sharedInternally);
|
|
55
|
+
const application = response.data?.find(app => app.scope === scope);
|
|
56
|
+
if (application) {
|
|
57
|
+
this._logger.info(`Found application: ${application.name} (${scope})`);
|
|
58
|
+
return application;
|
|
59
|
+
}
|
|
60
|
+
this._logger.warn(`Application with scope '${scope}' not found`);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Gets a specific company application by sys_id
|
|
65
|
+
* @param sysId The application sys_id to search for
|
|
66
|
+
* @param sharedInternally Filter for internally shared applications (default: true)
|
|
67
|
+
* @returns Promise<CompanyApplication | null> The application if found, null otherwise
|
|
68
|
+
*/
|
|
69
|
+
async getCompanyApplicationBySysId(sysId, sharedInternally = true) {
|
|
70
|
+
const response = await this.getCompanyApplications(sharedInternally);
|
|
71
|
+
const application = response.data?.find(app => app.sys_id === sysId);
|
|
72
|
+
if (application) {
|
|
73
|
+
this._logger.info(`Found application: ${application.name} (${sysId})`);
|
|
74
|
+
return application;
|
|
75
|
+
}
|
|
76
|
+
this._logger.warn(`Application with sys_id '${sysId}' not found`);
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Gets only installed company applications
|
|
81
|
+
* @param sharedInternally Filter for internally shared applications (default: true)
|
|
82
|
+
* @returns Promise<CompanyApplication[]> Array of installed applications
|
|
83
|
+
*/
|
|
84
|
+
async getInstalledCompanyApplications(sharedInternally = true) {
|
|
85
|
+
const response = await this.getCompanyApplications(sharedInternally);
|
|
86
|
+
const installedApps = response.data?.filter(app => app.isInstalled) || [];
|
|
87
|
+
this._logger.info(`Found ${installedApps.length} installed company applications`);
|
|
88
|
+
return installedApps;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=CompanyApplications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CompanyApplications.js","sourceRoot":"","sources":["../../../src/sn/application/CompanyApplications.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { ReferenceLink } from "../../model/types.js";
|
|
2
|
+
export type Test = {
|
|
3
|
+
"sys_mod_count": string;
|
|
4
|
+
"active": string;
|
|
5
|
+
"description": string;
|
|
6
|
+
"sys_updated_on": string;
|
|
7
|
+
"sys_tags": string;
|
|
8
|
+
"sys_class_name": string;
|
|
9
|
+
"remember": string;
|
|
10
|
+
"sys_id": string;
|
|
11
|
+
"sys_package": ReferenceLink;
|
|
12
|
+
"enable_parameterized_testing": string;
|
|
13
|
+
"sys_update_name": string;
|
|
14
|
+
"sys_updated_by": string;
|
|
15
|
+
"fail_on_server_error": string;
|
|
16
|
+
"sys_created_on": string;
|
|
17
|
+
"name": string;
|
|
18
|
+
"sys_name": string;
|
|
19
|
+
"sys_scope": ReferenceLink;
|
|
20
|
+
"copied_from": string;
|
|
21
|
+
"sn_atf_tg_generated": string;
|
|
22
|
+
"parameters": string;
|
|
23
|
+
"sys_created_by": string;
|
|
24
|
+
"sys_policy": string;
|
|
25
|
+
};
|
|
26
|
+
export declare class ATFTest {
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ATFTest.js","sourceRoot":"","sources":["../../../src/sn/atf/ATFTest.ts"],"names":[],"mappings":"AA8BA,MAAM,OAAO,OAAO;CAInB"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
|
|
2
|
+
import { ReferenceLink } from "../../model/types.js";
|
|
3
|
+
import { ServiceNowInstance } from "../ServiceNowInstance.js";
|
|
4
|
+
export declare class ATFTestExecutor {
|
|
5
|
+
_req: ServiceNowRequest;
|
|
6
|
+
_instance: ServiceNowInstance;
|
|
7
|
+
constructor(instance: ServiceNowInstance);
|
|
8
|
+
executeTest(testId: string): Promise<TestResult>;
|
|
9
|
+
private waitForTestCompletion;
|
|
10
|
+
private doGetTestProgress;
|
|
11
|
+
private getTestProgress;
|
|
12
|
+
private getTestResult;
|
|
13
|
+
/**
|
|
14
|
+
* Executes a test suite by sys_id using the ServiceNow CI/CD API
|
|
15
|
+
* @param testSuiteSysId The sys_id of the test suite to execute
|
|
16
|
+
* @param options Optional execution parameters
|
|
17
|
+
* @returns Promise<TestSuiteExecutionResponse> The execution response with progress information
|
|
18
|
+
*/
|
|
19
|
+
executeTestSuite(testSuiteSysId: string, options?: Partial<TestSuiteExecutionRequest>): Promise<TestSuiteExecutionResponse>;
|
|
20
|
+
/**
|
|
21
|
+
* Executes a test suite by name using the ServiceNow CI/CD API
|
|
22
|
+
* @param testSuiteName The name of the test suite to execute
|
|
23
|
+
* @param options Optional execution parameters
|
|
24
|
+
* @returns Promise<TestSuiteExecutionResponse> The execution response with progress information
|
|
25
|
+
*/
|
|
26
|
+
executeTestSuiteByName(testSuiteName: string, options?: Partial<TestSuiteExecutionRequest>): Promise<TestSuiteExecutionResponse>;
|
|
27
|
+
/**
|
|
28
|
+
* Gets the progress of a test suite execution
|
|
29
|
+
* @param progressId The progress ID from the execution response
|
|
30
|
+
* @returns Promise<TestSuiteExecutionResponse> The current progress information
|
|
31
|
+
*/
|
|
32
|
+
getTestSuiteProgress(progressId: string): Promise<TestSuiteExecutionResponse>;
|
|
33
|
+
/**
|
|
34
|
+
* Waits for test suite execution to complete and returns the results
|
|
35
|
+
* @param progressId The progress ID from the execution response
|
|
36
|
+
* @param pollIntervalMs Polling interval in milliseconds (default: 5000)
|
|
37
|
+
* @returns Promise<TestSuiteExecutionResult> The final execution results
|
|
38
|
+
*/
|
|
39
|
+
waitForTestSuiteCompletion(progressId: string, pollIntervalMs?: number): Promise<TestSuiteExecutionResult>;
|
|
40
|
+
/**
|
|
41
|
+
* Gets the results of a completed test suite execution
|
|
42
|
+
* @param resultsId The results ID from the progress response
|
|
43
|
+
* @returns Promise<TestSuiteExecutionResult> The execution results
|
|
44
|
+
*/
|
|
45
|
+
getTestSuiteResults(resultsId: string): Promise<TestSuiteExecutionResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Executes a test suite and waits for completion
|
|
48
|
+
* @param testSuiteSysId The sys_id of the test suite to execute
|
|
49
|
+
* @param options Optional execution parameters
|
|
50
|
+
* @param pollIntervalMs Polling interval in milliseconds (default: 5000)
|
|
51
|
+
* @returns Promise<TestSuiteExecutionResult> The final execution results
|
|
52
|
+
*/
|
|
53
|
+
executeTestSuiteAndWait(testSuiteSysId: string, options?: Partial<TestSuiteExecutionRequest>, pollIntervalMs?: number): Promise<TestSuiteExecutionResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Executes a test suite by name and waits for completion
|
|
56
|
+
* @param testSuiteName The name of the test suite to execute
|
|
57
|
+
* @param options Optional execution parameters
|
|
58
|
+
* @param pollIntervalMs Polling interval in milliseconds (default: 5000)
|
|
59
|
+
* @returns Promise<TestSuiteExecutionResult> The final execution results
|
|
60
|
+
*/
|
|
61
|
+
executeTestSuiteByNameAndWait(testSuiteName: string, options?: Partial<TestSuiteExecutionRequest>, pollIntervalMs?: number): Promise<TestSuiteExecutionResult>;
|
|
62
|
+
}
|
|
63
|
+
export type TestResult = {
|
|
64
|
+
"end_time_millis": string;
|
|
65
|
+
"execution_tracker": ReferenceLink;
|
|
66
|
+
"test_name": string;
|
|
67
|
+
"test": ReferenceLink;
|
|
68
|
+
"rollback_context": ReferenceLink;
|
|
69
|
+
"root_tracker_id": ReferenceLink;
|
|
70
|
+
"output": string;
|
|
71
|
+
"sys_id": string;
|
|
72
|
+
"run_time": string;
|
|
73
|
+
"status": string;
|
|
74
|
+
};
|
|
75
|
+
export interface TestSuiteExecutionRequest {
|
|
76
|
+
test_suite_sys_id?: string;
|
|
77
|
+
test_suite_name?: string;
|
|
78
|
+
browser_name?: string;
|
|
79
|
+
browser_version?: string;
|
|
80
|
+
is_performance_run?: boolean;
|
|
81
|
+
os_name?: string;
|
|
82
|
+
os_version?: string;
|
|
83
|
+
run_in_cloud?: boolean;
|
|
84
|
+
}
|
|
85
|
+
export interface TestSuiteExecutionResponse {
|
|
86
|
+
links: {
|
|
87
|
+
progress: {
|
|
88
|
+
id: string;
|
|
89
|
+
url: string;
|
|
90
|
+
};
|
|
91
|
+
results?: {
|
|
92
|
+
id: string;
|
|
93
|
+
url: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
status: string;
|
|
97
|
+
status_label: string;
|
|
98
|
+
status_message: string;
|
|
99
|
+
status_detail: string;
|
|
100
|
+
error: string;
|
|
101
|
+
percent_complete: number;
|
|
102
|
+
}
|
|
103
|
+
export interface TestSuiteExecutionResult {
|
|
104
|
+
sys_id: string;
|
|
105
|
+
test_suite: ReferenceLink;
|
|
106
|
+
status: string;
|
|
107
|
+
start_time: string;
|
|
108
|
+
end_time: string;
|
|
109
|
+
duration: string;
|
|
110
|
+
total_tests: number;
|
|
111
|
+
passed_tests: number;
|
|
112
|
+
failed_tests: number;
|
|
113
|
+
skipped_tests: number;
|
|
114
|
+
output: string;
|
|
115
|
+
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { ServiceNowProcessorRequest } from "../../comm/http/ServiceNowProcessorRequest.js";
|
|
2
|
+
import { ServiceNowRequest } from "../../comm/http/ServiceNowRequest.js";
|
|
3
|
+
export class ATFTestExecutor {
|
|
4
|
+
_req = new ServiceNowRequest();
|
|
5
|
+
_instance;
|
|
6
|
+
constructor(instance) {
|
|
7
|
+
this._instance = instance;
|
|
8
|
+
this._req = new ServiceNowRequest(instance);
|
|
9
|
+
}
|
|
10
|
+
async executeTest(testId) {
|
|
11
|
+
const dataObj = {
|
|
12
|
+
'sysparm_want_session_messages': 'true',
|
|
13
|
+
'sysparm_ajax_processor_ut_test_id': testId,
|
|
14
|
+
'sysparm_ajax_processor_test_runner_session_id': '',
|
|
15
|
+
'sysparm_ajax_processor_is_pausing_enabled': '',
|
|
16
|
+
'sysparm_ajax_processor_pause_before_rollback': '',
|
|
17
|
+
'sysparm_ajax_processor_use_cloud_runner': '',
|
|
18
|
+
'sysparm_ajax_processor_performance_run': '',
|
|
19
|
+
'ni.nolog.x_referer': 'ignore',
|
|
20
|
+
'x_referer': 'sys_atf_test.do%3Fsys_id%3D817a3214835b4210a9f8aec0deaad3f4%26sysparm_view%3D%26sysparm_domain%3Dnull%26sysparm_domain_scope%3Dnull'
|
|
21
|
+
};
|
|
22
|
+
const proc = new ServiceNowProcessorRequest(this._instance);
|
|
23
|
+
const result = await proc.execute("TestExecutorAjax", "start", "global", dataObj);
|
|
24
|
+
//In this case, result is the progress worker id.
|
|
25
|
+
if (result != null) {
|
|
26
|
+
const resultId = await this.waitForTestCompletion(result);
|
|
27
|
+
if (resultId) {
|
|
28
|
+
const testResult = await this.getTestResult(resultId);
|
|
29
|
+
if (testResult)
|
|
30
|
+
return testResult;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
async waitForTestCompletion(progressId) {
|
|
36
|
+
let pr = await this.doGetTestProgress(progressId);
|
|
37
|
+
//console.log("Percent Complete: " + pr.percent_complete);
|
|
38
|
+
while (pr.percent_complete != null && pr.percent_complete < 100) {
|
|
39
|
+
await new Promise(resolve => setTimeout(resolve, 500));
|
|
40
|
+
pr = await this.doGetTestProgress(progressId);
|
|
41
|
+
//console.log("Percent Complete: " + pr.percent_complete);
|
|
42
|
+
}
|
|
43
|
+
if (pr && pr.percent_complete == 100 && pr.links.results && pr.links.results.id) {
|
|
44
|
+
return pr.links.results.id;
|
|
45
|
+
}
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
async doGetTestProgress(progressId) {
|
|
49
|
+
const data = await this.getTestProgress(progressId);
|
|
50
|
+
try {
|
|
51
|
+
if (data.result) {
|
|
52
|
+
return data.result;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
async getTestProgress(progressId) {
|
|
61
|
+
const request = { path: "/api/sn_cicd/progress/" + progressId, headers: null, query: null, body: null };
|
|
62
|
+
const resp = await this._req.get(request);
|
|
63
|
+
if (resp.status == 200) {
|
|
64
|
+
return resp.bodyObject;
|
|
65
|
+
}
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
async getTestResult(testResultId) {
|
|
69
|
+
const request = { path: "/api/now/table/sys_atf_test_result?sysparm_query=sys_id=" + testResultId, headers: null, query: null, body: null };
|
|
70
|
+
const resp = await this._req.get(request);
|
|
71
|
+
if (resp.status == 200) {
|
|
72
|
+
const tableResp = resp.bodyObject;
|
|
73
|
+
if (tableResp.result && tableResp.result.length > 0) {
|
|
74
|
+
return tableResp.result[0];
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
// private async getTestStepResults(){
|
|
80
|
+
// }
|
|
81
|
+
/**
|
|
82
|
+
* Executes a test suite by sys_id using the ServiceNow CI/CD API
|
|
83
|
+
* @param testSuiteSysId The sys_id of the test suite to execute
|
|
84
|
+
* @param options Optional execution parameters
|
|
85
|
+
* @returns Promise<TestSuiteExecutionResponse> The execution response with progress information
|
|
86
|
+
*/
|
|
87
|
+
async executeTestSuite(testSuiteSysId, options) {
|
|
88
|
+
const queryParams = {
|
|
89
|
+
test_suite_sys_id: testSuiteSysId
|
|
90
|
+
};
|
|
91
|
+
// Add optional parameters if provided
|
|
92
|
+
if (options) {
|
|
93
|
+
if (options.browser_name)
|
|
94
|
+
queryParams.browser_name = options.browser_name;
|
|
95
|
+
if (options.browser_version)
|
|
96
|
+
queryParams.browser_version = options.browser_version;
|
|
97
|
+
if (options.is_performance_run !== undefined)
|
|
98
|
+
queryParams.is_performance_run = options.is_performance_run;
|
|
99
|
+
if (options.os_name)
|
|
100
|
+
queryParams.os_name = options.os_name;
|
|
101
|
+
if (options.os_version)
|
|
102
|
+
queryParams.os_version = options.os_version;
|
|
103
|
+
if (options.run_in_cloud !== undefined)
|
|
104
|
+
queryParams.run_in_cloud = options.run_in_cloud;
|
|
105
|
+
}
|
|
106
|
+
const request = {
|
|
107
|
+
path: "/api/sn_cicd/testsuite/run",
|
|
108
|
+
headers: {
|
|
109
|
+
'Accept': 'application/json'
|
|
110
|
+
},
|
|
111
|
+
query: queryParams,
|
|
112
|
+
body: null
|
|
113
|
+
};
|
|
114
|
+
const resp = await this._req.post(request);
|
|
115
|
+
if (resp.status === 200 && resp.bodyObject && resp.bodyObject.result) {
|
|
116
|
+
return resp.bodyObject.result;
|
|
117
|
+
}
|
|
118
|
+
throw new Error(`Failed to execute test suite. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Executes a test suite by name using the ServiceNow CI/CD API
|
|
122
|
+
* @param testSuiteName The name of the test suite to execute
|
|
123
|
+
* @param options Optional execution parameters
|
|
124
|
+
* @returns Promise<TestSuiteExecutionResponse> The execution response with progress information
|
|
125
|
+
*/
|
|
126
|
+
async executeTestSuiteByName(testSuiteName, options) {
|
|
127
|
+
const queryParams = {
|
|
128
|
+
test_suite_name: testSuiteName
|
|
129
|
+
};
|
|
130
|
+
// Add optional parameters if provided
|
|
131
|
+
if (options) {
|
|
132
|
+
if (options.browser_name)
|
|
133
|
+
queryParams.browser_name = options.browser_name;
|
|
134
|
+
if (options.browser_version)
|
|
135
|
+
queryParams.browser_version = options.browser_version;
|
|
136
|
+
if (options.is_performance_run !== undefined)
|
|
137
|
+
queryParams.is_performance_run = options.is_performance_run;
|
|
138
|
+
if (options.os_name)
|
|
139
|
+
queryParams.os_name = options.os_name;
|
|
140
|
+
if (options.os_version)
|
|
141
|
+
queryParams.os_version = options.os_version;
|
|
142
|
+
if (options.run_in_cloud !== undefined)
|
|
143
|
+
queryParams.run_in_cloud = options.run_in_cloud;
|
|
144
|
+
}
|
|
145
|
+
const request = {
|
|
146
|
+
path: "/api/sn_cicd/testsuite/run",
|
|
147
|
+
headers: {
|
|
148
|
+
'Accept': 'application/json'
|
|
149
|
+
},
|
|
150
|
+
query: queryParams,
|
|
151
|
+
body: null
|
|
152
|
+
};
|
|
153
|
+
const resp = await this._req.post(request);
|
|
154
|
+
if (resp.status === 200 && resp.bodyObject && resp.bodyObject.result) {
|
|
155
|
+
return resp.bodyObject.result;
|
|
156
|
+
}
|
|
157
|
+
throw new Error(`Failed to execute test suite by name. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Gets the progress of a test suite execution
|
|
161
|
+
* @param progressId The progress ID from the execution response
|
|
162
|
+
* @returns Promise<TestSuiteExecutionResponse> The current progress information
|
|
163
|
+
*/
|
|
164
|
+
async getTestSuiteProgress(progressId) {
|
|
165
|
+
const request = {
|
|
166
|
+
path: `/api/sn_cicd/progress/${progressId}`,
|
|
167
|
+
headers: {
|
|
168
|
+
'Accept': 'application/json'
|
|
169
|
+
},
|
|
170
|
+
query: null,
|
|
171
|
+
body: null
|
|
172
|
+
};
|
|
173
|
+
const resp = await this._req.get(request);
|
|
174
|
+
if (resp.status === 200 && resp.bodyObject && resp.bodyObject.result) {
|
|
175
|
+
return resp.bodyObject.result;
|
|
176
|
+
}
|
|
177
|
+
throw new Error(`Failed to get test suite progress. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Waits for test suite execution to complete and returns the results
|
|
181
|
+
* @param progressId The progress ID from the execution response
|
|
182
|
+
* @param pollIntervalMs Polling interval in milliseconds (default: 5000)
|
|
183
|
+
* @returns Promise<TestSuiteExecutionResult> The final execution results
|
|
184
|
+
*/
|
|
185
|
+
async waitForTestSuiteCompletion(progressId, pollIntervalMs = 5000) {
|
|
186
|
+
let progress = await this.getTestSuiteProgress(progressId);
|
|
187
|
+
while (progress.percent_complete < 100 && progress.status !== "3" && progress.status !== "4") {
|
|
188
|
+
await new Promise(resolve => setTimeout(resolve, pollIntervalMs));
|
|
189
|
+
progress = await this.getTestSuiteProgress(progressId);
|
|
190
|
+
}
|
|
191
|
+
if (progress.links && progress.links.results && progress.links.results.id) {
|
|
192
|
+
return await this.getTestSuiteResults(progress.links.results.id);
|
|
193
|
+
}
|
|
194
|
+
throw new Error(`Test suite execution did not complete successfully. Status: ${progress.status_label}, Error: ${progress.error}`);
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Gets the results of a completed test suite execution
|
|
198
|
+
* @param resultsId The results ID from the progress response
|
|
199
|
+
* @returns Promise<TestSuiteExecutionResult> The execution results
|
|
200
|
+
*/
|
|
201
|
+
async getTestSuiteResults(resultsId) {
|
|
202
|
+
const request = {
|
|
203
|
+
path: `/api/now/table/sys_atf_test_suite_result?sysparm_query=sys_id=${resultsId}`,
|
|
204
|
+
headers: {
|
|
205
|
+
'Accept': 'application/json'
|
|
206
|
+
},
|
|
207
|
+
query: null,
|
|
208
|
+
body: null
|
|
209
|
+
};
|
|
210
|
+
const resp = await this._req.get(request);
|
|
211
|
+
if (resp.status === 200 && resp.bodyObject && resp.bodyObject.result && resp.bodyObject.result.length > 0) {
|
|
212
|
+
return resp.bodyObject.result[0];
|
|
213
|
+
}
|
|
214
|
+
throw new Error(`Failed to get test suite results. Status: ${resp.status}, Response: ${JSON.stringify(resp.bodyObject)}`);
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Executes a test suite and waits for completion
|
|
218
|
+
* @param testSuiteSysId The sys_id of the test suite to execute
|
|
219
|
+
* @param options Optional execution parameters
|
|
220
|
+
* @param pollIntervalMs Polling interval in milliseconds (default: 5000)
|
|
221
|
+
* @returns Promise<TestSuiteExecutionResult> The final execution results
|
|
222
|
+
*/
|
|
223
|
+
async executeTestSuiteAndWait(testSuiteSysId, options, pollIntervalMs = 5000) {
|
|
224
|
+
const executionResponse = await this.executeTestSuite(testSuiteSysId, options);
|
|
225
|
+
return await this.waitForTestSuiteCompletion(executionResponse.links.progress.id, pollIntervalMs);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Executes a test suite by name and waits for completion
|
|
229
|
+
* @param testSuiteName The name of the test suite to execute
|
|
230
|
+
* @param options Optional execution parameters
|
|
231
|
+
* @param pollIntervalMs Polling interval in milliseconds (default: 5000)
|
|
232
|
+
* @returns Promise<TestSuiteExecutionResult> The final execution results
|
|
233
|
+
*/
|
|
234
|
+
async executeTestSuiteByNameAndWait(testSuiteName, options, pollIntervalMs = 5000) {
|
|
235
|
+
const executionResponse = await this.executeTestSuiteByName(testSuiteName, options);
|
|
236
|
+
return await this.waitForTestSuiteCompletion(executionResponse.links.progress.id, pollIntervalMs);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=ATFTestExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ATFTestExecutor.js","sourceRoot":"","sources":["../../../src/sn/atf/ATFTestExecutor.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=ATFTestStep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ATFTestStep.js","sourceRoot":"","sources":["../../../src/sn/atf/ATFTestStep.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=ATFTestSuite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ATFTestSuite.js","sourceRoot":"","sources":["../../../src/sn/atf/ATFTestSuite.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestFactory.js","sourceRoot":"","sources":["../../../src/sn/atf/TestFactory.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,WAAW;CAEvB"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=TestStepFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestStepFactory.js","sourceRoot":"","sources":["../../../src/sn/atf/TestStepFactory.ts"],"names":[],"mappings":""}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=TestSuiteFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TestSuiteFactory.js","sourceRoot":"","sources":["../../../src/sn/atf/TestSuiteFactory.ts"],"names":[],"mappings":""}
|