wrapito 9.0.1 → 9.1.0

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/mockNetwork.d.ts CHANGED
@@ -1,2 +1,10 @@
1
- export function mockNetwork(responses?: any[], debug?: boolean): void;
1
+ /// <reference types="jest" />
2
+ import { Response } from './models';
3
+ declare global {
4
+ interface Window {
5
+ fetch: jest.Mock;
6
+ }
7
+ }
8
+ declare const mockNetwork: (responses?: Response[], debug?: boolean) => void;
9
+ export { mockNetwork };
2
10
  //# sourceMappingURL=mockNetwork.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockNetwork.d.ts","sourceRoot":"","sources":["../src/mockNetwork.js"],"names":[],"mappings":"AA4CA,sEA4BC"}
1
+ {"version":3,"file":"mockNetwork.d.ts","sourceRoot":"","sources":["../src/mockNetwork.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAW,MAAM,UAAU,CAAA;AAG5C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,EAAE,IAAI,CAAC,IAAI,CAAA;KACjB;CACF;AAkFD,QAAA,MAAM,WAAW,eAAe,QAAQ,EAAE,UAAc,OAAO,SAI9D,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
package/mockNetwork.js CHANGED
@@ -46,69 +46,79 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
46
46
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
47
  }
48
48
  };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
49
52
  Object.defineProperty(exports, "__esModule", { value: true });
50
53
  exports.mockNetwork = void 0;
51
- var chalk_1 = require("chalk");
54
+ var chalk_1 = __importDefault(require("chalk"));
52
55
  var requestMatcher_1 = require("./requestMatcher");
53
56
  beforeEach(function () {
54
- global.fetch = jest.fn();
57
+ global.window.fetch = jest.fn();
55
58
  });
56
59
  afterEach(function () {
57
- global.fetch.mockRestore();
60
+ global.window.fetch.mockRestore();
58
61
  });
59
- var createResponse = function (_a) {
60
- var responseBody = _a.responseBody, _b = _a.status, status = _b === void 0 ? 200 : _b, headers = _a.headers, delay = _a.delay;
61
- return __awaiter(void 0, void 0, void 0, function () {
62
- var response;
63
- return __generator(this, function (_c) {
64
- response = {
65
- json: function () { return Promise.resolve(responseBody); },
66
- status: status,
67
- ok: status >= 200 && status <= 299,
68
- headers: new Headers(__assign({ 'Content-Type': 'application/json' }, headers)),
69
- };
70
- if (!delay)
71
- return [2 /*return*/, Promise.resolve(response)];
72
- return [2 /*return*/, new Promise(function (resolve) {
73
- return setTimeout(function () {
74
- return resolve(response);
75
- }, delay);
76
- })];
77
- });
62
+ var createDefaultResponse = function () { return __awaiter(void 0, void 0, void 0, function () {
63
+ var response;
64
+ return __generator(this, function (_a) {
65
+ response = {
66
+ json: function () { return Promise.resolve(); },
67
+ status: 200,
68
+ ok: true,
69
+ headers: new Headers({ 'Content-Type': 'application/json' }),
70
+ };
71
+ return [2 /*return*/, Promise.resolve(response)];
78
72
  });
79
- };
73
+ }); };
74
+ var createResponse = function (mockResponse) { return __awaiter(void 0, void 0, void 0, function () {
75
+ var responseBody, _a, status, headers, delay, response;
76
+ return __generator(this, function (_b) {
77
+ responseBody = mockResponse.responseBody, _a = mockResponse.status, status = _a === void 0 ? 200 : _a, headers = mockResponse.headers, delay = mockResponse.delay;
78
+ response = {
79
+ json: function () { return Promise.resolve(responseBody); },
80
+ status: status,
81
+ ok: status >= 200 && status <= 299,
82
+ headers: new Headers(__assign({ 'Content-Type': 'application/json' }, headers)),
83
+ };
84
+ if (!delay)
85
+ return [2 /*return*/, Promise.resolve(response)];
86
+ return [2 /*return*/, new Promise(function (resolve) {
87
+ return setTimeout(function () {
88
+ return resolve(response);
89
+ }, delay);
90
+ })];
91
+ });
92
+ }); };
80
93
  var printRequest = function (request) {
81
- return console.warn("\n" + chalk_1.white.bold.bgRed('wrapito') + " " + chalk_1.redBright.bold('cannot find any mock matching:') + "\n " + chalk_1.greenBright("URL: " + request.url) + "\n " + chalk_1.greenBright("METHOD: " + request.method.toLowerCase()) + "\n " + chalk_1.greenBright("REQUEST BODY: " + request._bodyInit) + "\n ");
94
+ return console.warn("\n" + chalk_1.default.white.bold.bgRed('wrapito') + " " + chalk_1.default.redBright.bold('cannot find any mock matching:') + "\n " + chalk_1.default.greenBright("URL: " + request.url) + "\n " + chalk_1.default.greenBright("METHOD: " + request.method.toLowerCase()) + "\n " + chalk_1.default.greenBright("REQUEST BODY: " + request._bodyInit) + "\n ");
82
95
  };
83
- function mockNetwork(responses, debug) {
84
- var _this = this;
96
+ var mockFetch = function (responses, request, debug) { return __awaiter(void 0, void 0, void 0, function () {
97
+ var responseMatchingRequest, multipleResponses, responseNotYetReturned;
98
+ return __generator(this, function (_a) {
99
+ responseMatchingRequest = responses.find(requestMatcher_1.getRequestMatcher(request));
100
+ if (!responseMatchingRequest) {
101
+ if (debug) {
102
+ printRequest(request);
103
+ }
104
+ return [2 /*return*/, createDefaultResponse()];
105
+ }
106
+ multipleResponses = responseMatchingRequest.multipleResponses;
107
+ if (!multipleResponses) {
108
+ return [2 /*return*/, createResponse(responseMatchingRequest)];
109
+ }
110
+ responseNotYetReturned = multipleResponses.find(function (response) { return !response.hasBeenReturned; });
111
+ if (!responseNotYetReturned)
112
+ return [2 /*return*/];
113
+ responseNotYetReturned.hasBeenReturned = true;
114
+ return [2 /*return*/, createResponse(responseNotYetReturned)];
115
+ });
116
+ }); };
117
+ var mockNetwork = function (responses, debug) {
85
118
  if (responses === void 0) { responses = []; }
86
119
  if (debug === void 0) { debug = false; }
87
- var listOfResponses = responses.length > 0 ? responses : [responses];
88
- global.fetch.mockImplementation(function (request) { return __awaiter(_this, void 0, void 0, function () {
89
- var responseMatchingRequest, multipleResponses, responseNotYetReturned;
90
- return __generator(this, function (_a) {
91
- responseMatchingRequest = listOfResponses.find(requestMatcher_1.getRequestMatcher(request));
92
- if (!responseMatchingRequest) {
93
- if (debug) {
94
- printRequest(request);
95
- }
96
- return [2 /*return*/, createResponse({})];
97
- }
98
- multipleResponses = responseMatchingRequest.multipleResponses;
99
- if (!multipleResponses) {
100
- return [2 /*return*/, createResponse(responseMatchingRequest)];
101
- }
102
- responseNotYetReturned = multipleResponses.find(function (_a) {
103
- var hasBeenReturned = _a.hasBeenReturned;
104
- return !hasBeenReturned;
105
- });
106
- if (!responseNotYetReturned)
107
- return [2 /*return*/];
108
- responseNotYetReturned.hasBeenReturned = true;
109
- return [2 /*return*/, createResponse(responseNotYetReturned)];
110
- });
111
- }); });
112
- }
120
+ var fetch = global.window.fetch;
121
+ fetch.mockImplementation(function (request) { return mockFetch(responses, request, debug); });
122
+ };
113
123
  exports.mockNetwork = mockNetwork;
114
124
  //# sourceMappingURL=mockNetwork.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mockNetwork.js","sourceRoot":"","sources":["../src/mockNetwork.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAqD;AACrD,mDAAoD;AAEpD,UAAU,CAAC;IACT,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;AAC1B,CAAC,CAAC,CAAA;AAEF,SAAS,CAAC;IACR,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;AAC5B,CAAC,CAAC,CAAA;AAEF,IAAM,cAAc,GAAG,UAAO,EAK7B;QAJC,YAAY,kBAAA,EACZ,cAAY,EAAZ,MAAM,mBAAG,GAAG,KAAA,EACZ,OAAO,aAAA,EACP,KAAK,WAAA;;;;YAEC,QAAQ,GAAG;gBACf,IAAI,EAAE,cAAM,OAAA,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAA7B,CAA6B;gBACzC,MAAM,QAAA;gBACN,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,MAAM,IAAI,GAAG;gBAClC,OAAO,EAAE,IAAI,OAAO,YAAG,cAAc,EAAE,kBAAkB,IAAK,OAAO,EAAG;aACzE,CAAA;YAED,IAAI,CAAC,KAAK;gBAAE,sBAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAA;YAE5C,sBAAO,IAAI,OAAO,CAAC,UAAA,OAAO;oBACxB,OAAA,UAAU,CAAC;wBACT,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;oBAC1B,CAAC,EAAE,KAAK,CAAC;gBAFT,CAES,CACV,EAAA;;;CACF,CAAA;AAED,IAAM,YAAY,GAAG,UAAA,OAAO;IAC1B,OAAO,OAAO,CAAC,IAAI,CAAC,OACnB,aAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAM,iBAAS,CAAC,IAAI,CAChD,gCAAgC,CACjC,YACI,mBAAW,CAAC,UAAS,OAAO,CAAC,GAAM,CAAC,YACpC,mBAAW,CAAC,aAAY,OAAO,CAAC,MAAM,CAAC,WAAW,EAAK,CAAC,YACxD,mBAAW,CAAC,mBAAkB,OAAO,CAAC,SAAY,CAAC,QACtD,CAAC,CAAA;AACH,CAAC,CAAA;AAED,SAAS,WAAW,CAAC,SAAc,EAAE,KAAa;IAAlD,iBA4BC;IA5BoB,0BAAA,EAAA,cAAc;IAAE,sBAAA,EAAA,aAAa;IAChD,IAAM,eAAe,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACtE,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,UAAM,OAAO;;;YACrC,uBAAuB,GAAG,eAAe,CAAC,IAAI,CAClD,kCAAiB,CAAC,OAAO,CAAC,CAC3B,CAAA;YAED,IAAI,CAAC,uBAAuB,EAAE;gBAC5B,IAAI,KAAK,EAAE;oBACT,YAAY,CAAC,OAAO,CAAC,CAAA;iBACtB;gBAED,sBAAO,cAAc,CAAC,EAAE,CAAC,EAAA;aAC1B;YAEO,iBAAiB,GAAK,uBAAuB,kBAA5B,CAA4B;YACrD,IAAI,CAAC,iBAAiB,EAAE;gBACtB,sBAAO,cAAc,CAAC,uBAAuB,CAAC,EAAA;aAC/C;YAEK,sBAAsB,GAAG,iBAAiB,CAAC,IAAI,CACnD,UAAC,EAAmB;oBAAjB,eAAe,qBAAA;gBAAO,OAAA,CAAC,eAAe;YAAhB,CAAgB,CAC1C,CAAA;YACD,IAAI,CAAC,sBAAsB;gBAAE,sBAAM;YAEnC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAA;YAC7C,sBAAO,cAAc,CAAC,sBAAsB,CAAC,EAAA;;SAC9C,CAAC,CAAA;AACJ,CAAC;AAEQ,kCAAW"}
1
+ {"version":3,"file":"mockNetwork.js","sourceRoot":"","sources":["../src/mockNetwork.ts"],"names":[],"mappings":"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"}
package/models.d.ts CHANGED
@@ -1,17 +1,20 @@
1
1
  import React from 'react';
2
- interface Response {
2
+ interface WrapRequest extends Request {
3
+ _bodyInit: string;
4
+ }
5
+ interface WrapResponse extends Response {
3
6
  path: string;
4
7
  method?: string;
5
- status?: number;
6
8
  host?: string;
7
9
  responseBody?: object;
8
10
  requestBody?: object;
9
- multipleResponses?: Response[];
11
+ multipleResponses?: WrapResponse[];
10
12
  catchParams?: boolean;
11
13
  delay?: number;
14
+ hasBeenReturned?: boolean;
12
15
  }
13
16
  interface Wrap {
14
- withNetwork: (responses: Response[]) => Wrap;
17
+ withNetwork: (responses: WrapResponse[]) => Wrap;
15
18
  atPath: (path: string) => Wrap;
16
19
  withProps: (props: object) => Wrap;
17
20
  debugRequests: () => Wrap;
@@ -19,14 +22,14 @@ interface Wrap {
19
22
  }
20
23
  interface WrapOptions {
21
24
  Component: typeof React.Component;
22
- responses: Response[];
25
+ responses: WrapResponse[];
23
26
  props: object;
24
27
  path: string;
25
28
  hasPath: boolean;
26
29
  debug: boolean;
27
30
  }
28
31
  interface WrapExtensionAPI {
29
- addResponses: () => void;
32
+ addResponses: (responses: WrapResponse[]) => void;
30
33
  }
31
34
  declare type Extension = <T>(extensionAPI: WrapExtensionAPI, args: T) => Wrap;
32
35
  declare type Extensions = {
@@ -45,5 +48,5 @@ interface Config {
45
48
  interface BrowserHistory extends History {
46
49
  push: (path: string) => void;
47
50
  }
48
- export { Wrap, WrapOptions, Response, Config, Mount, Component, BrowserHistory };
51
+ export { WrapRequest as Request, WrapResponse as Response, Config, Mount, Component, BrowserHistory, Extension, Extensions, WrapExtensionAPI, Wrap, WrapOptions, };
49
52
  //# sourceMappingURL=models.d.ts.map
package/models.d.ts.map CHANGED
@@ -1 +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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,UAAU,WAAY,SAAQ,OAAO;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,YAAa,SAAQ,QAAQ;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,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,YAAY,EAAE,CAAA;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,UAAU,IAAI;IACZ,WAAW,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,IAAI,CAAA;IAChD,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,YAAY,EAAE,CAAA;IACzB,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,CAAC,SAAS,EAAE,YAAY,EAAE,KAAK,IAAI,CAAA;CAClD;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,EACL,WAAW,IAAI,OAAO,EACtB,YAAY,IAAI,QAAQ,EACxB,MAAM,EACN,KAAK,EACL,SAAS,EACT,cAAc,EACd,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,IAAI,EACJ,WAAW,GACZ,CAAA"}
package/options.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { WrapOptions } from "./models";
2
+ declare let options: WrapOptions;
3
+ declare const updateOptions: (updatedOptions: WrapOptions) => void;
4
+ declare const getOptions: () => WrapOptions;
5
+ export { options, updateOptions, getOptions };
6
+ //# sourceMappingURL=options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,QAAA,IAAI,OAAO,EAAE,WAAW,CAAA;AAExB,QAAA,MAAM,aAAa,mBAAoB,WAAW,SAKjD,CAAA;AAED,QAAA,MAAM,UAAU,QAAQ,WAA+B,CAAA;AAEvD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAA"}
package/options.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getOptions = exports.updateOptions = exports.options = void 0;
15
+ var options;
16
+ exports.options = options;
17
+ var updateOptions = function (updatedOptions) {
18
+ exports.options = options = __assign(__assign({}, options), updatedOptions);
19
+ };
20
+ exports.updateOptions = updateOptions;
21
+ var getOptions = function () { return (__assign({}, options)); };
22
+ exports.getOptions = getOptions;
23
+ //# sourceMappingURL=options.js.map
package/options.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,IAAI,OAAoB,CAAA;AAWf,0BAAO;AAThB,IAAM,aAAa,GAAG,UAAC,cAA2B;IAChD,kBAAA,OAAO,yBACF,OAAO,GACP,cAAc,CAClB,CAAA;AACH,CAAC,CAAA;AAIiB,sCAAa;AAF/B,IAAM,UAAU,GAAG,cAAoB,OAAA,cAAM,OAAO,EAAG,EAAhB,CAAgB,CAAA;AAEtB,gCAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wrapito",
3
- "version": "9.0.1",
3
+ "version": "9.1.0",
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",
package/wrap.d.ts.map CHANGED
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"wrap.d.ts","sourceRoot":"","sources":["../src/wrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,EAEL,IAAI,EAIL,MAAM,UAAU,CAAA;AAWjB,QAAA,MAAM,IAAI,yCAAwC,IAWjD,CAAA;AAoHD,OAAO,EAAE,IAAI,EAAE,CAAA"}
package/wrap.js CHANGED
@@ -20,6 +20,7 @@ exports.wrap = void 0;
20
20
  var jsx_runtime_1 = require("react/jsx-runtime");
21
21
  var mockNetwork_1 = require("./mockNetwork");
22
22
  var config_1 = require("./config");
23
+ var options_1 = require("./options");
23
24
  beforeEach(function () {
24
25
  global.fetch = jest.fn();
25
26
  });
@@ -28,79 +29,86 @@ afterEach(function () {
28
29
  mockedFetch.mockRestore();
29
30
  });
30
31
  var wrap = function (Component) {
31
- var options = {
32
+ options_1.updateOptions({
32
33
  Component: Component,
33
34
  responses: [],
34
35
  props: {},
35
36
  path: '',
36
37
  hasPath: false,
37
- debug: false,
38
- };
39
- return wrapWith(options);
38
+ debug: process.env.npm_config_debugRequests === 'true',
39
+ });
40
+ return wrapWith();
40
41
  };
41
42
  exports.wrap = wrap;
42
- var wrapWith = function (options) {
43
- var _a = config_1.getConfig(), extend = _a.extend, portal = _a.portal, changeRoute = _a.changeRoute, history = _a.history, mount = _a.mount;
44
- var extensions = extendWith(extend, options);
45
- return __assign({ withProps: getWithProps(options), withNetwork: getWithNetwork(options), atPath: getAtPath(options), debugRequests: getDebugRequest(options), mount: getMount(options, mount, changeRoute, history, portal) }, extensions);
43
+ var wrapWith = function () {
44
+ var extensions = extendWith();
45
+ return __assign({ withProps: withProps, withNetwork: withNetwork, atPath: atPath, debugRequests: debugRequests, mount: getMount }, extensions);
46
46
  };
47
- //@ts-ignore
48
- var extendWith = function (extensions, options) {
49
- if (!extensions)
50
- return {};
51
- return Object.keys(extensions).reduce(function (alreadyExtended, nextExtension) {
52
- var _a;
53
- return (__assign(__assign({}, alreadyExtended), (_a = {}, _a[nextExtension] = function () {
54
- var args = [];
55
- for (var _i = 0; _i < arguments.length; _i++) {
56
- args[_i] = arguments[_i];
57
- }
58
- extensions[nextExtension]({
59
- addResponses: function (responses) {
60
- if (responses === void 0) { responses = []; }
61
- var responsesToAdd = Array.isArray(responses)
62
- ? responses
63
- : [responses];
64
- options.responses = __spreadArray(__spreadArray([], options.responses), responsesToAdd);
65
- },
66
- }, args);
67
- return wrapWith(options);
68
- }, _a)));
69
- }, {});
47
+ var addResponses = function (newResponses) {
48
+ var options = options_1.getOptions();
49
+ var responses = __spreadArray(__spreadArray([], options.responses), newResponses);
50
+ options_1.updateOptions(__assign(__assign({}, options), { responses: responses }));
70
51
  };
71
- var getWithProps = function (options) { return function (props) {
72
- return wrapWith(__assign(__assign({}, options), { props: props }));
73
- }; };
74
- var getWithNetwork = function (options) {
75
- return function (responses) {
76
- if (responses === void 0) { responses = []; }
77
- var listOfResponses = Array.isArray(responses) ? responses : [responses];
78
- return wrapWith(__assign(__assign({}, options), { responses: __spreadArray(__spreadArray([], options.responses), listOfResponses) }));
79
- };
52
+ var applyExtension = function (args, extension) {
53
+ var wrapExtensionAPI = { addResponses: addResponses };
54
+ extension(wrapExtensionAPI, args);
55
+ return wrapWith();
80
56
  };
81
- var getAtPath = function (options) { return function (path) {
82
- return wrapWith(__assign(__assign({}, options), { path: path, hasPath: true }));
83
- }; };
84
- var getDebugRequest = function (options) { return function () {
85
- return wrapWith(__assign(__assign({}, options), { debug: true }));
86
- }; };
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);
57
+ var buildExtensions = function (alreadyExtended, extensionName) {
58
+ var _a;
59
+ var extensions = config_1.getConfig().extend;
60
+ var extension = extensions[extensionName];
61
+ return __assign(__assign({}, alreadyExtended), (_a = {}, _a[extensionName] = function () {
62
+ var args = [];
63
+ for (var _i = 0; _i < arguments.length; _i++) {
64
+ args[_i] = arguments[_i];
100
65
  }
101
- mockNetwork_1.mockNetwork(responses, debug);
102
- return mount(jsx_runtime_1.jsx(Component, __assign({}, props), void 0));
103
- };
66
+ return applyExtension(args, extension);
67
+ }, _a));
68
+ };
69
+ var extendWith = function () {
70
+ var extensions = config_1.getConfig().extend;
71
+ var extensionNames = Object.keys(extensions);
72
+ return extensionNames.reduce(buildExtensions, {});
73
+ };
74
+ var withProps = function (props) {
75
+ var options = options_1.getOptions();
76
+ options_1.updateOptions(__assign(__assign({}, options), { props: props }));
77
+ return wrapWith();
78
+ };
79
+ var withNetwork = function (responses) {
80
+ if (responses === void 0) { responses = []; }
81
+ var options = options_1.getOptions();
82
+ var listOfResponses = Array.isArray(responses) ? responses : [responses];
83
+ options_1.updateOptions(__assign(__assign({}, options), { responses: __spreadArray(__spreadArray([], options.responses), listOfResponses) }));
84
+ return wrapWith();
85
+ };
86
+ var atPath = function (path) {
87
+ var options = options_1.getOptions();
88
+ options_1.updateOptions(__assign(__assign({}, options), { path: path, hasPath: true }));
89
+ return wrapWith();
90
+ };
91
+ var debugRequests = function () {
92
+ var options = options_1.getOptions();
93
+ options_1.updateOptions(__assign(__assign({}, options), { debug: true }));
94
+ return wrapWith();
95
+ };
96
+ var getMount = function () {
97
+ var _a = config_1.getConfig(), portal = _a.portal, changeRoute = _a.changeRoute, history = _a.history, mount = _a.mount;
98
+ var _b = options_1.getOptions(), Component = _b.Component, props = _b.props, responses = _b.responses, path = _b.path, hasPath = _b.hasPath, debug = _b.debug;
99
+ if (portal) {
100
+ setupPortal(portal);
101
+ }
102
+ if (hasPath && history) {
103
+ console.warn('wrapito WARNING: history is DEPRECATED. Pass a changeRoute function to the config instead.');
104
+ console.warn('Read about changeRoute in: https://github.com/mercadona/wrapito#changeRoute');
105
+ history.push(path);
106
+ }
107
+ if (hasPath && !history) {
108
+ changeRoute(path);
109
+ }
110
+ mockNetwork_1.mockNetwork(responses, debug);
111
+ return mount(jsx_runtime_1.jsx(Component, __assign({}, props), void 0));
104
112
  };
105
113
  var setupPortal = function (portalRootId) {
106
114
  if (document.getElementById(portalRootId)) {
package/wrap.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrap.js","sourceRoot":"","sources":["../src/wrap.tsx"],"names":[],"mappings":"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"}