@testspectra/react-native 1.3.2 → 1.3.3
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/index.js +31 -9
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1681,8 +1681,8 @@ function createMockHandle(rule, release) {
|
|
|
1681
1681
|
respondWith: async (newFixture, newOptions = {}) => {
|
|
1682
1682
|
const newObj = newFixture;
|
|
1683
1683
|
rule.response = newObj && newObj.body !== void 0 ? newObj.body : newFixture;
|
|
1684
|
-
if (newOptions.statusCode || newObj && newObj.statusCode) {
|
|
1685
|
-
rule.statusCode = newOptions.statusCode || newObj?.statusCode || 200;
|
|
1684
|
+
if (newOptions.statusCode || newObj && (newObj.statusCode || newObj.status)) {
|
|
1685
|
+
rule.statusCode = newOptions.statusCode || newObj?.statusCode || newObj?.status || 200;
|
|
1686
1686
|
}
|
|
1687
1687
|
if (newOptions.headers || newObj && newObj.headers) {
|
|
1688
1688
|
rule.headers = newOptions.headers || newObj?.headers;
|
|
@@ -1695,7 +1695,7 @@ function createMockHandle(rule, release) {
|
|
|
1695
1695
|
respondOnce: async (newFixture, newOptions = {}) => {
|
|
1696
1696
|
const newObj = newFixture;
|
|
1697
1697
|
const resp = newObj && newObj.body !== void 0 ? newObj.body : newFixture;
|
|
1698
|
-
const statusCode = newOptions.statusCode || newObj && newObj.statusCode || rule.statusCode || 200;
|
|
1698
|
+
const statusCode = newOptions.statusCode || newObj && (newObj.statusCode || newObj.status) || rule.statusCode || 200;
|
|
1699
1699
|
const headers = newOptions.headers || newObj && newObj.headers || rule.headers;
|
|
1700
1700
|
const delayMs = newOptions.delayMs ?? (newObj && newObj.delayMs) ?? rule.delayMs;
|
|
1701
1701
|
rule.respondOnceQueue.push({ response: resp, statusCode, headers, delayMs });
|
|
@@ -1822,6 +1822,27 @@ function recordMockCall(rule, request) {
|
|
|
1822
1822
|
}
|
|
1823
1823
|
return request;
|
|
1824
1824
|
}
|
|
1825
|
+
function readMockEnvelope(value) {
|
|
1826
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return null;
|
|
1827
|
+
const record = value;
|
|
1828
|
+
const keys = Object.keys(record);
|
|
1829
|
+
if (keys.length === 0 || !keys.every((key) => ENVELOPE_KEYS.has(key))) return null;
|
|
1830
|
+
const status = typeof record.status === "number" ? record.status : record.statusCode;
|
|
1831
|
+
if (!("body" in record) && typeof status !== "number") return null;
|
|
1832
|
+
return { body: record.body ?? "", statusCode: status, headers: record.headers, delayMs: record.delayMs };
|
|
1833
|
+
}
|
|
1834
|
+
async function resolveMockResponse(rule, request) {
|
|
1835
|
+
const consumed = consumeMockResponse(rule);
|
|
1836
|
+
const value = typeof consumed.body === "function" ? await consumed.body(request) : consumed.body;
|
|
1837
|
+
const envelope = readMockEnvelope(value);
|
|
1838
|
+
if (!envelope) return { ...consumed, body: value };
|
|
1839
|
+
return {
|
|
1840
|
+
body: envelope.body,
|
|
1841
|
+
statusCode: envelope.statusCode ?? consumed.statusCode,
|
|
1842
|
+
headers: { ...consumed.headers, ...envelope.headers },
|
|
1843
|
+
delayMs: envelope.delayMs ?? consumed.delayMs
|
|
1844
|
+
};
|
|
1845
|
+
}
|
|
1825
1846
|
function consumeMockResponse(rule) {
|
|
1826
1847
|
if (rule.respondOnceQueue.length > 0) {
|
|
1827
1848
|
const queued = rule.respondOnceQueue.shift();
|
|
@@ -1854,11 +1875,12 @@ function mockResponseBodyText(body) {
|
|
|
1854
1875
|
if (typeof body === "object" && body !== null) return JSON.stringify(body);
|
|
1855
1876
|
return String(body ?? "");
|
|
1856
1877
|
}
|
|
1857
|
-
var DEFAULT_MOCK_RESPONSE_HEADERS;
|
|
1878
|
+
var ENVELOPE_KEYS, DEFAULT_MOCK_RESPONSE_HEADERS;
|
|
1858
1879
|
var init_mock_intercept = __esm({
|
|
1859
1880
|
"../../core/worker-runtime/src/dsl/mock_intercept.ts"() {
|
|
1860
1881
|
"use strict";
|
|
1861
1882
|
init_reporter();
|
|
1883
|
+
ENVELOPE_KEYS = /* @__PURE__ */ new Set(["status", "statusCode", "headers", "body", "delayMs"]);
|
|
1862
1884
|
DEFAULT_MOCK_RESPONSE_HEADERS = {
|
|
1863
1885
|
"Content-Type": "application/json; charset=utf-8",
|
|
1864
1886
|
"Access-Control-Allow-Origin": "*",
|
|
@@ -2120,7 +2142,7 @@ async function patchedFetch(origFetch, input, init) {
|
|
|
2120
2142
|
if (rule.aborted) {
|
|
2121
2143
|
throw new TypeError(`Spectra.intercept() aborted ${method} ${url} (${rule.abortReason || "Failed"})`);
|
|
2122
2144
|
}
|
|
2123
|
-
const consumed =
|
|
2145
|
+
const consumed = await resolveMockResponse(rule, intercepted);
|
|
2124
2146
|
if (consumed.delayMs && consumed.delayMs > 0) await sleep(consumed.delayMs);
|
|
2125
2147
|
return buildMockResponse(consumed);
|
|
2126
2148
|
}
|
|
@@ -2157,8 +2179,7 @@ function patchXMLHttpRequest() {
|
|
|
2157
2179
|
setTimeout(fireError, 0);
|
|
2158
2180
|
return;
|
|
2159
2181
|
}
|
|
2160
|
-
const
|
|
2161
|
-
const respond2 = () => {
|
|
2182
|
+
const respond2 = (consumed) => {
|
|
2162
2183
|
const bodyText = mockResponseBodyText(consumed.body);
|
|
2163
2184
|
Object.defineProperties(xhr, {
|
|
2164
2185
|
status: { value: consumed.statusCode, configurable: true },
|
|
@@ -2174,8 +2195,9 @@ function patchXMLHttpRequest() {
|
|
|
2174
2195
|
xhr.dispatchEvent?.(new Event("load"));
|
|
2175
2196
|
xhr.dispatchEvent?.(new Event("loadend"));
|
|
2176
2197
|
};
|
|
2177
|
-
|
|
2178
|
-
|
|
2198
|
+
void resolveMockResponse(rule, intercepted).then((consumed) => {
|
|
2199
|
+
setTimeout(() => respond2(consumed), consumed.delayMs && consumed.delayMs > 0 ? consumed.delayMs : 0);
|
|
2200
|
+
});
|
|
2179
2201
|
};
|
|
2180
2202
|
return xhr;
|
|
2181
2203
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@testspectra/react-native",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"description": "Native Android & iOS component test runner for React Native with TestSpectra Spectra.* DSL",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"testspectra",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"cross-spawn": "^7.0.6",
|
|
34
34
|
"esbuild": "^0.28.2",
|
|
35
|
-
"@testspectra/matchers": "1.3.
|
|
35
|
+
"@testspectra/matchers": "1.3.3"
|
|
36
36
|
},
|
|
37
37
|
"peerDependencies": {
|
|
38
38
|
"react": ">=18.0.0",
|