@tramvai/test-unit 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.
@@ -0,0 +1,81 @@
1
+ import { __decorate } from 'tslib';
2
+ import mapObj from '@tinkoff/utils/object/map';
3
+ import values from '@tinkoff/utils/object/values';
4
+ import { Module, MODULE_PARAMETERS, createApp } from '@tramvai/core';
5
+ import { ENV_USED_TOKEN, CommonModule } from '@tramvai/module-common';
6
+ import { SpaRouterModule } from '@tramvai/module-router';
7
+ import { RenderModule } from '@tramvai/module-render';
8
+ import { ServerModule, SERVER_TOKEN } from '@tramvai/module-server';
9
+ import { LogModule } from '@tramvai/module-log';
10
+ import { MockerModule, MOCKER } from '@tramvai/module-mocker';
11
+ import { MetricsModule as MetricsModule$1 } from '@tramvai/module-metrics';
12
+
13
+ // create fake metrics module as we don't need it in tests
14
+ // but it causes some compatibility tests
15
+ let MetricsModule = class MetricsModule {
16
+ };
17
+ MetricsModule = __decorate([
18
+ Module({
19
+ providers: [],
20
+ })
21
+ ], MetricsModule);
22
+ // @ts-ignore
23
+ MetricsModule[MODULE_PARAMETERS].id = MetricsModule$1[MODULE_PARAMETERS].id;
24
+ /**
25
+ * Creates basic tramvai app for testing based on passed options
26
+ * By default next modules are added to app as they necessary for working app:
27
+ * - @tramvai/module-common
28
+ * - @tramvai/module-log
29
+ * - @tramvai/module-server
30
+ * - @tramvai/module-render
31
+ * - @tramvai/module-router
32
+ * @param. - options passed to createApp
33
+ * @param.env - environment variables
34
+ * @param.excludeDefaultModules - disable adding default modules
35
+ */
36
+ const createTestApp = async ({ name = 'testApp', bundles = {}, providers = [], modules = [], actions = [], env = {}, excludeDefaultModules = false, } = {}) => {
37
+ const app = await createApp({
38
+ name,
39
+ bundles,
40
+ providers: [
41
+ ...providers,
42
+ {
43
+ provide: ENV_USED_TOKEN,
44
+ multi: true,
45
+ useValue: [
46
+ { key: 'FRONT_LOG_API', value: 'test' },
47
+ { key: 'MOCKER_ENABLED', value: true },
48
+ ],
49
+ },
50
+ {
51
+ provide: ENV_USED_TOKEN,
52
+ multi: true,
53
+ useValue: values(mapObj((value, key) => {
54
+ return { key, value };
55
+ }, env)),
56
+ },
57
+ ],
58
+ modules: excludeDefaultModules
59
+ ? modules
60
+ : [
61
+ MetricsModule,
62
+ CommonModule,
63
+ LogModule,
64
+ SpaRouterModule,
65
+ RenderModule,
66
+ ServerModule,
67
+ MockerModule,
68
+ ...modules,
69
+ ],
70
+ actions,
71
+ });
72
+ return {
73
+ app,
74
+ mocker: app.di.get({ token: MOCKER, optional: true }),
75
+ close: () => {
76
+ return app.di.get(SERVER_TOKEN).close();
77
+ },
78
+ };
79
+ };
80
+
81
+ export { createTestApp };
@@ -0,0 +1,90 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var tslib = require('tslib');
6
+ var mapObj = require('@tinkoff/utils/object/map');
7
+ var values = require('@tinkoff/utils/object/values');
8
+ var core = require('@tramvai/core');
9
+ var moduleCommon = require('@tramvai/module-common');
10
+ var moduleRouter = require('@tramvai/module-router');
11
+ var moduleRender = require('@tramvai/module-render');
12
+ var moduleServer = require('@tramvai/module-server');
13
+ var moduleLog = require('@tramvai/module-log');
14
+ var moduleMocker = require('@tramvai/module-mocker');
15
+ var moduleMetrics = require('@tramvai/module-metrics');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var mapObj__default = /*#__PURE__*/_interopDefaultLegacy(mapObj);
20
+ var values__default = /*#__PURE__*/_interopDefaultLegacy(values);
21
+
22
+ // create fake metrics module as we don't need it in tests
23
+ // but it causes some compatibility tests
24
+ let MetricsModule = class MetricsModule {
25
+ };
26
+ MetricsModule = tslib.__decorate([
27
+ core.Module({
28
+ providers: [],
29
+ })
30
+ ], MetricsModule);
31
+ // @ts-ignore
32
+ MetricsModule[core.MODULE_PARAMETERS].id = moduleMetrics.MetricsModule[core.MODULE_PARAMETERS].id;
33
+ /**
34
+ * Creates basic tramvai app for testing based on passed options
35
+ * By default next modules are added to app as they necessary for working app:
36
+ * - @tramvai/module-common
37
+ * - @tramvai/module-log
38
+ * - @tramvai/module-server
39
+ * - @tramvai/module-render
40
+ * - @tramvai/module-router
41
+ * @param. - options passed to createApp
42
+ * @param.env - environment variables
43
+ * @param.excludeDefaultModules - disable adding default modules
44
+ */
45
+ const createTestApp = async ({ name = 'testApp', bundles = {}, providers = [], modules = [], actions = [], env = {}, excludeDefaultModules = false, } = {}) => {
46
+ const app = await core.createApp({
47
+ name,
48
+ bundles,
49
+ providers: [
50
+ ...providers,
51
+ {
52
+ provide: moduleCommon.ENV_USED_TOKEN,
53
+ multi: true,
54
+ useValue: [
55
+ { key: 'FRONT_LOG_API', value: 'test' },
56
+ { key: 'MOCKER_ENABLED', value: true },
57
+ ],
58
+ },
59
+ {
60
+ provide: moduleCommon.ENV_USED_TOKEN,
61
+ multi: true,
62
+ useValue: values__default["default"](mapObj__default["default"]((value, key) => {
63
+ return { key, value };
64
+ }, env)),
65
+ },
66
+ ],
67
+ modules: excludeDefaultModules
68
+ ? modules
69
+ : [
70
+ MetricsModule,
71
+ moduleCommon.CommonModule,
72
+ moduleLog.LogModule,
73
+ moduleRouter.SpaRouterModule,
74
+ moduleRender.RenderModule,
75
+ moduleServer.ServerModule,
76
+ moduleMocker.MockerModule,
77
+ ...modules,
78
+ ],
79
+ actions,
80
+ });
81
+ return {
82
+ app,
83
+ mocker: app.di.get({ token: moduleMocker.MOCKER, optional: true }),
84
+ close: () => {
85
+ return app.di.get(moduleServer.SERVER_TOKEN).close();
86
+ },
87
+ };
88
+ };
89
+
90
+ exports.createTestApp = createTestApp;
@@ -0,0 +1,31 @@
1
+ import { getModuleParameters } from '@tramvai/core';
2
+ import { SERVER_TOKEN } from '@tramvai/tokens-server';
3
+ import { WEB_FASTIFY_APP_TOKEN } from '@tramvai/tokens-server-private';
4
+ import { MockerModule, MOCKER } from '@tramvai/module-mocker';
5
+ import { requestFactory, renderFactory } from '@tramvai/test-helpers';
6
+
7
+ /**
8
+ * Позволяет протестировать уже созданное через createApp приложение
9
+ * @param appOrAppPromise результат вызова createApp
10
+ * @deprecated используйте `startCli` метод из пакета `@tramvai/test-integration` для полноценного тестирования приложения
11
+ */
12
+ const testApp = async (appOrAppPromise) => {
13
+ const app = await appOrAppPromise;
14
+ const request = requestFactory(app.di.get(WEB_FASTIFY_APP_TOKEN));
15
+ const mockerModule = getModuleParameters(MockerModule);
16
+ mockerModule.providers.forEach((provider) => {
17
+ app.di.register(provider);
18
+ });
19
+ const render = renderFactory(request);
20
+ return {
21
+ app,
22
+ request,
23
+ render,
24
+ mocker: app.di.get({ token: MOCKER, optional: true }),
25
+ close: () => {
26
+ return app.di.get(SERVER_TOKEN).close();
27
+ },
28
+ };
29
+ };
30
+
31
+ export { testApp };
@@ -0,0 +1,35 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@tramvai/core');
6
+ var tokensServer = require('@tramvai/tokens-server');
7
+ var tokensServerPrivate = require('@tramvai/tokens-server-private');
8
+ var moduleMocker = require('@tramvai/module-mocker');
9
+ var testHelpers = require('@tramvai/test-helpers');
10
+
11
+ /**
12
+ * Позволяет протестировать уже созданное через createApp приложение
13
+ * @param appOrAppPromise результат вызова createApp
14
+ * @deprecated используйте `startCli` метод из пакета `@tramvai/test-integration` для полноценного тестирования приложения
15
+ */
16
+ const testApp = async (appOrAppPromise) => {
17
+ const app = await appOrAppPromise;
18
+ const request = testHelpers.requestFactory(app.di.get(tokensServerPrivate.WEB_FASTIFY_APP_TOKEN));
19
+ const mockerModule = core.getModuleParameters(moduleMocker.MockerModule);
20
+ mockerModule.providers.forEach((provider) => {
21
+ app.di.register(provider);
22
+ });
23
+ const render = testHelpers.renderFactory(request);
24
+ return {
25
+ app,
26
+ request,
27
+ render,
28
+ mocker: app.di.get({ token: moduleMocker.MOCKER, optional: true }),
29
+ close: () => {
30
+ return app.di.get(tokensServer.SERVER_TOKEN).close();
31
+ },
32
+ };
33
+ };
34
+
35
+ exports.testApp = testApp;
package/lib/index.es.js CHANGED
@@ -1,154 +1,5 @@
1
- import { createMockContext } from '@tramvai/test-mocks';
2
- import { createDispatcher } from '@tramvai/state';
3
- import { getModuleParameters, isExtendedModule, Module, MODULE_PARAMETERS, createApp } from '@tramvai/core';
4
- import { getDiWrapper, requestFactory, renderFactory } from '@tramvai/test-helpers';
5
- import { __decorate } from 'tslib';
6
- import mapObj from '@tinkoff/utils/object/map';
7
- import values from '@tinkoff/utils/object/values';
8
- import { ENV_USED_TOKEN, CommonModule } from '@tramvai/module-common';
9
- import { SpaRouterModule } from '@tramvai/module-router';
10
- import { RenderModule } from '@tramvai/module-render';
11
- import { ServerModule, SERVER_TOKEN } from '@tramvai/module-server';
12
- import { LogModule } from '@tramvai/module-log';
13
- import { MockerModule, MOCKER } from '@tramvai/module-mocker';
14
- import { MetricsModule as MetricsModule$1 } from '@tramvai/module-metrics';
15
- import { SERVER_TOKEN as SERVER_TOKEN$1 } from '@tramvai/tokens-server';
16
- import { WEB_FASTIFY_APP_TOKEN } from '@tramvai/tokens-server-private';
17
-
18
- function testAction(action, { initialState, providers, modules, di, store, stores, context = createMockContext({ initialState, di, providers, modules, store, stores }), } = {}) {
19
- return {
20
- /**
21
- * @description
22
- * Run action
23
- * @param payload
24
- * @returns
25
- */
26
- run: (payload) => {
27
- return context.executeAction(action, payload);
28
- },
29
- context,
30
- };
31
- }
32
-
33
- /**
34
- * Helper for testing Reducer
35
- * @param reducer
36
- */
37
- const testReducer = (reducer) => {
38
- const dispatcherContext = createDispatcher({ stores: [reducer] }).createContext(null, {});
39
- return {
40
- dispatch: dispatcherContext.dispatch.bind(dispatcherContext),
41
- getState: () => dispatcherContext.getState(reducer),
42
- };
43
- };
44
-
45
- /**
46
- * Helper for testing tramvai module
47
- * @param Module module itself
48
- * @param params parameters for helper createMockDi or instance of DI-container
49
- * @param modules additional modules required for test module
50
- */
51
- const testModule = (Module, { modules = [], providers, di } = {}) => {
52
- const wrappedDi = getDiWrapper({ providers, modules: [...modules, Module], di });
53
- const { deps } = getModuleParameters(Module);
54
- const ModuleConstructor = isExtendedModule(Module) ? Module.mainModule : Module;
55
- const module = new ModuleConstructor(deps ? wrappedDi.di.getOfDeps(deps) : undefined);
56
- return {
57
- ...wrappedDi,
58
- module,
59
- };
60
- };
61
-
62
- // create fake metrics module as we don't need it in tests
63
- // but it causes some compatibility tests
64
- let MetricsModule = class MetricsModule {
65
- };
66
- MetricsModule = __decorate([
67
- Module({
68
- providers: [],
69
- })
70
- ], MetricsModule);
71
- // @ts-ignore
72
- MetricsModule[MODULE_PARAMETERS].id = MetricsModule$1[MODULE_PARAMETERS].id;
73
- /**
74
- * Creates basic tramvai app for testing based on passed options
75
- * By default next modules are added to app as they necessary for working app:
76
- * - @tramvai/module-common
77
- * - @tramvai/module-log
78
- * - @tramvai/module-server
79
- * - @tramvai/module-render
80
- * - @tramvai/module-router
81
- * @param. - options passed to createApp
82
- * @param.env - environment variables
83
- * @param.excludeDefaultModules - disable adding default modules
84
- */
85
- const createTestApp = async ({ name = 'testApp', bundles = {}, providers = [], modules = [], actions = [], env = {}, excludeDefaultModules = false, } = {}) => {
86
- const app = await createApp({
87
- name,
88
- bundles,
89
- providers: [
90
- ...providers,
91
- {
92
- provide: ENV_USED_TOKEN,
93
- multi: true,
94
- useValue: [
95
- { key: 'FRONT_LOG_API', value: 'test' },
96
- { key: 'MOCKER_ENABLED', value: true },
97
- ],
98
- },
99
- {
100
- provide: ENV_USED_TOKEN,
101
- multi: true,
102
- useValue: values(mapObj((value, key) => {
103
- return { key, value };
104
- }, env)),
105
- },
106
- ],
107
- modules: excludeDefaultModules
108
- ? modules
109
- : [
110
- MetricsModule,
111
- CommonModule,
112
- LogModule,
113
- SpaRouterModule,
114
- RenderModule,
115
- ServerModule,
116
- MockerModule,
117
- ...modules,
118
- ],
119
- actions,
120
- });
121
- return {
122
- app,
123
- mocker: app.di.get({ token: MOCKER, optional: true }),
124
- close: () => {
125
- return app.di.get(SERVER_TOKEN).close();
126
- },
127
- };
128
- };
129
-
130
- /**
131
- * Позволяет протестировать уже созданное через createApp приложение
132
- * @param appOrAppPromise результат вызова createApp
133
- * @deprecated используйте `startCli` метод из пакета `@tramvai/test-integration` для полноценного тестирования приложения
134
- */
135
- const testApp = async (appOrAppPromise) => {
136
- const app = await appOrAppPromise;
137
- const request = requestFactory(app.di.get(WEB_FASTIFY_APP_TOKEN));
138
- const mockerModule = getModuleParameters(MockerModule);
139
- mockerModule.providers.forEach((provider) => {
140
- app.di.register(provider);
141
- });
142
- const render = renderFactory(request);
143
- return {
144
- app,
145
- request,
146
- render,
147
- mocker: app.di.get({ token: MOCKER, optional: true }),
148
- close: () => {
149
- return app.di.get(SERVER_TOKEN$1).close();
150
- },
151
- };
152
- };
153
-
154
- export { createTestApp, testAction, testApp, testModule, testReducer };
1
+ export { testAction } from './state/testAction.es.js';
2
+ export { testReducer } from './state/testReducer.es.js';
3
+ export { testModule } from './module/testModule.es.js';
4
+ export { createTestApp } from './app/createTestApp.es.js';
5
+ export { testApp } from './app/testApp.es.js';
package/lib/index.js CHANGED
@@ -2,166 +2,16 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var testMocks = require('@tramvai/test-mocks');
6
- var state = require('@tramvai/state');
7
- var core = require('@tramvai/core');
8
- var testHelpers = require('@tramvai/test-helpers');
9
- var tslib = require('tslib');
10
- var mapObj = require('@tinkoff/utils/object/map');
11
- var values = require('@tinkoff/utils/object/values');
12
- var moduleCommon = require('@tramvai/module-common');
13
- var moduleRouter = require('@tramvai/module-router');
14
- var moduleRender = require('@tramvai/module-render');
15
- var moduleServer = require('@tramvai/module-server');
16
- var moduleLog = require('@tramvai/module-log');
17
- var moduleMocker = require('@tramvai/module-mocker');
18
- var moduleMetrics = require('@tramvai/module-metrics');
19
- var tokensServer = require('@tramvai/tokens-server');
20
- var tokensServerPrivate = require('@tramvai/tokens-server-private');
5
+ var testAction = require('./state/testAction.js');
6
+ var testReducer = require('./state/testReducer.js');
7
+ var testModule = require('./module/testModule.js');
8
+ var createTestApp = require('./app/createTestApp.js');
9
+ var testApp = require('./app/testApp.js');
21
10
 
22
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
23
11
 
24
- var mapObj__default = /*#__PURE__*/_interopDefaultLegacy(mapObj);
25
- var values__default = /*#__PURE__*/_interopDefaultLegacy(values);
26
12
 
27
- function testAction(action, { initialState, providers, modules, di, store, stores, context = testMocks.createMockContext({ initialState, di, providers, modules, store, stores }), } = {}) {
28
- return {
29
- /**
30
- * @description
31
- * Run action
32
- * @param payload
33
- * @returns
34
- */
35
- run: (payload) => {
36
- return context.executeAction(action, payload);
37
- },
38
- context,
39
- };
40
- }
41
-
42
- /**
43
- * Helper for testing Reducer
44
- * @param reducer
45
- */
46
- const testReducer = (reducer) => {
47
- const dispatcherContext = state.createDispatcher({ stores: [reducer] }).createContext(null, {});
48
- return {
49
- dispatch: dispatcherContext.dispatch.bind(dispatcherContext),
50
- getState: () => dispatcherContext.getState(reducer),
51
- };
52
- };
53
-
54
- /**
55
- * Helper for testing tramvai module
56
- * @param Module module itself
57
- * @param params parameters for helper createMockDi or instance of DI-container
58
- * @param modules additional modules required for test module
59
- */
60
- const testModule = (Module, { modules = [], providers, di } = {}) => {
61
- const wrappedDi = testHelpers.getDiWrapper({ providers, modules: [...modules, Module], di });
62
- const { deps } = core.getModuleParameters(Module);
63
- const ModuleConstructor = core.isExtendedModule(Module) ? Module.mainModule : Module;
64
- const module = new ModuleConstructor(deps ? wrappedDi.di.getOfDeps(deps) : undefined);
65
- return {
66
- ...wrappedDi,
67
- module,
68
- };
69
- };
70
-
71
- // create fake metrics module as we don't need it in tests
72
- // but it causes some compatibility tests
73
- let MetricsModule = class MetricsModule {
74
- };
75
- MetricsModule = tslib.__decorate([
76
- core.Module({
77
- providers: [],
78
- })
79
- ], MetricsModule);
80
- // @ts-ignore
81
- MetricsModule[core.MODULE_PARAMETERS].id = moduleMetrics.MetricsModule[core.MODULE_PARAMETERS].id;
82
- /**
83
- * Creates basic tramvai app for testing based on passed options
84
- * By default next modules are added to app as they necessary for working app:
85
- * - @tramvai/module-common
86
- * - @tramvai/module-log
87
- * - @tramvai/module-server
88
- * - @tramvai/module-render
89
- * - @tramvai/module-router
90
- * @param. - options passed to createApp
91
- * @param.env - environment variables
92
- * @param.excludeDefaultModules - disable adding default modules
93
- */
94
- const createTestApp = async ({ name = 'testApp', bundles = {}, providers = [], modules = [], actions = [], env = {}, excludeDefaultModules = false, } = {}) => {
95
- const app = await core.createApp({
96
- name,
97
- bundles,
98
- providers: [
99
- ...providers,
100
- {
101
- provide: moduleCommon.ENV_USED_TOKEN,
102
- multi: true,
103
- useValue: [
104
- { key: 'FRONT_LOG_API', value: 'test' },
105
- { key: 'MOCKER_ENABLED', value: true },
106
- ],
107
- },
108
- {
109
- provide: moduleCommon.ENV_USED_TOKEN,
110
- multi: true,
111
- useValue: values__default["default"](mapObj__default["default"]((value, key) => {
112
- return { key, value };
113
- }, env)),
114
- },
115
- ],
116
- modules: excludeDefaultModules
117
- ? modules
118
- : [
119
- MetricsModule,
120
- moduleCommon.CommonModule,
121
- moduleLog.LogModule,
122
- moduleRouter.SpaRouterModule,
123
- moduleRender.RenderModule,
124
- moduleServer.ServerModule,
125
- moduleMocker.MockerModule,
126
- ...modules,
127
- ],
128
- actions,
129
- });
130
- return {
131
- app,
132
- mocker: app.di.get({ token: moduleMocker.MOCKER, optional: true }),
133
- close: () => {
134
- return app.di.get(moduleServer.SERVER_TOKEN).close();
135
- },
136
- };
137
- };
138
-
139
- /**
140
- * Позволяет протестировать уже созданное через createApp приложение
141
- * @param appOrAppPromise результат вызова createApp
142
- * @deprecated используйте `startCli` метод из пакета `@tramvai/test-integration` для полноценного тестирования приложения
143
- */
144
- const testApp = async (appOrAppPromise) => {
145
- const app = await appOrAppPromise;
146
- const request = testHelpers.requestFactory(app.di.get(tokensServerPrivate.WEB_FASTIFY_APP_TOKEN));
147
- const mockerModule = core.getModuleParameters(moduleMocker.MockerModule);
148
- mockerModule.providers.forEach((provider) => {
149
- app.di.register(provider);
150
- });
151
- const render = testHelpers.renderFactory(request);
152
- return {
153
- app,
154
- request,
155
- render,
156
- mocker: app.di.get({ token: moduleMocker.MOCKER, optional: true }),
157
- close: () => {
158
- return app.di.get(tokensServer.SERVER_TOKEN).close();
159
- },
160
- };
161
- };
162
-
163
- exports.createTestApp = createTestApp;
164
- exports.testAction = testAction;
165
- exports.testApp = testApp;
166
- exports.testModule = testModule;
167
- exports.testReducer = testReducer;
13
+ exports.testAction = testAction.testAction;
14
+ exports.testReducer = testReducer.testReducer;
15
+ exports.testModule = testModule.testModule;
16
+ exports.createTestApp = createTestApp.createTestApp;
17
+ exports.testApp = testApp.testApp;
@@ -0,0 +1,21 @@
1
+ import { getModuleParameters, isExtendedModule } from '@tramvai/core';
2
+ import { getDiWrapper } from '@tramvai/test-helpers';
3
+
4
+ /**
5
+ * Helper for testing tramvai module
6
+ * @param Module module itself
7
+ * @param params parameters for helper createMockDi or instance of DI-container
8
+ * @param modules additional modules required for test module
9
+ */
10
+ const testModule = (Module, { modules = [], providers, di } = {}) => {
11
+ const wrappedDi = getDiWrapper({ providers, modules: [...modules, Module], di });
12
+ const { deps } = getModuleParameters(Module);
13
+ const ModuleConstructor = isExtendedModule(Module) ? Module.mainModule : Module;
14
+ const module = new ModuleConstructor(deps ? wrappedDi.di.getOfDeps(deps) : undefined);
15
+ return {
16
+ ...wrappedDi,
17
+ module,
18
+ };
19
+ };
20
+
21
+ export { testModule };
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@tramvai/core');
6
+ var testHelpers = require('@tramvai/test-helpers');
7
+
8
+ /**
9
+ * Helper for testing tramvai module
10
+ * @param Module module itself
11
+ * @param params parameters for helper createMockDi or instance of DI-container
12
+ * @param modules additional modules required for test module
13
+ */
14
+ const testModule = (Module, { modules = [], providers, di } = {}) => {
15
+ const wrappedDi = testHelpers.getDiWrapper({ providers, modules: [...modules, Module], di });
16
+ const { deps } = core.getModuleParameters(Module);
17
+ const ModuleConstructor = core.isExtendedModule(Module) ? Module.mainModule : Module;
18
+ const module = new ModuleConstructor(deps ? wrappedDi.di.getOfDeps(deps) : undefined);
19
+ return {
20
+ ...wrappedDi,
21
+ module,
22
+ };
23
+ };
24
+
25
+ exports.testModule = testModule;
@@ -0,0 +1,18 @@
1
+ import { createMockContext } from '@tramvai/test-mocks';
2
+
3
+ function testAction(action, { initialState, providers, modules, di, store, stores, context = createMockContext({ initialState, di, providers, modules, store, stores }), } = {}) {
4
+ return {
5
+ /**
6
+ * @description
7
+ * Run action
8
+ * @param payload
9
+ * @returns
10
+ */
11
+ run: (payload) => {
12
+ return context.executeAction(action, payload);
13
+ },
14
+ context,
15
+ };
16
+ }
17
+
18
+ export { testAction };
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var testMocks = require('@tramvai/test-mocks');
6
+
7
+ function testAction(action, { initialState, providers, modules, di, store, stores, context = testMocks.createMockContext({ initialState, di, providers, modules, store, stores }), } = {}) {
8
+ return {
9
+ /**
10
+ * @description
11
+ * Run action
12
+ * @param payload
13
+ * @returns
14
+ */
15
+ run: (payload) => {
16
+ return context.executeAction(action, payload);
17
+ },
18
+ context,
19
+ };
20
+ }
21
+
22
+ exports.testAction = testAction;
@@ -0,0 +1,15 @@
1
+ import { createDispatcher } from '@tramvai/state';
2
+
3
+ /**
4
+ * Helper for testing Reducer
5
+ * @param reducer
6
+ */
7
+ const testReducer = (reducer) => {
8
+ const dispatcherContext = createDispatcher({ stores: [reducer] }).createContext(null, {});
9
+ return {
10
+ dispatch: dispatcherContext.dispatch.bind(dispatcherContext),
11
+ getState: () => dispatcherContext.getState(reducer),
12
+ };
13
+ };
14
+
15
+ export { testReducer };
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var state = require('@tramvai/state');
6
+
7
+ /**
8
+ * Helper for testing Reducer
9
+ * @param reducer
10
+ */
11
+ const testReducer = (reducer) => {
12
+ const dispatcherContext = state.createDispatcher({ stores: [reducer] }).createContext(null, {});
13
+ return {
14
+ dispatch: dispatcherContext.dispatch.bind(dispatcherContext),
15
+ getState: () => dispatcherContext.getState(reducer),
16
+ };
17
+ };
18
+
19
+ exports.testReducer = testReducer;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/test-unit",
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,26 +13,25 @@
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/cli": "2.70.1",
22
- "@tramvai/core": "2.70.1",
23
- "@tramvai/module-common": "2.70.1",
24
- "@tramvai/module-log": "2.70.1",
25
- "@tramvai/module-metrics": "2.70.1",
26
- "@tramvai/module-mocker": "2.70.1",
27
- "@tramvai/module-render": "2.70.1",
28
- "@tramvai/module-router": "2.70.1",
29
- "@tramvai/module-server": "2.70.1",
30
- "@tramvai/state": "2.70.1",
31
- "@tramvai/test-helpers": "2.70.1",
32
- "@tramvai/test-mocks": "2.70.1",
33
- "@tramvai/tokens-common": "2.70.1",
34
- "@tramvai/tokens-server": "2.70.1",
35
- "@tramvai/tokens-server-private": "2.70.1",
20
+ "@tramvai/cli": "2.72.0",
21
+ "@tramvai/core": "2.72.0",
22
+ "@tramvai/module-common": "2.72.0",
23
+ "@tramvai/module-log": "2.72.0",
24
+ "@tramvai/module-metrics": "2.72.0",
25
+ "@tramvai/module-mocker": "2.72.0",
26
+ "@tramvai/module-render": "2.72.0",
27
+ "@tramvai/module-router": "2.72.0",
28
+ "@tramvai/module-server": "2.72.0",
29
+ "@tramvai/state": "2.72.0",
30
+ "@tramvai/test-helpers": "2.72.0",
31
+ "@tramvai/test-mocks": "2.72.0",
32
+ "@tramvai/tokens-common": "2.72.0",
33
+ "@tramvai/tokens-server": "2.72.0",
34
+ "@tramvai/tokens-server-private": "2.72.0",
36
35
  "utility-types": "^3.10.0"
37
36
  },
38
37
  "peerDependencies": {