@tramvai/test-helpers 2.70.1 → 2.72.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/lib/index.es.js CHANGED
@@ -1,96 +1,4 @@
1
- import { parse } from 'node-html-parser';
2
- import prettier from 'prettier';
3
- import supertest from 'supertest';
4
- import { walkOfModules, getModuleParameters } from '@tramvai/core';
5
- import { createMockDi } from '@tramvai/test-mocks';
6
-
7
- const parseHtml = (html, parserOptions = {
8
- blockTextElements: { script: false, style: false },
9
- }) => {
10
- var _a, _b, _c;
11
- if (!html) {
12
- return null;
13
- }
14
- const prettyHtml = prettier.format(html, { parser: 'html', printWidth: 120 });
15
- const parsed = parse(prettyHtml, parserOptions);
16
- return {
17
- parsed,
18
- body: (_a = parsed.querySelector('body')) === null || _a === void 0 ? void 0 : _a.innerHTML,
19
- head: (_b = parsed.querySelector('head')) === null || _b === void 0 ? void 0 : _b.innerHTML,
20
- application: (_c = parsed.querySelector('.application')) === null || _c === void 0 ? void 0 : _c.innerHTML,
21
- };
22
- };
23
-
24
- const renderFactory = (request, { replaceDynamicStrings = {}, } = {}) => async (path, { method = 'get', parserOptions, } = {}) => {
25
- const response = await request(path, { method });
26
- let { text } = response;
27
- for (const key in replaceDynamicStrings) {
28
- text = text.replace(new RegExp(key, 'g'), replaceDynamicStrings[key]);
29
- }
30
- const parsed = parseHtml(text, parserOptions);
31
- if (!parsed) {
32
- throw new Error(`Cannot parse response
33
- got response:
34
- status: ${response.statusCode}
35
- content: ${response.text}`);
36
- }
37
- return {
38
- ...parsed,
39
- get initialState() {
40
- var _a, _b, _c;
41
- const parsedWithScripts = (_a = parseHtml(response.text, {})) === null || _a === void 0 ? void 0 : _a.parsed;
42
- if (!parsedWithScripts) {
43
- return;
44
- }
45
- return JSON.parse((_c = (_b = parsedWithScripts.querySelector('#__TRAMVAI_STATE__')) === null || _b === void 0 ? void 0 : _b.textContent) !== null && _c !== void 0 ? _c : 'null');
46
- },
47
- };
48
- };
49
-
50
- const requestFactory = (appOrUrl) => {
51
- let server = appOrUrl;
52
- if (typeof appOrUrl === 'object' && 'ready' in appOrUrl) {
53
- appOrUrl.ready();
54
- server = appOrUrl.server;
55
- }
56
- const request = supertest(server);
57
- return (path, { method = 'get', body, contentType, headers = {}, } = {}) => {
58
- const instance = request[method](path);
59
- if (contentType) {
60
- instance.type(contentType);
61
- }
62
- for (const header in headers) {
63
- instance.set(header, headers[header]);
64
- }
65
- if (body) {
66
- return instance.send(body);
67
- }
68
- return instance;
69
- };
70
- };
71
-
72
- const getDiWrapper = ({ providers = [], modules = [], di = createMockDi(), } = {}) => {
73
- const resolvedModules = walkOfModules(modules);
74
- resolvedModules.forEach((mod) => {
75
- const moduleParameters = getModuleParameters(mod);
76
- moduleParameters.providers.forEach((provider) => {
77
- di.register(provider);
78
- });
79
- });
80
- if (providers) {
81
- providers.forEach((provider) => di.register(provider));
82
- }
83
- return {
84
- di,
85
- /**
86
- * @description Run specific command line
87
- * @param line one of the commandLineListTokens
88
- */
89
- runLine: (line) => {
90
- const handlers = di.get({ token: line, multi: true });
91
- return Promise.all(handlers.map((handler) => handler()));
92
- },
93
- };
94
- };
95
-
96
- export { getDiWrapper, parseHtml, renderFactory, requestFactory };
1
+ export { parseHtml } from './parseHtml.es.js';
2
+ export { renderFactory } from './render.es.js';
3
+ export { requestFactory } from './request.es.js';
4
+ export { getDiWrapper } from './wrapDi.es.js';
package/lib/index.js CHANGED
@@ -2,107 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var nodeHtmlParser = require('node-html-parser');
6
- var prettier = require('prettier');
7
- var supertest = require('supertest');
8
- var core = require('@tramvai/core');
9
- var testMocks = require('@tramvai/test-mocks');
5
+ var parseHtml = require('./parseHtml.js');
6
+ var render = require('./render.js');
7
+ var request = require('./request.js');
8
+ var wrapDi = require('./wrapDi.js');
10
9
 
11
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
12
10
 
13
- var prettier__default = /*#__PURE__*/_interopDefaultLegacy(prettier);
14
- var supertest__default = /*#__PURE__*/_interopDefaultLegacy(supertest);
15
11
 
16
- const parseHtml = (html, parserOptions = {
17
- blockTextElements: { script: false, style: false },
18
- }) => {
19
- var _a, _b, _c;
20
- if (!html) {
21
- return null;
22
- }
23
- const prettyHtml = prettier__default["default"].format(html, { parser: 'html', printWidth: 120 });
24
- const parsed = nodeHtmlParser.parse(prettyHtml, parserOptions);
25
- return {
26
- parsed,
27
- body: (_a = parsed.querySelector('body')) === null || _a === void 0 ? void 0 : _a.innerHTML,
28
- head: (_b = parsed.querySelector('head')) === null || _b === void 0 ? void 0 : _b.innerHTML,
29
- application: (_c = parsed.querySelector('.application')) === null || _c === void 0 ? void 0 : _c.innerHTML,
30
- };
31
- };
32
-
33
- const renderFactory = (request, { replaceDynamicStrings = {}, } = {}) => async (path, { method = 'get', parserOptions, } = {}) => {
34
- const response = await request(path, { method });
35
- let { text } = response;
36
- for (const key in replaceDynamicStrings) {
37
- text = text.replace(new RegExp(key, 'g'), replaceDynamicStrings[key]);
38
- }
39
- const parsed = parseHtml(text, parserOptions);
40
- if (!parsed) {
41
- throw new Error(`Cannot parse response
42
- got response:
43
- status: ${response.statusCode}
44
- content: ${response.text}`);
45
- }
46
- return {
47
- ...parsed,
48
- get initialState() {
49
- var _a, _b, _c;
50
- const parsedWithScripts = (_a = parseHtml(response.text, {})) === null || _a === void 0 ? void 0 : _a.parsed;
51
- if (!parsedWithScripts) {
52
- return;
53
- }
54
- return JSON.parse((_c = (_b = parsedWithScripts.querySelector('#__TRAMVAI_STATE__')) === null || _b === void 0 ? void 0 : _b.textContent) !== null && _c !== void 0 ? _c : 'null');
55
- },
56
- };
57
- };
58
-
59
- const requestFactory = (appOrUrl) => {
60
- let server = appOrUrl;
61
- if (typeof appOrUrl === 'object' && 'ready' in appOrUrl) {
62
- appOrUrl.ready();
63
- server = appOrUrl.server;
64
- }
65
- const request = supertest__default["default"](server);
66
- return (path, { method = 'get', body, contentType, headers = {}, } = {}) => {
67
- const instance = request[method](path);
68
- if (contentType) {
69
- instance.type(contentType);
70
- }
71
- for (const header in headers) {
72
- instance.set(header, headers[header]);
73
- }
74
- if (body) {
75
- return instance.send(body);
76
- }
77
- return instance;
78
- };
79
- };
80
-
81
- const getDiWrapper = ({ providers = [], modules = [], di = testMocks.createMockDi(), } = {}) => {
82
- const resolvedModules = core.walkOfModules(modules);
83
- resolvedModules.forEach((mod) => {
84
- const moduleParameters = core.getModuleParameters(mod);
85
- moduleParameters.providers.forEach((provider) => {
86
- di.register(provider);
87
- });
88
- });
89
- if (providers) {
90
- providers.forEach((provider) => di.register(provider));
91
- }
92
- return {
93
- di,
94
- /**
95
- * @description Run specific command line
96
- * @param line one of the commandLineListTokens
97
- */
98
- runLine: (line) => {
99
- const handlers = di.get({ token: line, multi: true });
100
- return Promise.all(handlers.map((handler) => handler()));
101
- },
102
- };
103
- };
104
-
105
- exports.getDiWrapper = getDiWrapper;
106
- exports.parseHtml = parseHtml;
107
- exports.renderFactory = renderFactory;
108
- exports.requestFactory = requestFactory;
12
+ exports.parseHtml = parseHtml.parseHtml;
13
+ exports.renderFactory = render.renderFactory;
14
+ exports.requestFactory = request.requestFactory;
15
+ exports.getDiWrapper = wrapDi.getDiWrapper;
@@ -0,0 +1,21 @@
1
+ import { parse } from 'node-html-parser';
2
+ import prettier from 'prettier';
3
+
4
+ const parseHtml = (html, parserOptions = {
5
+ blockTextElements: { script: false, style: false },
6
+ }) => {
7
+ var _a, _b, _c;
8
+ if (!html) {
9
+ return null;
10
+ }
11
+ const prettyHtml = prettier.format(html, { parser: 'html', printWidth: 120 });
12
+ const parsed = parse(prettyHtml, parserOptions);
13
+ return {
14
+ parsed,
15
+ body: (_a = parsed.querySelector('body')) === null || _a === void 0 ? void 0 : _a.innerHTML,
16
+ head: (_b = parsed.querySelector('head')) === null || _b === void 0 ? void 0 : _b.innerHTML,
17
+ application: (_c = parsed.querySelector('.application')) === null || _c === void 0 ? void 0 : _c.innerHTML,
18
+ };
19
+ };
20
+
21
+ export { parseHtml };
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var nodeHtmlParser = require('node-html-parser');
6
+ var prettier = require('prettier');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var prettier__default = /*#__PURE__*/_interopDefaultLegacy(prettier);
11
+
12
+ const parseHtml = (html, parserOptions = {
13
+ blockTextElements: { script: false, style: false },
14
+ }) => {
15
+ var _a, _b, _c;
16
+ if (!html) {
17
+ return null;
18
+ }
19
+ const prettyHtml = prettier__default["default"].format(html, { parser: 'html', printWidth: 120 });
20
+ const parsed = nodeHtmlParser.parse(prettyHtml, parserOptions);
21
+ return {
22
+ parsed,
23
+ body: (_a = parsed.querySelector('body')) === null || _a === void 0 ? void 0 : _a.innerHTML,
24
+ head: (_b = parsed.querySelector('head')) === null || _b === void 0 ? void 0 : _b.innerHTML,
25
+ application: (_c = parsed.querySelector('.application')) === null || _c === void 0 ? void 0 : _c.innerHTML,
26
+ };
27
+ };
28
+
29
+ exports.parseHtml = parseHtml;
@@ -0,0 +1,29 @@
1
+ import { parseHtml } from './parseHtml.es.js';
2
+
3
+ const renderFactory = (request, { replaceDynamicStrings = {}, } = {}) => async (path, { method = 'get', parserOptions, } = {}) => {
4
+ const response = await request(path, { method });
5
+ let { text } = response;
6
+ for (const key in replaceDynamicStrings) {
7
+ text = text.replace(new RegExp(key, 'g'), replaceDynamicStrings[key]);
8
+ }
9
+ const parsed = parseHtml(text, parserOptions);
10
+ if (!parsed) {
11
+ throw new Error(`Cannot parse response
12
+ got response:
13
+ status: ${response.statusCode}
14
+ content: ${response.text}`);
15
+ }
16
+ return {
17
+ ...parsed,
18
+ get initialState() {
19
+ var _a, _b, _c;
20
+ const parsedWithScripts = (_a = parseHtml(response.text, {})) === null || _a === void 0 ? void 0 : _a.parsed;
21
+ if (!parsedWithScripts) {
22
+ return;
23
+ }
24
+ return JSON.parse((_c = (_b = parsedWithScripts.querySelector('#__TRAMVAI_STATE__')) === null || _b === void 0 ? void 0 : _b.textContent) !== null && _c !== void 0 ? _c : 'null');
25
+ },
26
+ };
27
+ };
28
+
29
+ export { renderFactory };
package/lib/render.js ADDED
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var parseHtml = require('./parseHtml.js');
6
+
7
+ const renderFactory = (request, { replaceDynamicStrings = {}, } = {}) => async (path, { method = 'get', parserOptions, } = {}) => {
8
+ const response = await request(path, { method });
9
+ let { text } = response;
10
+ for (const key in replaceDynamicStrings) {
11
+ text = text.replace(new RegExp(key, 'g'), replaceDynamicStrings[key]);
12
+ }
13
+ const parsed = parseHtml.parseHtml(text, parserOptions);
14
+ if (!parsed) {
15
+ throw new Error(`Cannot parse response
16
+ got response:
17
+ status: ${response.statusCode}
18
+ content: ${response.text}`);
19
+ }
20
+ return {
21
+ ...parsed,
22
+ get initialState() {
23
+ var _a, _b, _c;
24
+ const parsedWithScripts = (_a = parseHtml.parseHtml(response.text, {})) === null || _a === void 0 ? void 0 : _a.parsed;
25
+ if (!parsedWithScripts) {
26
+ return;
27
+ }
28
+ return JSON.parse((_c = (_b = parsedWithScripts.querySelector('#__TRAMVAI_STATE__')) === null || _b === void 0 ? void 0 : _b.textContent) !== null && _c !== void 0 ? _c : 'null');
29
+ },
30
+ };
31
+ };
32
+
33
+ exports.renderFactory = renderFactory;
@@ -0,0 +1,25 @@
1
+ import supertest from 'supertest';
2
+
3
+ const requestFactory = (appOrUrl) => {
4
+ let server = appOrUrl;
5
+ if (typeof appOrUrl === 'object' && 'ready' in appOrUrl) {
6
+ appOrUrl.ready();
7
+ server = appOrUrl.server;
8
+ }
9
+ const request = supertest(server);
10
+ return (path, { method = 'get', body, contentType, headers = {}, } = {}) => {
11
+ const instance = request[method](path);
12
+ if (contentType) {
13
+ instance.type(contentType);
14
+ }
15
+ for (const header in headers) {
16
+ instance.set(header, headers[header]);
17
+ }
18
+ if (body) {
19
+ return instance.send(body);
20
+ }
21
+ return instance;
22
+ };
23
+ };
24
+
25
+ export { requestFactory };
package/lib/request.js ADDED
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var supertest = require('supertest');
6
+
7
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
+
9
+ var supertest__default = /*#__PURE__*/_interopDefaultLegacy(supertest);
10
+
11
+ const requestFactory = (appOrUrl) => {
12
+ let server = appOrUrl;
13
+ if (typeof appOrUrl === 'object' && 'ready' in appOrUrl) {
14
+ appOrUrl.ready();
15
+ server = appOrUrl.server;
16
+ }
17
+ const request = supertest__default["default"](server);
18
+ return (path, { method = 'get', body, contentType, headers = {}, } = {}) => {
19
+ const instance = request[method](path);
20
+ if (contentType) {
21
+ instance.type(contentType);
22
+ }
23
+ for (const header in headers) {
24
+ instance.set(header, headers[header]);
25
+ }
26
+ if (body) {
27
+ return instance.send(body);
28
+ }
29
+ return instance;
30
+ };
31
+ };
32
+
33
+ exports.requestFactory = requestFactory;
@@ -0,0 +1,28 @@
1
+ import { walkOfModules, getModuleParameters } from '@tramvai/core';
2
+ import { createMockDi } from '@tramvai/test-mocks';
3
+
4
+ const getDiWrapper = ({ providers = [], modules = [], di = createMockDi(), } = {}) => {
5
+ const resolvedModules = walkOfModules(modules);
6
+ resolvedModules.forEach((mod) => {
7
+ const moduleParameters = getModuleParameters(mod);
8
+ moduleParameters.providers.forEach((provider) => {
9
+ di.register(provider);
10
+ });
11
+ });
12
+ if (providers) {
13
+ providers.forEach((provider) => di.register(provider));
14
+ }
15
+ return {
16
+ di,
17
+ /**
18
+ * @description Run specific command line
19
+ * @param line one of the commandLineListTokens
20
+ */
21
+ runLine: (line) => {
22
+ const handlers = di.get({ token: line, multi: true });
23
+ return Promise.all(handlers.map((handler) => handler()));
24
+ },
25
+ };
26
+ };
27
+
28
+ export { getDiWrapper };
package/lib/wrapDi.js ADDED
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@tramvai/core');
6
+ var testMocks = require('@tramvai/test-mocks');
7
+
8
+ const getDiWrapper = ({ providers = [], modules = [], di = testMocks.createMockDi(), } = {}) => {
9
+ const resolvedModules = core.walkOfModules(modules);
10
+ resolvedModules.forEach((mod) => {
11
+ const moduleParameters = core.getModuleParameters(mod);
12
+ moduleParameters.providers.forEach((provider) => {
13
+ di.register(provider);
14
+ });
15
+ });
16
+ if (providers) {
17
+ providers.forEach((provider) => di.register(provider));
18
+ }
19
+ return {
20
+ di,
21
+ /**
22
+ * @description Run specific command line
23
+ * @param line one of the commandLineListTokens
24
+ */
25
+ runLine: (line) => {
26
+ const handlers = di.get({ token: line, multi: true });
27
+ return Promise.all(handlers.map((handler) => handler()));
28
+ },
29
+ };
30
+ };
31
+
32
+ exports.getDiWrapper = getDiWrapper;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/test-helpers",
3
- "version": "2.70.1",
3
+ "version": "2.72.0",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
@@ -13,13 +13,12 @@
13
13
  "url": "git@github.com:Tinkoff/tramvai.git"
14
14
  },
15
15
  "scripts": {
16
- "build": "tramvai-build --for-publish",
17
- "watch": "tsc -w",
18
- "build-for-publish": "true"
16
+ "build": "tramvai-build --forPublish --preserveModules",
17
+ "watch": "tsc -w"
19
18
  },
20
19
  "dependencies": {
21
- "@tramvai/core": "2.70.1",
22
- "@tramvai/test-mocks": "2.70.1",
20
+ "@tramvai/core": "2.72.0",
21
+ "@tramvai/test-mocks": "2.72.0",
23
22
  "@types/express": "^4.17.1",
24
23
  "@types/supertest": "^2.0.11",
25
24
  "fastify": "^4.6.0",
@@ -28,7 +27,7 @@
28
27
  "supertest": "^6.1.3"
29
28
  },
30
29
  "peerDependencies": {
31
- "@tinkoff/dippy": "0.8.12",
30
+ "@tinkoff/dippy": "0.8.13",
32
31
  "tslib": "^2.4.0"
33
32
  },
34
33
  "devDependencies": {},