@@ -68,31 +68,43 @@ var waitFunction = function(startTime, waitTime, waitIncrement, continueCallback
6868} ;
6969
7070/**
71- * This intercepts the request the SDK makes and returns the request parameters to the callback function
72- * @param {String } requestType - GET, POST, PUT, DELETE
73- * @param {String } requestUrl - request url ( https://your.domain.count.ly)
74- * @param {String } endPoint - endpoint (/i)
75- * @param {String } requestParams - request parameters (? begin_session=** )
71+ * Intercepts SDK requests and returns request parameters to the callback function.
72+ * @param {String } requestType - GET or POST
73+ * @param {String } requestUrl - base URL (e.g., https://your.domain.count.ly)
74+ * @param {String } endPoint - endpoint (e.g., /i)
75+ * @param {String } aliasParam - parameter to match in requests (e.g., "hc", " begin_session" )
7676 * @param {String } alias - alias for the request
77- * @param {Function } callback - callback function
77+ * @param {Function } callback - callback function for parsed parameters
7878 */
79- function interceptAndCheckRequests ( requestType , requestUrl , endPoint , requestParams , alias , callback ) {
80- // requestType = requestType || "GET";
81- requestUrl = requestUrl || "https://your.domain.count.ly" ; // TODO: might be needed in the future but not yet
79+ function interceptAndCheckRequests ( requestType , requestUrl , endPoint , aliasParam , alias , callback ) {
80+ requestType = requestType || "GET" ;
81+ requestUrl = requestUrl || "https://your.domain.count.ly" ;
8282 endPoint = endPoint || "/i" ;
83- requestParams = requestParams || "?*" ;
8483 alias = alias || "getXhr" ;
8584
86- cy . intercept ( requestUrl + endPoint + requestParams , ( req ) => {
87- // const { url } = req;
88- req . reply ( 200 , { result : "Success" } , {
85+ // Intercept requests
86+ cy . intercept ( requestType , requestUrl + endPoint + "*" , ( req ) => {
87+ if ( requestType === "POST" && req . body ) {
88+ // Parse URL-encoded body for POST requests
89+ const params = new URLSearchParams ( req . body ) ;
90+ callback ( params ) ;
91+ } else {
92+ // Parse URL parameters for GET requests
93+ const url = new URL ( req . url ) ;
94+ const params = url . searchParams ;
95+ callback ( params ) ;
96+ }
97+ req . reply ( 200 , { result : "Success" } , {
8998 "x-countly-rr" : "2"
9099 } ) ;
91100 } ) . as ( alias ) ;
101+
102+ // Wait for the request alias to be triggered
92103 cy . wait ( "@" + alias ) . then ( ( xhr ) => {
93- const url = new URL ( xhr . request . url ) ;
94- const searchParams = url . searchParams ;
95- callback ( searchParams ) ;
104+ const params = requestType === "POST" && xhr . request . body
105+ ? new URLSearchParams ( xhr . request . body )
106+ : new URL ( xhr . request . url ) . searchParams ;
107+ callback ( params ) ;
96108 } ) ;
97109}
98110
0 commit comments