@fluwa-tool/sdk 1.0.46 → 1.0.47
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.
|
@@ -160,12 +160,12 @@ class XMLHttpRequestInterceptor {
|
|
|
160
160
|
catch (e) {
|
|
161
161
|
self.logger.debug('❌ Erro ao injetar propriedades mock:', e);
|
|
162
162
|
}
|
|
163
|
-
// Agora simular readyState progression com
|
|
163
|
+
// Agora simular readyState progression com dispatchEvent (suporta addEventListener)
|
|
164
164
|
const fireEvent = (state, delayMs) => {
|
|
165
165
|
setTimeout(() => {
|
|
166
166
|
setReadyState(state);
|
|
167
|
-
|
|
168
|
-
if (xhr.onreadystatechange) {
|
|
167
|
+
// 1. Tentar chamar onreadystatechange direto se existir
|
|
168
|
+
if (xhr.onreadystatechange && typeof xhr.onreadystatechange === 'function') {
|
|
169
169
|
try {
|
|
170
170
|
self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onreadystatechange para readyState=${state}`);
|
|
171
171
|
xhr.onreadystatechange();
|
|
@@ -174,8 +174,15 @@ class XMLHttpRequestInterceptor {
|
|
|
174
174
|
self.logger.debug(`❌ Erro ao chamar onreadystatechange(${state}):`, e);
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
|
-
|
|
178
|
-
|
|
177
|
+
// 2. Disparar eventos (para listeners adicionados com addEventListener)
|
|
178
|
+
try {
|
|
179
|
+
// ProgressEvent está disponível em React Native
|
|
180
|
+
const event = new ProgressEvent('readystatechange');
|
|
181
|
+
self.logger.debug(`📤 [XMLHttpRequestInterceptor] Disparando evento readystatechange em readyState=${state}`);
|
|
182
|
+
xhr.dispatchEvent(event);
|
|
183
|
+
}
|
|
184
|
+
catch (e) {
|
|
185
|
+
self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] Não conseguiu disparar evento readystatechange:`, e);
|
|
179
186
|
}
|
|
180
187
|
}, delayMs);
|
|
181
188
|
};
|
|
@@ -183,11 +190,11 @@ class XMLHttpRequestInterceptor {
|
|
|
183
190
|
fireEvent(1, 50); // readyState = 1 em 50ms
|
|
184
191
|
fireEvent(2, 100); // readyState = 2 em 100ms
|
|
185
192
|
fireEvent(3, 150); // readyState = 3 em 150ms
|
|
186
|
-
// Final: readyState = 4 com callbacks
|
|
193
|
+
// Final: readyState = 4 com eventos e callbacks
|
|
187
194
|
setTimeout(() => {
|
|
188
195
|
setReadyState(4);
|
|
189
|
-
|
|
190
|
-
if (xhr.onreadystatechange) {
|
|
196
|
+
// 1. Chamar onreadystatechange se existir
|
|
197
|
+
if (xhr.onreadystatechange && typeof xhr.onreadystatechange === 'function') {
|
|
191
198
|
try {
|
|
192
199
|
self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onreadystatechange para readyState=4`);
|
|
193
200
|
xhr.onreadystatechange();
|
|
@@ -196,10 +203,17 @@ class XMLHttpRequestInterceptor {
|
|
|
196
203
|
self.logger.debug(`❌ Erro ao chamar onreadystatechange(4):`, e);
|
|
197
204
|
}
|
|
198
205
|
}
|
|
199
|
-
|
|
200
|
-
|
|
206
|
+
// 2. Disparar evento readystatechange
|
|
207
|
+
try {
|
|
208
|
+
const event = new ProgressEvent('readystatechange');
|
|
209
|
+
self.logger.debug(`📤 [XMLHttpRequestInterceptor] Disparando evento readystatechange em readyState=4`);
|
|
210
|
+
xhr.dispatchEvent(event);
|
|
201
211
|
}
|
|
202
|
-
|
|
212
|
+
catch (e) {
|
|
213
|
+
self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] Não conseguiu disparar evento readystatechange:`, e);
|
|
214
|
+
}
|
|
215
|
+
// 3. Chamar onload se existir
|
|
216
|
+
if (xhr.onload && typeof xhr.onload === 'function') {
|
|
203
217
|
try {
|
|
204
218
|
self.logger.debug(`📞 [XMLHttpRequestInterceptor] Chamando onload`);
|
|
205
219
|
xhr.onload();
|
|
@@ -208,8 +222,14 @@ class XMLHttpRequestInterceptor {
|
|
|
208
222
|
self.logger.debug(`❌ Erro ao chamar onload:`, e);
|
|
209
223
|
}
|
|
210
224
|
}
|
|
211
|
-
|
|
212
|
-
|
|
225
|
+
// 4. Disparar evento load
|
|
226
|
+
try {
|
|
227
|
+
const loadEvent = new ProgressEvent('load');
|
|
228
|
+
self.logger.debug(`📤 [XMLHttpRequestInterceptor] Disparando evento load`);
|
|
229
|
+
xhr.dispatchEvent(loadEvent);
|
|
230
|
+
}
|
|
231
|
+
catch (e) {
|
|
232
|
+
self.logger.debug(`⚠️ [XMLHttpRequestInterceptor] Não conseguiu disparar evento load:`, e);
|
|
213
233
|
}
|
|
214
234
|
self.logger.debug(`✅ [XMLHttpRequestInterceptor] Simulação de resposta COMPLETA`);
|
|
215
235
|
}, 200);
|