@dynatrace/rum-javascript-sdk 1.329.6 → 1.331.7
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/README.md +8 -8
- package/dist/testing/install.js +4 -1
- package/dist/testing/test.js +105 -15
- package/dist/types/index-typedoc.d.ts +1 -0
- package/dist/types/index-typedoc.js +2 -1
- package/dist/types/internal/beacon-query.d.ts +4 -1
- package/dist/types/internal/beacon-query.js +4 -1
- package/dist/types/rum-events/event-context/event-context.d.ts +3 -0
- package/dist/types/rum-events/event-context/event-context.js +1 -1
- package/dist/types/rum-events/event-updates.d.ts +3 -0
- package/dist/types/rum-events/event-updates.js +1 -1
- package/dist/types/rum-events/index.d.ts +1 -0
- package/dist/types/rum-events/index.js +2 -1
- package/dist/types/rum-events/json-event.d.ts +5 -8
- package/dist/types/rum-events/json-event.js +1 -1
- package/dist/types/rum-events/rum-biz-event.d.ts +8 -4
- package/dist/types/rum-events/rum-biz-event.js +2 -8
- package/dist/types/rum-events/rum-event-keys.d.ts +342 -0
- package/dist/types/rum-events/rum-event-keys.js +469 -0
- package/dist/types/rum-events/rum-event.d.ts +4 -3
- package/dist/types/rum-events/rum-event.js +1 -1
- package/dist/types/rum-events/rum-internal-selfmonitoring-event.d.ts +36 -9
- package/dist/types/rum-events/rum-internal-selfmonitoring-event.js +21 -5
- package/dist/types/rum-events/rum-long-task-event.d.ts +15 -16
- package/dist/types/rum-events/rum-long-task-event.js +2 -10
- package/dist/types/rum-events/rum-page-summary-event.d.ts +109 -166
- package/dist/types/rum-events/rum-page-summary-event.js +2 -88
- package/dist/types/rum-events/rum-selfmonitoring-event.d.ts +13 -11
- package/dist/types/rum-events/rum-selfmonitoring-event.js +1 -7
- package/dist/types/rum-events/rum-session-properties-event.d.ts +4 -3
- package/dist/types/rum-events/rum-session-properties-event.js +1 -1
- package/dist/types/rum-events/rum-standalone-csp-rule-violation-event.d.ts +6 -6
- package/dist/types/rum-events/rum-standalone-csp-rule-violation-event.js +1 -1
- package/dist/types/rum-events/rum-standalone-exception-event.d.ts +6 -6
- package/dist/types/rum-events/rum-standalone-exception-event.js +1 -1
- package/dist/types/rum-events/rum-standalone-navigation-event.d.ts +11 -7
- package/dist/types/rum-events/rum-standalone-navigation-event.js +2 -5
- package/dist/types/rum-events/rum-user-action-event.d.ts +96 -86
- package/dist/types/rum-events/rum-user-action-event.js +22 -37
- package/dist/types/rum-events/rum-user-interaction-event.d.ts +126 -152
- package/dist/types/rum-events/rum-user-interaction-event.js +4 -90
- package/dist/types/rum-events/rum-visibility-change-event.d.ts +12 -9
- package/dist/types/rum-events/rum-visibility-change-event.js +2 -6
- package/dist/types/rum-events/rum-web-request-event.d.ts +84 -105
- package/dist/types/rum-events/rum-web-request-event.js +9 -57
- package/dist/types/rum-events/schema-versions.d.ts +1 -1
- package/dist/types/rum-events/schema-versions.js +2 -2
- package/dist/types/rum-events/shared-namespaces-and-fields/csp-fields.d.ts +18 -30
- package/dist/types/rum-events/shared-namespaces-and-fields/csp-fields.js +3 -22
- package/dist/types/rum-events/shared-namespaces-and-fields/exception-fields.d.ts +12 -18
- package/dist/types/rum-events/shared-namespaces-and-fields/exception-fields.js +2 -19
- package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-error-fields.d.ts +6 -6
- package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-error-fields.js +1 -10
- package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.d.ts +50 -94
- package/dist/types/rum-events/shared-namespaces-and-fields/general-rum-event-fields.js +1 -75
- package/dist/types/rum-events/shared-namespaces-and-fields/http-namespace.d.ts +7 -8
- package/dist/types/rum-events/shared-namespaces-and-fields/http-namespace.js +2 -10
- package/dist/types/rum-events/shared-namespaces-and-fields/navigation-fields.d.ts +10 -10
- package/dist/types/rum-events/shared-namespaces-and-fields/navigation-fields.js +5 -15
- package/dist/types/rum-events/shared-namespaces-and-fields/page-source-fields.d.ts +8 -4
- package/dist/types/rum-events/shared-namespaces-and-fields/page-source-fields.js +2 -5
- package/dist/types/rum-events/shared-namespaces-and-fields/request-fields.d.ts +7 -7
- package/dist/types/rum-events/shared-namespaces-and-fields/request-fields.js +2 -9
- package/dist/types/rum-events/shared-namespaces-and-fields/view-source-fields.d.ts +7 -7
- package/dist/types/rum-events/shared-namespaces-and-fields/view-source-fields.js +2 -9
- package/dist/types/user-actions/user-action-end-event.d.ts +2 -2
- package/dist/types/user-actions/user-action-end-event.js +1 -1
- package/docs/testing.md +92 -0
- package/docs/types.md +1 -1
- package/package.json +4 -4
|
@@ -1,10 +1,3 @@
|
|
|
1
1
|
// https://dt-rnd.atlassian.net/wiki/spaces/DEX/pages/165349687/Request+fields+URL+and+network+namespace
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
export var RequestFieldsKeys;
|
|
6
|
-
(function (RequestFieldsKeys) {
|
|
7
|
-
RequestFieldsKeys["NETWORK$PROTOCOL$NAME"] = "network.protocol.name";
|
|
8
|
-
RequestFieldsKeys["URL$FULL"] = "url.full";
|
|
9
|
-
})(RequestFieldsKeys || (RequestFieldsKeys = {}));
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zb3VyY2UvdHlwZXMvcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3JlcXVlc3QtZmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdHQUF3RztBQUV4Rzs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFrQixpQkFHakI7QUFIRCxXQUFrQixpQkFBaUI7SUFDL0Isb0VBQStDLENBQUE7SUFDL0MsMENBQXFCLENBQUE7QUFDekIsQ0FBQyxFQUhpQixpQkFBaUIsS0FBakIsaUJBQWlCLFFBR2xDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9kdC1ybmQuYXRsYXNzaWFuLm5ldC93aWtpL3NwYWNlcy9ERVgvcGFnZXMvMTY1MzQ5Njg3L1JlcXVlc3QrZmllbGRzK1VSTCthbmQrbmV0d29yaytuYW1lc3BhY2VcblxuLyoqXG4gKiBAY2F0ZWdvcnkgU2hhcmVkIE5hbWVzcGFjZXMgJiBGaWVsZHNcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gUmVxdWVzdEZpZWxkc0tleXMge1xuICAgIE5FVFdPUkskUFJPVE9DT0wkTkFNRSA9IFwibmV0d29yay5wcm90b2NvbC5uYW1lXCIsXG4gICAgVVJMJEZVTEwgPSBcInVybC5mdWxsXCJcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgUmVxdWVzdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0RmllbGRzIHtcbiAgICBbUmVxdWVzdEZpZWxkc0tleXMuVVJMJEZVTExdOiBzdHJpbmc7XG4gICAgW1JlcXVlc3RGaWVsZHNLZXlzLk5FVFdPUkskUFJPVE9DT0wkTkFNRV06IHN0cmluZztcbn1cbiJdfQ==
|
|
2
|
+
export {};
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdC1maWVsZHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zb3VyY2UvdHlwZXMvcnVtLWV2ZW50cy9zaGFyZWQtbmFtZXNwYWNlcy1hbmQtZmllbGRzL3JlcXVlc3QtZmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdHQUF3RyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZHQtcm5kLmF0bGFzc2lhbi5uZXQvd2lraS9zcGFjZXMvREVYL3BhZ2VzLzE2NTM0OTY4Ny9SZXF1ZXN0K2ZpZWxkcytVUkwrYW5kK25ldHdvcmsrbmFtZXNwYWNlXG5cbmltcG9ydCB0eXBlIHsgUnVtRXZlbnRLZXlzIH0gZnJvbSBcIi4uL3J1bS1ldmVudC1rZXlzLmpzXCI7XG5cbi8qKlxuICogUmVxdWVzdCBVUkwgYW5kIG5ldHdvcmsgcHJvdG9jb2wgZmllbGRzLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgUmVxdWVzdEZpZWxkc0tleXMgPVxuICAgIHwgUnVtRXZlbnRLZXlzLk5FVFdPUkskUFJPVE9DT0wkTkFNRVxuICAgIHwgUnVtRXZlbnRLZXlzLlVSTCRGVUxMO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBSZXF1ZXN0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RGaWVsZHMge1xuICAgIFtSdW1FdmVudEtleXMuVVJMJEZVTExdOiBzdHJpbmc7XG4gICAgW1J1bUV2ZW50S2V5cy5ORVRXT1JLJFBST1RPQ09MJE5BTUVdOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import type { RumEventKeys } from "../rum-event-keys.js";
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* View source fields.
|
|
4
|
+
*
|
|
5
|
+
* @ignore
|
|
3
6
|
*/
|
|
4
|
-
export
|
|
5
|
-
VIEW$SOURCE$DETECTED_NAME = "view.source.detected_name",
|
|
6
|
-
VIEW$SOURCE$URL$FULL = "view.source.url.full"
|
|
7
|
-
}
|
|
7
|
+
export type ViewSourceFieldsKeys = RumEventKeys.VIEW$SOURCE$DETECTED_NAME | RumEventKeys.VIEW$SOURCE$URL$FULL;
|
|
8
8
|
/**
|
|
9
9
|
* @category Lifecycle & Navigation
|
|
10
10
|
*/
|
|
11
11
|
export interface ViewSourceFields {
|
|
12
|
-
[
|
|
13
|
-
[
|
|
12
|
+
[RumEventKeys.VIEW$SOURCE$URL$FULL]?: string;
|
|
13
|
+
[RumEventKeys.VIEW$SOURCE$DETECTED_NAME]?: string;
|
|
14
14
|
}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
export var ViewSourceFieldsKeys;
|
|
5
|
-
(function (ViewSourceFieldsKeys) {
|
|
6
|
-
ViewSourceFieldsKeys["VIEW$SOURCE$DETECTED_NAME"] = "view.source.detected_name";
|
|
7
|
-
ViewSourceFieldsKeys["VIEW$SOURCE$URL$FULL"] = "view.source.url.full";
|
|
8
|
-
})(ViewSourceFieldsKeys || (ViewSourceFieldsKeys = {}));
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1zb3VyY2UtZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc291cmNlL3R5cGVzL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy92aWV3LXNvdXJjZS1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBa0Isb0JBR2pCO0FBSEQsV0FBa0Isb0JBQW9CO0lBQ2xDLCtFQUF1RCxDQUFBO0lBQ3ZELHFFQUE2QyxDQUFBO0FBQ2pELENBQUMsRUFIaUIsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUdyQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGNhdGVnb3J5IFNoYXJlZCBOYW1lc3BhY2VzICYgRmllbGRzXG4gKi9cbmV4cG9ydCBjb25zdCBlbnVtIFZpZXdTb3VyY2VGaWVsZHNLZXlzIHtcbiAgICBWSUVXJFNPVVJDRSRERVRFQ1RFRF9OQU1FID0gXCJ2aWV3LnNvdXJjZS5kZXRlY3RlZF9uYW1lXCIsXG4gICAgVklFVyRTT1VSQ0UkVVJMJEZVTEwgPSBcInZpZXcuc291cmNlLnVybC5mdWxsXCJcbn1cblxuLyoqXG4gKiBAY2F0ZWdvcnkgTGlmZWN5Y2xlICYgTmF2aWdhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdTb3VyY2VGaWVsZHMge1xuICAgIFtWaWV3U291cmNlRmllbGRzS2V5cy5WSUVXJFNPVVJDRSRVUkwkRlVMTF0/OiBzdHJpbmc7XG4gICAgW1ZpZXdTb3VyY2VGaWVsZHNLZXlzLlZJRVckU09VUkNFJERFVEVDVEVEX05BTUVdPzogc3RyaW5nO1xufVxuIl19
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1zb3VyY2UtZmllbGRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc291cmNlL3R5cGVzL3J1bS1ldmVudHMvc2hhcmVkLW5hbWVzcGFjZXMtYW5kLWZpZWxkcy92aWV3LXNvdXJjZS1maWVsZHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVtRXZlbnRLZXlzIH0gZnJvbSBcIi4uL3J1bS1ldmVudC1rZXlzLmpzXCI7XG5cbi8qKlxuICogVmlldyBzb3VyY2UgZmllbGRzLlxuICpcbiAqIEBpZ25vcmVcbiAqL1xuZXhwb3J0IHR5cGUgVmlld1NvdXJjZUZpZWxkc0tleXMgPVxuICAgIHwgUnVtRXZlbnRLZXlzLlZJRVckU09VUkNFJERFVEVDVEVEX05BTUVcbiAgICB8IFJ1bUV2ZW50S2V5cy5WSUVXJFNPVVJDRSRVUkwkRlVMTDtcblxuLyoqXG4gKiBAY2F0ZWdvcnkgTGlmZWN5Y2xlICYgTmF2aWdhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpZXdTb3VyY2VGaWVsZHMge1xuICAgIFtSdW1FdmVudEtleXMuVklFVyRTT1VSQ0UkVVJMJEZVTExdPzogc3RyaW5nO1xuICAgIFtSdW1FdmVudEtleXMuVklFVyRTT1VSQ0UkREVURUNURURfTkFNRV0/OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { BaseRUMUserActionEvent } from "../rum-events/rum-user-action-event.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { RumEventKeys } from "../rum-events/rum-event-keys.js";
|
|
3
3
|
/**
|
|
4
4
|
* @category User Actions
|
|
5
5
|
* @inline
|
|
6
6
|
* @experimental
|
|
7
7
|
*/
|
|
8
|
-
export type UserActionTrackerMetadata = Omit<BaseRUMUserActionEvent,
|
|
8
|
+
export type UserActionTrackerMetadata = Omit<BaseRUMUserActionEvent, RumEventKeys.DURATION | RumEventKeys.START_TIME>;
|
|
9
9
|
/**
|
|
10
10
|
* Data provided to the callback of [dynatrace.userActions.subscribe]{@link UserActions.subscribe}.
|
|
11
11
|
*
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1hY3Rpb24tZW5kLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc291cmNlL3R5cGVzL3VzZXItYWN0aW9ucy91c2VyLWFjdGlvbi1lbmQtZXZlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFzZVJVTVVzZXJBY3Rpb25FdmVudCB9IGZyb20gXCIuLi9ydW0tZXZlbnRzL3J1bS11c2VyLWFjdGlvbi1ldmVudC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSdW1FdmVudEtleXMgfSBmcm9tIFwiLi4vcnVtLWV2ZW50cy9ydW0tZXZlbnQta2V5cy5qc1wiO1xuXG4vKipcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBpbmxpbmVcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IHR5cGUgVXNlckFjdGlvblRyYWNrZXJNZXRhZGF0YSA9IE9taXQ8QmFzZVJVTVVzZXJBY3Rpb25FdmVudCwgUnVtRXZlbnRLZXlzLkRVUkFUSU9OIHwgUnVtRXZlbnRLZXlzLlNUQVJUX1RJTUU+O1xuXG4vKipcbiAqIERhdGEgcHJvdmlkZWQgdG8gdGhlIGNhbGxiYWNrIG9mIFtkeW5hdHJhY2UudXNlckFjdGlvbnMuc3Vic2NyaWJlXXtAbGluayBVc2VyQWN0aW9ucy5zdWJzY3JpYmV9LlxuICpcbiAqIEBjYXRlZ29yeSBVc2VyIEFjdGlvbnNcbiAqIEBleHBlcmltZW50YWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVc2VyQWN0aW9uRW5kRXZlbnQge1xuICAgIC8qKlxuICAgICAqIElmIGFuIGFjdGl2aXR5IHdhcyByZWNvcmRlZCBgdHJ1ZWAsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgICAqL1xuICAgIGhhZEFjdGl2aXR5OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSB0aW1lIHRoZSB1c2VyIGFjdGlvbiBlbmRlZC5cbiAgICAgKi9cbiAgICBlbmQ6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgICAvKipcbiAgICAgKiBNZXRhZGF0YSBhYm91dCB0aGUgdXNlciBhY3Rpb24uXG4gICAgICovXG4gICAgbWV0YWRhdGE6IFVzZXJBY3Rpb25UcmFja2VyTWV0YWRhdGE7XG59XG4iXX0=
|
package/docs/testing.md
CHANGED
|
@@ -52,12 +52,104 @@ test("expect specific event", async ({ page, dynatraceTesting }) => {
|
|
|
52
52
|
});
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
## Important: Fixture Destructuring Order
|
|
56
|
+
|
|
57
|
+
⚠️ **The order of fixture destructuring matters!**
|
|
58
|
+
|
|
59
|
+
The `dynatraceTesting` fixture must be destructured **before** any custom fixtures that navigate the page. This ensures the RUM JavaScript is injected before navigation occurs.
|
|
60
|
+
|
|
61
|
+
### ✅ Correct Order
|
|
62
|
+
```typescript
|
|
63
|
+
test("my test", async ({ dynatraceTesting, myCustomFixture, page }) => {
|
|
64
|
+
// dynatraceTesting is initialized first
|
|
65
|
+
// RUM script is injected via page.addInitScript
|
|
66
|
+
// Then myCustomFixture can safely navigate
|
|
67
|
+
await page.goto("https://example.com");
|
|
68
|
+
});
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### ❌ Incorrect Order
|
|
72
|
+
```typescript
|
|
73
|
+
test("my test", async ({ myCustomFixture, dynatraceTesting, page }) => {
|
|
74
|
+
// If myCustomFixture navigates the page, it happens BEFORE
|
|
75
|
+
// dynatraceTesting is initialized, so RUM script is not injected
|
|
76
|
+
// This will cause the test to fail with "no events received"
|
|
77
|
+
});
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Why This Happens
|
|
81
|
+
|
|
82
|
+
Playwright initializes fixtures in the order they appear in the destructuring pattern. The `dynatraceTesting` fixture uses `page.addInitScript()` to inject the RUM JavaScript, which only affects subsequent page navigations.
|
|
83
|
+
|
|
84
|
+
### Custom Fixtures That Navigate
|
|
85
|
+
|
|
86
|
+
If you have custom fixtures that call `page.goto()`, always destructure `dynatraceTesting` first:
|
|
87
|
+
|
|
88
|
+
```typescript
|
|
89
|
+
// Define custom fixture
|
|
90
|
+
const test = base.extend<{ myApp: MyApp }>({
|
|
91
|
+
myApp: async ({ page }, use) => {
|
|
92
|
+
await page.goto("https://myapp.com"); // Navigation happens here
|
|
93
|
+
await use(new MyApp(page));
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// Use fixtures in correct order
|
|
98
|
+
test("test", async ({ dynatraceTesting, myApp }) => {
|
|
99
|
+
// ✅ Correct: dynatraceTesting initialized before myApp
|
|
100
|
+
});
|
|
101
|
+
```
|
|
102
|
+
|
|
55
103
|
## Troubleshooting
|
|
56
104
|
|
|
57
105
|
The test fixture works by intercepting network requests to the RUM ingestion endpoint and capturing
|
|
58
106
|
the events sent by the RUM JavaScript.
|
|
59
107
|
Note that this has an impact on your capturing environment, since these beacons report real data.
|
|
60
108
|
|
|
109
|
+
### Missing Configuration Error
|
|
110
|
+
|
|
111
|
+
If you see an error like:
|
|
112
|
+
```
|
|
113
|
+
[Dynatrace Testing] Missing required configuration fields: endpointUrl, appId, token
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
This means the required configuration was not provided. Make sure to configure the fixture using `test.use()`:
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
test.use({
|
|
120
|
+
dynatraceConfig: {
|
|
121
|
+
endpointUrl: process.env.DT_ENDPOINT_URL!,
|
|
122
|
+
appId: process.env.DT_APP_ID!,
|
|
123
|
+
token: process.env.DT_TOKEN!
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### No Events Received
|
|
129
|
+
|
|
130
|
+
If your tests fail with "Dynatrace didn't send any events":
|
|
131
|
+
|
|
132
|
+
1. **Check fixture ordering** - Ensure `dynatraceTesting` is destructured before any fixtures that navigate the page
|
|
133
|
+
2. **Check the page URL** - If you see a warning about the page already being navigated, fix the fixture order
|
|
134
|
+
|
|
135
|
+
### Event Dumping
|
|
136
|
+
|
|
137
|
+
When `dumpEventsOnFail` is enabled, the framework will output detailed information about received events when assertions fail:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
[Dynatrace Testing] Event Dump (expectToHaveSentEvent - no match)
|
|
141
|
+
Total events received: 3
|
|
142
|
+
Total beacons received: 2
|
|
143
|
+
|
|
144
|
+
Received events:
|
|
145
|
+
|
|
146
|
+
Event 1: { "event_properties.custom_val": "load", ... }
|
|
147
|
+
Event 2: { "event_properties.custom_val": "user-action", ... }
|
|
148
|
+
Event 3: { "event_properties.custom_val": "custom", ... }
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
This helps identify why expected events weren't matched.
|
|
152
|
+
|
|
61
153
|
## Testing API
|
|
62
154
|
The `DynatraceTesting` interface provides utility methods for validating observability-related events and beacon
|
|
63
155
|
requests during tests.
|
package/docs/types.md
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dynatrace/rum-javascript-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.331.7",
|
|
4
4
|
"description": "JavaScript API for Real User Monitoring (RUM)",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"dist/types/**/*.d.ts",
|
|
13
13
|
"dist/testing/**/*.js",
|
|
14
14
|
"dist/testing/**/*.d.ts",
|
|
15
|
-
"
|
|
16
|
-
"
|
|
15
|
+
"docs/*.md",
|
|
16
|
+
"README.md"
|
|
17
17
|
],
|
|
18
18
|
"exports": {
|
|
19
19
|
"./api": {
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"author": "Dynatrace",
|
|
94
94
|
"license": "ISC",
|
|
95
95
|
"devDependencies": {
|
|
96
|
-
"@types/node": "
|
|
96
|
+
"@types/node": "25.0.3",
|
|
97
97
|
"@vitest/coverage-v8": "3.2.3",
|
|
98
98
|
"@vitest/ui": "3.2.3",
|
|
99
99
|
"eslint": "9.38.0",
|