wrapito 8.3.2 → 9.0.1
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 +11 -0
- package/assertions/fetch.d.ts +9 -3
- package/assertions/fetch.d.ts.map +1 -1
- package/assertions/fetch.js +10 -36
- package/assertions/fetch.js.map +1 -1
- package/assertions/messages.d.ts +29 -0
- package/assertions/messages.d.ts.map +1 -0
- package/assertions/messages.js +46 -0
- package/assertions/messages.js.map +1 -0
- package/config.d.ts +4 -5
- package/config.d.ts.map +1 -1
- package/config.js +2 -0
- package/config.js.map +1 -1
- package/index.d.ts +3 -3
- package/index.d.ts.map +1 -1
- package/index.js.map +1 -1
- package/models.d.ts +49 -0
- package/models.d.ts.map +1 -0
- package/models.js +3 -0
- package/models.js.map +1 -0
- package/package.json +3 -2
- package/wrap.d.ts +4 -7
- package/wrap.d.ts.map +1 -1
- package/wrap.js +23 -17
- package/wrap.js.map +1 -1
package/README.md
CHANGED
|
@@ -171,6 +171,17 @@ wrap(MyComponent)
|
|
|
171
171
|
.mount()
|
|
172
172
|
```
|
|
173
173
|
|
|
174
|
+
By default it will use the native javascript history API, but you can provide a method to be called for change the app route with [`changeRoute`](#changeRoute):
|
|
175
|
+
```js
|
|
176
|
+
import { configure } from 'wrapito'
|
|
177
|
+
import { history } from 'app.js'
|
|
178
|
+
|
|
179
|
+
configure({
|
|
180
|
+
..configuration,
|
|
181
|
+
changeRoute: (route) => history.push(route)
|
|
182
|
+
})
|
|
183
|
+
```
|
|
184
|
+
|
|
174
185
|
#### withProps
|
|
175
186
|
Pass down the props to the wrapped component:
|
|
176
187
|
```js
|
package/assertions/fetch.d.ts
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
export function toHaveBeenFetchedWith(path: any, options: any): {
|
|
2
2
|
pass: boolean;
|
|
3
|
-
message: () =>
|
|
3
|
+
message: () => string;
|
|
4
|
+
} | {
|
|
5
|
+
pass: boolean;
|
|
6
|
+
message: () => undefined;
|
|
4
7
|
};
|
|
5
8
|
export function toHaveBeenFetched(path: any): {
|
|
6
9
|
pass: boolean;
|
|
7
|
-
message: () =>
|
|
10
|
+
message: () => string;
|
|
8
11
|
};
|
|
9
12
|
export function toHaveBeenFetchedTimes(path: any, expectedLength: any): {
|
|
10
13
|
pass: boolean;
|
|
11
|
-
message: () =>
|
|
14
|
+
message: () => string;
|
|
15
|
+
} | {
|
|
16
|
+
pass: boolean;
|
|
17
|
+
message: () => undefined;
|
|
12
18
|
};
|
|
13
19
|
//# sourceMappingURL=fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/assertions/fetch.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/assertions/fetch.js"],"names":[],"mappings":"AAqCA;;;;;;EA0BC;AAED;;;EAGC;AAED;;;;;;EAKC"}
|
package/assertions/fetch.js
CHANGED
|
@@ -5,33 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.toHaveBeenFetchedTimes = exports.toHaveBeenFetched = exports.toHaveBeenFetchedWith = void 0;
|
|
7
7
|
var deep_equal_1 = __importDefault(require("deep-equal"));
|
|
8
|
-
var
|
|
9
|
-
var emptyErrorMessage = function (path) { return ({
|
|
10
|
-
pass: false,
|
|
11
|
-
message: function () { return "\uD83C\uDF2F Wrapito: " + path + " ain't got called"; },
|
|
12
|
-
}); };
|
|
13
|
-
var fetchLengthErrorMessage = function (path, expectLength, currentLength) { return ({
|
|
14
|
-
pass: false,
|
|
15
|
-
message: function () {
|
|
16
|
-
return "\uD83C\uDF2F Wrapito: " + path + " is called " + currentLength + " times, you expected " + expectLength + " times";
|
|
17
|
-
},
|
|
18
|
-
}); };
|
|
19
|
-
var methodDoesNotMatchErrorMessage = function (expected, received) { return ({
|
|
20
|
-
pass: false,
|
|
21
|
-
message: function () {
|
|
22
|
-
return "\uD83C\uDF2F Wrapito: Fetch method does not match, expected " + expected + " received " + received;
|
|
23
|
-
},
|
|
24
|
-
}); };
|
|
25
|
-
var bodyDoesNotMatchErrorMessage = function (expected, received) { return ({
|
|
26
|
-
pass: false,
|
|
27
|
-
message: function () {
|
|
28
|
-
return "\uD83C\uDF2F Wrapito: Fetch body does not match.\nExpected:\n" + chalk_1.green(JSON.stringify(expected, null, ' ')) + "\n\nReceived:\n" + chalk_1.red(JSON.stringify(received, null, ' '));
|
|
29
|
-
},
|
|
30
|
-
}); };
|
|
31
|
-
var successMessage = function () { return ({
|
|
32
|
-
pass: true,
|
|
33
|
-
message: function () { return undefined; },
|
|
34
|
-
}); };
|
|
8
|
+
var messages_1 = require("./messages");
|
|
35
9
|
var findRequestsByPath = function (path) {
|
|
36
10
|
return fetch.mock.calls.filter(function (call) { return call[0].url.includes(path); });
|
|
37
11
|
};
|
|
@@ -49,8 +23,6 @@ var methodDoesNotMatch = function (expectedMethod, receivedRequestsMethods) {
|
|
|
49
23
|
return expectedMethod && !receivedRequestsMethods.includes(expectedMethod);
|
|
50
24
|
};
|
|
51
25
|
var bodyDoesNotMatch = function (expectedBody, receivedRequestsBodies) {
|
|
52
|
-
if (!expectedBody)
|
|
53
|
-
return false;
|
|
54
26
|
var anyRequestMatch = receivedRequestsBodies
|
|
55
27
|
.map(function (request) { return deep_equal_1.default(expectedBody, request); })
|
|
56
28
|
.every(function (requestCompare) { return requestCompare === false; });
|
|
@@ -60,31 +32,33 @@ var empty = function (requests) { return requests.length === 0; };
|
|
|
60
32
|
var toHaveBeenFetchedWith = function (path, options) {
|
|
61
33
|
var targetRequests = findRequestsByPath(path);
|
|
62
34
|
if (empty(targetRequests)) {
|
|
63
|
-
return emptyErrorMessage(path);
|
|
35
|
+
return messages_1.emptyErrorMessage(path);
|
|
64
36
|
}
|
|
65
37
|
var receivedRequestsMethods = getRequestsMethods(targetRequests);
|
|
66
38
|
var expectedMethod = options === null || options === void 0 ? void 0 : options.method;
|
|
67
39
|
if (methodDoesNotMatch(expectedMethod, receivedRequestsMethods)) {
|
|
68
|
-
return methodDoesNotMatchErrorMessage(expectedMethod, receivedRequestsMethods);
|
|
40
|
+
return messages_1.methodDoesNotMatchErrorMessage(expectedMethod, receivedRequestsMethods);
|
|
69
41
|
}
|
|
70
42
|
var receivedRequestsBodies = getRequestsBodies(targetRequests);
|
|
71
43
|
var expectedBody = options === null || options === void 0 ? void 0 : options.body;
|
|
44
|
+
if (!expectedBody)
|
|
45
|
+
return messages_1.doesNotHaveBodyErrorMessage();
|
|
72
46
|
if (bodyDoesNotMatch(expectedBody, receivedRequestsBodies)) {
|
|
73
|
-
return bodyDoesNotMatchErrorMessage(expectedBody, receivedRequestsBodies);
|
|
47
|
+
return messages_1.bodyDoesNotMatchErrorMessage(expectedBody, receivedRequestsBodies);
|
|
74
48
|
}
|
|
75
|
-
return successMessage();
|
|
49
|
+
return messages_1.successMessage();
|
|
76
50
|
};
|
|
77
51
|
exports.toHaveBeenFetchedWith = toHaveBeenFetchedWith;
|
|
78
52
|
var toHaveBeenFetched = function (path) {
|
|
79
53
|
var requests = findRequestsByPath(path);
|
|
80
|
-
return !requests.length ? emptyErrorMessage(path) :
|
|
54
|
+
return !requests.length ? messages_1.emptyErrorMessage(path) : messages_1.haveBeenFetchedSuccessMessage(path);
|
|
81
55
|
};
|
|
82
56
|
exports.toHaveBeenFetched = toHaveBeenFetched;
|
|
83
57
|
var toHaveBeenFetchedTimes = function (path, expectedLength) {
|
|
84
58
|
var requests = findRequestsByPath(path);
|
|
85
59
|
return requests.length !== expectedLength
|
|
86
|
-
? fetchLengthErrorMessage(path, expectedLength, requests.length)
|
|
87
|
-
: successMessage();
|
|
60
|
+
? messages_1.fetchLengthErrorMessage(path, expectedLength, requests.length)
|
|
61
|
+
: messages_1.successMessage();
|
|
88
62
|
};
|
|
89
63
|
exports.toHaveBeenFetchedTimes = toHaveBeenFetchedTimes;
|
|
90
64
|
//# sourceMappingURL=fetch.js.map
|
package/assertions/fetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/assertions/fetch.js"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC
|
|
1
|
+
{"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/assertions/fetch.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function emptyErrorMessage(path: any): {
|
|
2
|
+
pass: boolean;
|
|
3
|
+
message: () => string;
|
|
4
|
+
};
|
|
5
|
+
export function fetchLengthErrorMessage(path: any, expectLength: any, currentLength: any): {
|
|
6
|
+
pass: boolean;
|
|
7
|
+
message: () => string;
|
|
8
|
+
};
|
|
9
|
+
export function methodDoesNotMatchErrorMessage(expected: any, received: any): {
|
|
10
|
+
pass: boolean;
|
|
11
|
+
message: () => string;
|
|
12
|
+
};
|
|
13
|
+
export function bodyDoesNotMatchErrorMessage(expected: any, received: any): {
|
|
14
|
+
pass: boolean;
|
|
15
|
+
message: () => string;
|
|
16
|
+
};
|
|
17
|
+
export function doesNotHaveBodyErrorMessage(): {
|
|
18
|
+
pass: boolean;
|
|
19
|
+
message: () => string;
|
|
20
|
+
};
|
|
21
|
+
export function successMessage(): {
|
|
22
|
+
pass: boolean;
|
|
23
|
+
message: () => undefined;
|
|
24
|
+
};
|
|
25
|
+
export function haveBeenFetchedSuccessMessage(path: any): {
|
|
26
|
+
pass: boolean;
|
|
27
|
+
message: () => string;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/assertions/messages.js"],"names":[],"mappings":"AAEA;;;EAGE;AAEF;;;EAIE;AAEF;;;EAIE;AAEF;;;EASE;AAEF;;;EAGE;AAEF;;;EAGE;AAEF;;;EAGE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.haveBeenFetchedSuccessMessage = exports.successMessage = exports.doesNotHaveBodyErrorMessage = exports.bodyDoesNotMatchErrorMessage = exports.methodDoesNotMatchErrorMessage = exports.fetchLengthErrorMessage = exports.emptyErrorMessage = void 0;
|
|
4
|
+
var chalk_1 = require("chalk");
|
|
5
|
+
var emptyErrorMessage = function (path) { return ({
|
|
6
|
+
pass: false,
|
|
7
|
+
message: function () { return "\uD83C\uDF2F Wrapito: " + path + " ain't got called"; },
|
|
8
|
+
}); };
|
|
9
|
+
exports.emptyErrorMessage = emptyErrorMessage;
|
|
10
|
+
var fetchLengthErrorMessage = function (path, expectLength, currentLength) { return ({
|
|
11
|
+
pass: false,
|
|
12
|
+
message: function () {
|
|
13
|
+
return "\uD83C\uDF2F Wrapito: " + path + " is called " + currentLength + " times, you expected " + expectLength + " times";
|
|
14
|
+
},
|
|
15
|
+
}); };
|
|
16
|
+
exports.fetchLengthErrorMessage = fetchLengthErrorMessage;
|
|
17
|
+
var methodDoesNotMatchErrorMessage = function (expected, received) { return ({
|
|
18
|
+
pass: false,
|
|
19
|
+
message: function () {
|
|
20
|
+
return "\uD83C\uDF2F Wrapito: Fetch method does not match, expected " + expected + " received " + received;
|
|
21
|
+
},
|
|
22
|
+
}); };
|
|
23
|
+
exports.methodDoesNotMatchErrorMessage = methodDoesNotMatchErrorMessage;
|
|
24
|
+
var bodyDoesNotMatchErrorMessage = function (expected, received) { return ({
|
|
25
|
+
pass: false,
|
|
26
|
+
message: function () {
|
|
27
|
+
return "\uD83C\uDF2F Wrapito: Fetch body does not match.\nExpected:\n" + chalk_1.green(JSON.stringify(expected, null, ' ')) + "\n\nReceived:\n" + chalk_1.red(JSON.stringify(received, null, ' '));
|
|
28
|
+
},
|
|
29
|
+
}); };
|
|
30
|
+
exports.bodyDoesNotMatchErrorMessage = bodyDoesNotMatchErrorMessage;
|
|
31
|
+
var doesNotHaveBodyErrorMessage = function () { return ({
|
|
32
|
+
pass: false,
|
|
33
|
+
message: function () { return '🌯 Wrapito: Unable to find body.'; }
|
|
34
|
+
}); };
|
|
35
|
+
exports.doesNotHaveBodyErrorMessage = doesNotHaveBodyErrorMessage;
|
|
36
|
+
var successMessage = function () { return ({
|
|
37
|
+
pass: true,
|
|
38
|
+
message: function () { return undefined; },
|
|
39
|
+
}); };
|
|
40
|
+
exports.successMessage = successMessage;
|
|
41
|
+
var haveBeenFetchedSuccessMessage = function (path) { return ({
|
|
42
|
+
pass: true,
|
|
43
|
+
message: function () { return "\uD83C\uDF2F Wrapito: " + path + " is called"; },
|
|
44
|
+
}); };
|
|
45
|
+
exports.haveBeenFetchedSuccessMessage = haveBeenFetchedSuccessMessage;
|
|
46
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/assertions/messages.js"],"names":[],"mappings":";;;AAAA,+BAAkC;AAElC,IAAM,iBAAiB,GAAG,UAAA,IAAI,IAAI,OAAA,CAAC;IACjC,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,cAAM,OAAA,2BAAgB,IAAI,sBAAoB,EAAxC,CAAwC;CACxD,CAAC,EAHgC,CAGhC,CAAA;AAyCA,8CAAiB;AAvCnB,IAAM,uBAAuB,GAAG,UAAC,IAAI,EAAE,YAAY,EAAE,aAAa,IAAK,OAAA,CAAC;IACtE,IAAI,EAAE,KAAK;IACX,OAAO,EAAE;QACP,OAAA,2BAAgB,IAAI,mBAAgB,aAAa,6BAA0B,YAAY,WAAS;IAAhG,CAAgG;CACnG,CAAC,EAJqE,CAIrE,CAAA;AAoCA,0DAAuB;AAlCzB,IAAM,8BAA8B,GAAG,UAAC,QAAQ,EAAE,QAAQ,IAAK,OAAA,CAAC;IAC9D,IAAI,EAAE,KAAK;IACX,OAAO,EAAE;QACP,OAAA,iEAAsD,QAAQ,kBAAe,QAAW;IAAxF,CAAwF;CAC3F,CAAC,EAJ6D,CAI7D,CAAA;AA+BA,wEAA8B;AA7BhC,IAAM,4BAA4B,GAAG,UAAC,QAAQ,EAAE,QAAQ,IAAK,OAAA,CAAC;IAC5D,IAAI,EAAE,KAAK;IACX,OAAO,EAAE;QACP,OAAA,kEAED,aAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,uBAG1C,WAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAI;IAL1C,CAK0C;CAC7C,CAAC,EAT2D,CAS3D,CAAA;AAqBA,oEAA4B;AAnB9B,IAAM,2BAA2B,GAAG,cAAM,OAAA,CAAC;IACzC,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,cAAM,OAAA,kCAAkC,EAAlC,CAAkC;CAClD,CAAC,EAHwC,CAGxC,CAAA;AAiBA,kEAA2B;AAf7B,IAAM,cAAc,GAAG,cAAM,OAAA,CAAC;IAC5B,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;CACzB,CAAC,EAH2B,CAG3B,CAAA;AAaA,wCAAc;AAXhB,IAAM,6BAA6B,GAAG,UAAC,IAAI,IAAK,OAAA,CAAC;IAC/C,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,cAAM,OAAA,2BAAe,IAAI,eAAY,EAA/B,CAA+B;CAC/C,CAAC,EAH8C,CAG9C,CAAA;AASA,sEAA6B"}
|
package/config.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
};
|
|
1
|
+
import { Config, Mount } from './models';
|
|
2
|
+
declare function configure(newConfig: Config): void;
|
|
3
|
+
declare const getConfig: () => Config;
|
|
4
|
+
export { configure, getConfig, Config, Mount };
|
|
6
5
|
//# sourceMappingURL=config.d.ts.map
|
package/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,MAAM,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AAiBnD,iBAAS,SAAS,CAAC,SAAS,EAAE,MAAM,QAKnC;AAED,QAAA,MAAM,SAAS,QAAO,MAAyB,CAAA;AAE/C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA"}
|
package/config.js
CHANGED
|
@@ -20,7 +20,9 @@ var mount = function (component) {
|
|
|
20
20
|
};
|
|
21
21
|
var config = {
|
|
22
22
|
defaultHost: '',
|
|
23
|
+
extend: {},
|
|
23
24
|
mount: mount,
|
|
25
|
+
changeRoute: function (path) { return window.history.replaceState(null, '', path); },
|
|
24
26
|
};
|
|
25
27
|
function configure(newConfig) {
|
|
26
28
|
config = __assign(__assign({}, config), newConfig);
|
package/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAAkC;AAIlC,IAAM,KAAK,GAAG,UAAC,SAAoB;IACjC,IAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAEzE,kBAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;IAE3B,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,IAAI,MAAM,GAAW;IACnB,WAAW,EAAE,EAAE;IACf,MAAM,EAAE,EAAE;IACV,KAAK,OAAA;IACL,WAAW,EAAE,UAAC,IAAY,IAAK,OAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAA3C,CAA2C;CAC3E,CAAA;AAED,SAAS,SAAS,CAAC,SAAiB;IAClC,MAAM,yBACD,MAAM,GACN,SAAS,CACb,CAAA;AACH,CAAC;AAIQ,8BAAS;AAFlB,IAAM,SAAS,GAAG,cAAc,OAAA,cAAM,MAAM,EAAG,EAAf,CAAe,CAAA;AAE3B,8BAAS"}
|
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { wrap } from
|
|
2
|
-
export { configure } from
|
|
3
|
-
export { assertions } from
|
|
1
|
+
export { wrap } from './wrap';
|
|
2
|
+
export { configure } from './config';
|
|
3
|
+
export { assertions } from './assertions';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA"}
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,+BAA6B;AAApB,4FAAA,IAAI,OAAA;AACb,mCAAoC;AAA3B,mGAAA,SAAS,OAAA;AAClB,2CAAyC;AAAhC,wGAAA,UAAU,OAAA"}
|
package/models.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface Response {
|
|
3
|
+
path: string;
|
|
4
|
+
method?: string;
|
|
5
|
+
status?: number;
|
|
6
|
+
host?: string;
|
|
7
|
+
responseBody?: object;
|
|
8
|
+
requestBody?: object;
|
|
9
|
+
multipleResponses?: Response[];
|
|
10
|
+
catchParams?: boolean;
|
|
11
|
+
delay?: number;
|
|
12
|
+
}
|
|
13
|
+
interface Wrap {
|
|
14
|
+
withNetwork: (responses: Response[]) => Wrap;
|
|
15
|
+
atPath: (path: string) => Wrap;
|
|
16
|
+
withProps: (props: object) => Wrap;
|
|
17
|
+
debugRequests: () => Wrap;
|
|
18
|
+
mount: () => object;
|
|
19
|
+
}
|
|
20
|
+
interface WrapOptions {
|
|
21
|
+
Component: typeof React.Component;
|
|
22
|
+
responses: Response[];
|
|
23
|
+
props: object;
|
|
24
|
+
path: string;
|
|
25
|
+
hasPath: boolean;
|
|
26
|
+
debug: boolean;
|
|
27
|
+
}
|
|
28
|
+
interface WrapExtensionAPI {
|
|
29
|
+
addResponses: () => void;
|
|
30
|
+
}
|
|
31
|
+
declare type Extension = <T>(extensionAPI: WrapExtensionAPI, args: T) => Wrap;
|
|
32
|
+
declare type Extensions = {
|
|
33
|
+
[key: string]: Extension;
|
|
34
|
+
};
|
|
35
|
+
declare type Component = React.ReactElement<any, any>;
|
|
36
|
+
declare type Mount = (component: Component) => HTMLDivElement;
|
|
37
|
+
interface Config {
|
|
38
|
+
defaultHost: string;
|
|
39
|
+
mount: Mount;
|
|
40
|
+
extend: Extensions;
|
|
41
|
+
changeRoute: (path: string) => void;
|
|
42
|
+
history?: BrowserHistory;
|
|
43
|
+
portal?: string;
|
|
44
|
+
}
|
|
45
|
+
interface BrowserHistory extends History {
|
|
46
|
+
push: (path: string) => void;
|
|
47
|
+
}
|
|
48
|
+
export { Wrap, WrapOptions, Response, Config, Mount, Component, BrowserHistory };
|
|
49
|
+
//# sourceMappingURL=models.d.ts.map
|
package/models.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAA;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,UAAU,IAAI;IACZ,WAAW,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAA;IAC5C,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,KAAK,EAAE,MAAM,MAAM,CAAA;CACpB;AAED,UAAU,WAAW;IACnB,SAAS,EAAE,OAAO,KAAK,CAAC,SAAS,CAAA;IACjC,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,OAAO,CAAA;CACf;AAED,UAAU,gBAAgB;IACxB,YAAY,EAAE,MAAM,IAAI,CAAA;CACzB;AAED,aAAK,SAAS,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,KAAK,IAAI,CAAA;AAErE,aAAK,UAAU,GAAG;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CACzB,CAAA;AAED,aAAK,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE7C,aAAK,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,KAAK,cAAc,CAAA;AAErD,UAAU,MAAM;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACnC,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,cAAe,SAAQ,OAAO;IACtC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAC7B;AAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA"}
|
package/models.js
ADDED
package/models.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wrapito",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.1",
|
|
4
4
|
"description": "🌯 🌯 Wrap you tests so that you can test both behaviour and components with less effort.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,7 +37,6 @@
|
|
|
37
37
|
},
|
|
38
38
|
"homepage": "https://github.com/mercadona/wrapito#readme",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@types/react": "^17.0.11",
|
|
41
40
|
"deep-equal": "^1.0.1",
|
|
42
41
|
"object-hash": "^2.1.1",
|
|
43
42
|
"whatwg-fetch": "^3.5.0"
|
|
@@ -51,7 +50,9 @@
|
|
|
51
50
|
"@babel/preset-react": "^7.10.4",
|
|
52
51
|
"@testing-library/jest-dom": "^4.2.0",
|
|
53
52
|
"@testing-library/react": "^9.3.0",
|
|
53
|
+
"@types/history": "^4.7.9",
|
|
54
54
|
"@types/jest": "^26.0.23",
|
|
55
|
+
"@types/react": "^17.0.16",
|
|
55
56
|
"babel-jest": "^24.8.0",
|
|
56
57
|
"jest": "^27.0.4",
|
|
57
58
|
"jest-junit": "^6.4.0",
|
package/wrap.d.ts
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
debugRequests: () => any;
|
|
6
|
-
mount: () => any;
|
|
7
|
-
};
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Wrap } from './models';
|
|
3
|
+
declare const wrap: (Component: typeof React.Component) => Wrap;
|
|
4
|
+
export { wrap };
|
|
8
5
|
//# sourceMappingURL=wrap.d.ts.map
|
package/wrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.
|
|
1
|
+
{"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,OAAO,EAA4B,IAAI,EAAe,MAAM,UAAU,CAAA;AAWtE,QAAA,MAAM,IAAI,yCAAwC,IAWjD,CAAA;AA0GD,OAAO,EAAE,IAAI,EAAE,CAAA"}
|
package/wrap.js
CHANGED
|
@@ -24,7 +24,8 @@ beforeEach(function () {
|
|
|
24
24
|
global.fetch = jest.fn();
|
|
25
25
|
});
|
|
26
26
|
afterEach(function () {
|
|
27
|
-
global.fetch
|
|
27
|
+
var mockedFetch = global.fetch;
|
|
28
|
+
mockedFetch.mockRestore();
|
|
28
29
|
});
|
|
29
30
|
var wrap = function (Component) {
|
|
30
31
|
var options = {
|
|
@@ -39,10 +40,11 @@ var wrap = function (Component) {
|
|
|
39
40
|
};
|
|
40
41
|
exports.wrap = wrap;
|
|
41
42
|
var wrapWith = function (options) {
|
|
42
|
-
var _a = config_1.getConfig(), extend = _a.extend, portal = _a.portal, history = _a.history, mount = _a.mount;
|
|
43
|
+
var _a = config_1.getConfig(), extend = _a.extend, portal = _a.portal, changeRoute = _a.changeRoute, history = _a.history, mount = _a.mount;
|
|
43
44
|
var extensions = extendWith(extend, options);
|
|
44
|
-
return __assign({ withProps: getWithProps(options), withNetwork: getWithNetwork(options), atPath: getAtPath(options), debugRequests: getDebugRequest(options), mount: getMount(options,
|
|
45
|
+
return __assign({ withProps: getWithProps(options), withNetwork: getWithNetwork(options), atPath: getAtPath(options), debugRequests: getDebugRequest(options), mount: getMount(options, mount, changeRoute, history, portal) }, extensions);
|
|
45
46
|
};
|
|
47
|
+
//@ts-ignore
|
|
46
48
|
var extendWith = function (extensions, options) {
|
|
47
49
|
if (!extensions)
|
|
48
50
|
return {};
|
|
@@ -82,20 +84,24 @@ var getAtPath = function (options) { return function (path) {
|
|
|
82
84
|
var getDebugRequest = function (options) { return function () {
|
|
83
85
|
return wrapWith(__assign(__assign({}, options), { debug: true }));
|
|
84
86
|
}; };
|
|
85
|
-
var getMount = function (options,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
history
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}
|
|
87
|
+
var getMount = function (options, mount, changeRoute, history, portal) {
|
|
88
|
+
return function () {
|
|
89
|
+
var Component = options.Component, props = options.props, responses = options.responses, path = options.path, hasPath = options.hasPath, debug = options.debug;
|
|
90
|
+
if (portal) {
|
|
91
|
+
setupPortal(portal);
|
|
92
|
+
}
|
|
93
|
+
if (hasPath && history) {
|
|
94
|
+
console.warn('wrapito WARNING: history is DEPRECATED. Pass a changeRoute function to the config instead.');
|
|
95
|
+
console.warn('Read about changeRounte in: https://github.com/mercadona/wrapito#changeRoute');
|
|
96
|
+
history.push(path);
|
|
97
|
+
}
|
|
98
|
+
if (hasPath && !history) {
|
|
99
|
+
changeRoute(path);
|
|
100
|
+
}
|
|
101
|
+
mockNetwork_1.mockNetwork(responses, debug);
|
|
102
|
+
return mount(jsx_runtime_1.jsx(Component, __assign({}, props), void 0));
|
|
103
|
+
};
|
|
104
|
+
};
|
|
99
105
|
var setupPortal = function (portalRootId) {
|
|
100
106
|
if (document.getElementById(portalRootId)) {
|
|
101
107
|
return;
|
package/wrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.
|
|
1
|
+
{"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.tsx"],"names":[],"mappings":"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"}
|