wrapito 9.5.0 → 10.0.0-beta1

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/package.json CHANGED
@@ -1,16 +1,32 @@
1
1
  {
2
2
  "name": "wrapito",
3
- "version": "9.5.0",
3
+ "version": "10.0.0-beta1",
4
4
  "description": "🌯 🌯 Wrap you tests so that you can test both behaviour and components with less effort.",
5
- "main": "dist/index.js",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "require": "./dist/index.js",
9
+ "import": "./dist/index.mjs",
10
+ "types": "./dist/index.d.ts"
11
+ }
12
+ },
13
+ "main": "./dist/index.js",
14
+ "module": "./dist/index.mjs",
15
+ "types": "./dist/index.d.ts",
16
+ "files": [
17
+ "dist"
18
+ ],
6
19
  "license": "MIT",
7
20
  "scripts": {
8
- "test": "jest --ci --coverage --config config/jest.config.json",
9
- "test:watch": "jest --watch --config config/jest.config.json",
10
- "build": "NODE_ENV=production tsc",
11
- "clean": "rm -rf dist",
12
- "postbuild": "node scripts/copy-publish-files.js",
13
- "publish-package": "npm run clean && npm run build && npm run postbuild && cd dist && npm publish"
21
+ "build": "tsup",
22
+ "build:watch": "tsup --watch",
23
+ "test": "vitest",
24
+ "test:coverage": "vitest --coverage",
25
+ "test:publish": "npm publish --dry-run",
26
+ "build:types": "tsc --build",
27
+ "publish-package": "npm run build && npm publish",
28
+ "publish-package:beta": "npm run build && npm publish --tag beta",
29
+ "typecheck": "tsc --noEmit dist/index.d.ts"
14
30
  },
15
31
  "repository": {
16
32
  "type": "git",
@@ -20,70 +36,60 @@
20
36
  "react",
21
37
  "testing",
22
38
  "test",
23
- "integration",
24
39
  "unit",
25
40
  "javascript",
26
41
  "dom",
27
42
  "js",
28
- "jest",
29
43
  "wrap",
30
44
  "component",
31
45
  "mock",
32
46
  "fetch",
33
- "http"
47
+ "http",
48
+ "vitest"
34
49
  ],
35
50
  "bugs": {
36
51
  "url": "https://github.com/mercadona/wrapito/issues"
37
52
  },
38
53
  "homepage": "https://github.com/mercadona/wrapito#readme",
39
54
  "dependencies": {
40
- "deep-equal": "^1.0.1",
55
+ "chalk": "^4.1.2",
56
+ "deep-equal": "^2.2.3",
41
57
  "jest-diff": "^29.7.0",
42
- "object-hash": "^2.1.1",
43
- "whatwg-fetch": "^3.5.0"
58
+ "object-hash": "^3.0.0",
59
+ "rimraf": "^5.0.5",
60
+ "whatwg-fetch": "^3.6.20"
44
61
  },
45
62
  "devDependencies": {
46
- "@babel/cli": "^7.10.5",
47
- "@babel/core": "^7.11.1",
48
- "@babel/plugin-proposal-class-properties": "^7.10.4",
49
- "@babel/plugin-transform-runtime": "^7.11.0",
50
- "@babel/preset-env": "^7.11.0",
51
- "@babel/preset-react": "^7.10.4",
52
- "@testing-library/jest-dom": "^4.2.0",
53
- "@testing-library/react": "^9.3.0",
54
- "@types/history": "^4.7.9",
55
- "@types/jest": "^26.0.23",
56
- "@types/react": "^17.0.16",
57
- "babel-jest": "^24.8.0",
58
- "jest": "^27.0.4",
59
- "jest-junit": "^6.4.0",
60
- "react": "^17.0.2",
61
- "react-dom": "^16.13.1",
62
- "react-redux": "^7.2.1",
63
- "react-router-dom": "^5.2.0",
64
- "redux": "^4.0.4",
65
- "redux-thunk": "^2.3.0",
66
- "ts-jest": "^27.0.3",
67
- "typescript": "^4.3.3"
63
+ "@testing-library/jest-dom": "^4.2.4",
64
+ "@testing-library/react": "^12.1.5",
65
+ "@types/deep-equal": "^1.0.4",
66
+ "@types/history": "^4.7.11",
67
+ "@types/node": "^20.10.5",
68
+ "@types/object-hash": "^3.0.6",
69
+ "@types/react": "^17.0.73",
70
+ "@types/react-dom": "^17.0.25",
71
+ "@vitest/coverage-istanbul": "^1.1.0",
72
+ "eslint": "^8.56.0",
73
+ "eslint-config-prettier": "^9.1.0",
74
+ "eslint-config-react-app": "^7.0.1",
75
+ "eslint-plugin-prettier": "^5.1.1",
76
+ "eslint-plugin-react": "^7.33.2",
77
+ "jsdom": "^24.0.0",
78
+ "prettier": "^3.1.1",
79
+ "react": "^17.0.0",
80
+ "react-dom": "^17.0.2",
81
+ "react-redux": "^7.2.9",
82
+ "react-router-dom": "^5.3.4",
83
+ "redux": "^4.2.1",
84
+ "redux-thunk": "^2.4.2",
85
+ "rollup": "^4.9.1",
86
+ "tinyspy": "^2.2.1",
87
+ "tsup": "^8.0.1",
88
+ "typescript": "^5.3.3",
89
+ "vitest": "^1.1.0"
68
90
  },
69
91
  "peerDependencies": {
70
- "chalk": "*",
71
- "jest": "*",
72
92
  "react": "*",
73
93
  "react-dom": "*"
74
- },
75
- "babel": {
76
- "presets": [
77
- "@babel/env",
78
- "@babel/react"
79
- ],
80
- "plugins": [
81
- "@babel/plugin-transform-runtime",
82
- "@babel/proposal-class-properties"
83
- ]
84
- },
85
- "jest-junit": {
86
- "suiteName": "jest tests",
87
- "output": "results/tests/jest-junit.xml"
88
94
  }
89
95
  }
@@ -1,19 +0,0 @@
1
- export function toHaveBeenFetchedWith(path: any, options: any): {
2
- pass: boolean;
3
- message: () => string;
4
- } | {
5
- pass: boolean;
6
- message: () => undefined;
7
- };
8
- export function toHaveBeenFetched(path: any, options: any): {
9
- pass: boolean;
10
- message: () => string;
11
- };
12
- export function toHaveBeenFetchedTimes(path: any, expectedLength: any, options: any): {
13
- pass: boolean;
14
- message: () => string;
15
- } | {
16
- pass: boolean;
17
- message: () => undefined;
18
- };
19
- //# sourceMappingURL=fetch.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/assertions/fetch.js"],"names":[],"mappings":"AAiEA;;;;;;EA0BC;AAED;;;EAKC;AAED;;;;;;EAKC"}
@@ -1,94 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.toHaveBeenFetchedTimes = exports.toHaveBeenFetched = exports.toHaveBeenFetchedWith = void 0;
7
- var deep_equal_1 = __importDefault(require("deep-equal"));
8
- var config_1 = require("../config");
9
- var messages_1 = require("./messages");
10
- var findRequestsByPath = function (expectedPath, options) {
11
- return fetch.mock.calls.filter(function (_a) {
12
- var call = _a[0];
13
- var url = getUrl(call);
14
- var defaultHost = getDefaultHost();
15
- var callURL = new URL(url, defaultHost);
16
- var path = getPath(options === null || options === void 0 ? void 0 : options.host, expectedPath, defaultHost);
17
- var expectedHost = (options === null || options === void 0 ? void 0 : options.host) || defaultHost;
18
- var expectedURL = new URL(path, expectedHost);
19
- var matchPathName = callURL.pathname === expectedURL.pathname;
20
- var matchSearchParams = callURL.search === expectedURL.search;
21
- var matchHost = callURL.host === expectedURL.host;
22
- if (expectedURL.search) {
23
- return matchPathName && matchSearchParams;
24
- }
25
- if (options === null || options === void 0 ? void 0 : options.host) {
26
- return matchPathName && matchHost;
27
- }
28
- return matchPathName;
29
- });
30
- };
31
- var getDefaultHost = function () {
32
- var configuredHost = (0, config_1.getConfig)().defaultHost;
33
- return (configuredHost === null || configuredHost === void 0 ? void 0 : configuredHost.includes('http')) ? configuredHost : 'https://default.com';
34
- };
35
- var getPath = function (host, expectedPath, defaultHost) {
36
- if (host === void 0) { host = ''; }
37
- return expectedPath.includes(defaultHost) ? expectedPath : host + expectedPath;
38
- };
39
- var getUrl = function (call) { return (call instanceof Request ? call.url : call); };
40
- var getRequestsMethods = function (requests) {
41
- return requests.map(function (request) { var _a; return (_a = request[0]) === null || _a === void 0 ? void 0 : _a.method; });
42
- };
43
- var getRequestsBodies = function (requests) {
44
- return requests.map(function (request) {
45
- if (!request[0]._bodyInit)
46
- return {};
47
- return JSON.parse(request[0]._bodyInit);
48
- });
49
- };
50
- var methodDoesNotMatch = function (expectedMethod, receivedRequestsMethods) {
51
- return expectedMethod && !receivedRequestsMethods.includes(expectedMethod);
52
- };
53
- var bodyDoesNotMatch = function (expectedBody, receivedRequestsBodies) {
54
- var anyRequestMatch = receivedRequestsBodies
55
- .map(function (request) { return (0, deep_equal_1.default)(expectedBody, request); })
56
- .every(function (requestCompare) { return requestCompare === false; });
57
- return anyRequestMatch;
58
- };
59
- var empty = function (requests) { return requests.length === 0; };
60
- var toHaveBeenFetchedWith = function (path, options) {
61
- var targetRequests = findRequestsByPath(path);
62
- if (empty(targetRequests)) {
63
- return (0, messages_1.emptyErrorMessage)(path);
64
- }
65
- var receivedRequestsMethods = getRequestsMethods(targetRequests);
66
- var expectedMethod = options === null || options === void 0 ? void 0 : options.method;
67
- if (methodDoesNotMatch(expectedMethod, receivedRequestsMethods)) {
68
- return (0, messages_1.methodDoesNotMatchErrorMessage)(expectedMethod, receivedRequestsMethods);
69
- }
70
- var receivedRequestsBodies = getRequestsBodies(targetRequests);
71
- var expectedBody = options === null || options === void 0 ? void 0 : options.body;
72
- if (!expectedBody)
73
- return (0, messages_1.doesNotHaveBodyErrorMessage)();
74
- if (bodyDoesNotMatch(expectedBody, receivedRequestsBodies)) {
75
- return (0, messages_1.bodyDoesNotMatchErrorMessage)(expectedBody, receivedRequestsBodies);
76
- }
77
- return (0, messages_1.successMessage)();
78
- };
79
- exports.toHaveBeenFetchedWith = toHaveBeenFetchedWith;
80
- var toHaveBeenFetched = function (path, options) {
81
- var requests = findRequestsByPath(path, options);
82
- return !requests.length
83
- ? (0, messages_1.emptyErrorMessage)(path, options)
84
- : (0, messages_1.haveBeenFetchedSuccessMessage)(path, options);
85
- };
86
- exports.toHaveBeenFetched = toHaveBeenFetched;
87
- var toHaveBeenFetchedTimes = function (path, expectedLength, options) {
88
- var requests = findRequestsByPath(path, options);
89
- return requests.length !== expectedLength
90
- ? (0, messages_1.fetchLengthErrorMessage)(path, expectedLength, requests.length)
91
- : (0, messages_1.successMessage)();
92
- };
93
- exports.toHaveBeenFetchedTimes = toHaveBeenFetchedTimes;
94
- //# sourceMappingURL=fetch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/assertions/fetch.js"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- export namespace assertions {
2
- export { toHaveBeenFetchedWith };
3
- export { toHaveBeenFetched };
4
- export { toHaveBeenFetchedTimes };
5
- }
6
- import { toHaveBeenFetchedWith } from "./fetch";
7
- import { toHaveBeenFetched } from "./fetch";
8
- import { toHaveBeenFetchedTimes } from "./fetch";
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/assertions/index.js"],"names":[],"mappings":""}
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertions = void 0;
4
- var fetch_1 = require("./fetch");
5
- var assertions = {
6
- toHaveBeenFetchedWith: fetch_1.toHaveBeenFetchedWith,
7
- toHaveBeenFetched: fetch_1.toHaveBeenFetched,
8
- toHaveBeenFetchedTimes: fetch_1.toHaveBeenFetchedTimes,
9
- };
10
- exports.assertions = assertions;
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/assertions/index.js"],"names":[],"mappings":";;;AAAA,iCAIgB;AAEhB,IAAM,UAAU,GAAG;IACjB,qBAAqB,+BAAA;IACrB,iBAAiB,2BAAA;IACjB,sBAAsB,gCAAA;CACvB,CAAA;AAEQ,gCAAU"}
@@ -1,29 +0,0 @@
1
- export function emptyErrorMessage(path: any, options: 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, receivedBodies: 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, options: any): {
26
- pass: boolean;
27
- message: () => string;
28
- };
29
- //# sourceMappingURL=messages.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/assertions/messages.js"],"names":[],"mappings":"AAEA;;;EASC;AAED;;;EAIE;AAEF;;;EAIE;AAEF;;;EAWC;AAED;;;EAGE;AAEF;;;EAGE;AAEF;;;EAQC"}
@@ -1,61 +0,0 @@
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 jest_diff_1 = require("jest-diff");
5
- var emptyErrorMessage = function (path, options) {
6
- var message = (options === null || options === void 0 ? void 0 : options.host)
7
- ? "\uD83C\uDF2F Wrapito: ".concat(options === null || options === void 0 ? void 0 : options.host).concat(path, " ain't got called")
8
- : "\uD83C\uDF2F Wrapito: ".concat(path, " ain't got called");
9
- return {
10
- pass: false,
11
- message: function () { return message; },
12
- };
13
- };
14
- exports.emptyErrorMessage = emptyErrorMessage;
15
- var fetchLengthErrorMessage = function (path, expectLength, currentLength) { return ({
16
- pass: false,
17
- message: function () {
18
- return "\uD83C\uDF2F Wrapito: ".concat(path, " is called ").concat(currentLength, " times, you expected ").concat(expectLength, " times");
19
- },
20
- }); };
21
- exports.fetchLengthErrorMessage = fetchLengthErrorMessage;
22
- var methodDoesNotMatchErrorMessage = function (expected, received) { return ({
23
- pass: false,
24
- message: function () {
25
- return "\uD83C\uDF2F Wrapito: Fetch method does not match, expected ".concat(expected, " received ").concat(received !== null && received !== void 0 ? received : 'none');
26
- },
27
- }); };
28
- exports.methodDoesNotMatchErrorMessage = methodDoesNotMatchErrorMessage;
29
- var bodyDoesNotMatchErrorMessage = function (expected, receivedBodies) {
30
- var diffs = receivedBodies
31
- .map(function (received) { return (0, jest_diff_1.diff)(expected, received); })
32
- .join('\n\n');
33
- return {
34
- pass: false,
35
- message: function () {
36
- return "\uD83C\uDF2F Wrapito: Fetch body does not match.\n".concat(diffs);
37
- },
38
- };
39
- };
40
- exports.bodyDoesNotMatchErrorMessage = bodyDoesNotMatchErrorMessage;
41
- var doesNotHaveBodyErrorMessage = function () { return ({
42
- pass: false,
43
- message: function () { return '🌯 Wrapito: Unable to find body.'; },
44
- }); };
45
- exports.doesNotHaveBodyErrorMessage = doesNotHaveBodyErrorMessage;
46
- var successMessage = function () { return ({
47
- pass: true,
48
- message: function () { return undefined; },
49
- }); };
50
- exports.successMessage = successMessage;
51
- var haveBeenFetchedSuccessMessage = function (path, options) {
52
- var message = (options === null || options === void 0 ? void 0 : options.host)
53
- ? "\uD83C\uDF2F Wrapito: ".concat(options.host).concat(path, " is called")
54
- : "\uD83C\uDF2F Wrapito: ".concat(path, " is called");
55
- return {
56
- pass: true,
57
- message: function () { return message; },
58
- };
59
- };
60
- exports.haveBeenFetchedSuccessMessage = haveBeenFetchedSuccessMessage;
61
- //# sourceMappingURL=messages.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/assertions/messages.js"],"names":[],"mappings":";;;AAAA,uCAAgC;AAEhC,IAAM,iBAAiB,GAAG,UAAC,IAAI,EAAE,OAAO;IACtC,IAAM,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;QAC3B,CAAC,CAAC,gCAAe,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,SAAG,IAAI,sBAAmB;QACxD,CAAC,CAAC,gCAAe,IAAI,sBAAmB,CAAA;IAE1C,OAAO;QACL,IAAI,EAAE,KAAK;QACX,OAAO,EAAE,cAAM,OAAA,OAAO,EAAP,CAAO;KACvB,CAAA;AACH,CAAC,CAAA;AAgDC,8CAAiB;AA9CnB,IAAM,uBAAuB,GAAG,UAAC,IAAI,EAAE,YAAY,EAAE,aAAa,IAAK,OAAA,CAAC;IACtE,IAAI,EAAE,KAAK;IACX,OAAO,EAAE;QACP,OAAA,gCAAe,IAAI,wBAAc,aAAa,kCAAwB,YAAY,WAAQ;IAA1F,CAA0F;CAC7F,CAAC,EAJqE,CAIrE,CAAA;AA2CA,0DAAuB;AAzCzB,IAAM,8BAA8B,GAAG,UAAC,QAAQ,EAAE,QAAQ,IAAK,OAAA,CAAC;IAC9D,IAAI,EAAE,KAAK;IACX,OAAO,EAAE;QACP,OAAA,sEAAqD,QAAQ,uBAAa,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,MAAM,CAAE;IAA9F,CAA8F;CACjG,CAAC,EAJ6D,CAI7D,CAAA;AAsCA,wEAA8B;AApChC,IAAM,4BAA4B,GAAG,UAAC,QAAQ,EAAE,cAAc;IAC5D,IAAM,KAAK,GAAG,cAAc;SACzB,GAAG,CAAC,UAAA,QAAQ,IAAI,OAAA,IAAA,gBAAI,EAAC,QAAQ,EAAE,QAAQ,CAAC,EAAxB,CAAwB,CAAC;SACzC,IAAI,CAAC,MAAM,CAAC,CAAA;IAEf,OAAO;QACL,IAAI,EAAE,KAAK;QACX,OAAO,EAAE;YACP,OAAA,4DACJ,KAAK,CAAE;QADH,CACG;KACN,CAAA;AACH,CAAC,CAAA;AA0BC,oEAA4B;AAxB9B,IAAM,2BAA2B,GAAG,cAAM,OAAA,CAAC;IACzC,IAAI,EAAE,KAAK;IACX,OAAO,EAAE,cAAM,OAAA,kCAAkC,EAAlC,CAAkC;CAClD,CAAC,EAHwC,CAGxC,CAAA;AAsBA,kEAA2B;AApB7B,IAAM,cAAc,GAAG,cAAM,OAAA,CAAC;IAC5B,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS;CACzB,CAAC,EAH2B,CAG3B,CAAA;AAkBA,wCAAc;AAhBhB,IAAM,6BAA6B,GAAG,UAAC,IAAI,EAAE,OAAO;IAClD,IAAM,OAAO,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI;QAC3B,CAAC,CAAC,gCAAe,OAAO,CAAC,IAAI,SAAG,IAAI,eAAY;QAChD,CAAC,CAAC,gCAAe,IAAI,eAAY,CAAA;IACnC,OAAO;QACL,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,cAAM,OAAA,OAAO,EAAP,CAAO;KACvB,CAAA;AACH,CAAC,CAAA;AASC,sEAA6B"}
package/config.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import { Config, Mount } from './models';
2
- declare function configure(newConfig: Config): void;
3
- declare const getConfig: () => Config;
4
- export { configure, getConfig, Config, Mount };
5
- //# sourceMappingURL=config.d.ts.map
package/config.d.ts.map DELETED
@@ -1 +0,0 @@
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 DELETED
@@ -1,33 +0,0 @@
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.getConfig = exports.configure = void 0;
15
- var react_dom_1 = require("react-dom");
16
- var mount = function (component) {
17
- var rootNode = document.body.appendChild(document.createElement('div'));
18
- (0, react_dom_1.render)(component, rootNode);
19
- return rootNode;
20
- };
21
- var config = {
22
- defaultHost: '',
23
- extend: {},
24
- mount: mount,
25
- changeRoute: function (path) { return window.history.replaceState(null, '', path); },
26
- };
27
- function configure(newConfig) {
28
- config = __assign(__assign({}, config), newConfig);
29
- }
30
- exports.configure = configure;
31
- var getConfig = function () { return (__assign({}, config)); };
32
- exports.getConfig = getConfig;
33
- //# sourceMappingURL=config.js.map
package/config.js.map DELETED
@@ -1 +0,0 @@
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,IAAA,kBAAM,EAAC,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 DELETED
@@ -1,4 +0,0 @@
1
- export { wrap } from './wrap';
2
- export { configure } from './config';
3
- export { assertions } from './assertions';
4
- //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map DELETED
@@ -1 +0,0 @@
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 DELETED
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertions = exports.configure = exports.wrap = void 0;
4
- var wrap_1 = require("./wrap");
5
- Object.defineProperty(exports, "wrap", { enumerable: true, get: function () { return wrap_1.wrap; } });
6
- var config_1 = require("./config");
7
- Object.defineProperty(exports, "configure", { enumerable: true, get: function () { return config_1.configure; } });
8
- var assertions_1 = require("./assertions");
9
- Object.defineProperty(exports, "assertions", { enumerable: true, get: function () { return assertions_1.assertions; } });
10
- //# sourceMappingURL=index.js.map
package/index.js.map DELETED
@@ -1 +0,0 @@
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/mockNetwork.d.ts DELETED
@@ -1,10 +0,0 @@
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 };
10
- //# sourceMappingURL=mockNetwork.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mockNetwork.d.ts","sourceRoot":"","sources":["../src/mockNetwork.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAe,MAAM,UAAU,CAAA;AAGhD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,EAAE,IAAI,CAAC,IAAI,CAAA;KACjB;CACF;AAqFD,QAAA,MAAM,WAAW,eAAe,QAAQ,EAAE,UAAc,OAAO,SAW9D,CAAA;AASD,OAAO,EAAE,WAAW,EAAE,CAAA"}
package/mockNetwork.js DELETED
@@ -1,140 +0,0 @@
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
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __importDefault = (this && this.__importDefault) || function (mod) {
50
- return (mod && mod.__esModule) ? mod : { "default": mod };
51
- };
52
- Object.defineProperty(exports, "__esModule", { value: true });
53
- exports.mockNetwork = void 0;
54
- var chalk_1 = __importDefault(require("chalk"));
55
- var requestMatcher_1 = require("./requestMatcher");
56
- beforeEach(function () {
57
- global.window.fetch = jest.fn();
58
- });
59
- afterEach(function () {
60
- global.window.fetch.mockRestore();
61
- });
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)];
72
- });
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
- }); };
93
- var printRequest = function (request) {
94
- return console.warn("\n".concat(chalk_1.default.white.bold.bgRed('wrapito'), " ").concat(chalk_1.default.redBright.bold('cannot find any mock matching:'), "\n ").concat(chalk_1.default.greenBright("URL: ".concat(request.url)), "\n ").concat(chalk_1.default.greenBright("METHOD: ".concat(request.method.toLowerCase())), "\n ").concat(chalk_1.default.greenBright("REQUEST BODY: ".concat(request._bodyInit)), "\n "));
95
- };
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((0, 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
- if (debug) {
113
- printMultipleResponsesWarning(responseMatchingRequest);
114
- }
115
- return [2 /*return*/];
116
- }
117
- responseNotYetReturned.hasBeenReturned = true;
118
- return [2 /*return*/, createResponse(responseNotYetReturned)];
119
- });
120
- }); };
121
- var mockNetwork = function (responses, debug) {
122
- if (responses === void 0) { responses = []; }
123
- if (debug === void 0) { debug = false; }
124
- var fetch = global.window.fetch;
125
- fetch.mockImplementation(function (input, init) {
126
- if (typeof input === 'string') {
127
- var request_1 = new Request(input, init);
128
- return mockFetch(responses, request_1, debug);
129
- }
130
- var request = input;
131
- return mockFetch(responses, request, debug);
132
- });
133
- };
134
- exports.mockNetwork = mockNetwork;
135
- var printMultipleResponsesWarning = function (response) {
136
- var errorMessage = "\uD83C\uDF2F Wrapito: Missing response in the multipleResponses array for path ".concat(response.path, " and method ").concat(response.method, ".");
137
- var formattedErrorMessage = chalk_1.default.greenBright(errorMessage);
138
- console.warn(formattedErrorMessage);
139
- };
140
- //# sourceMappingURL=mockNetwork.js.map