@tramvai/test-mocks 1.95.0 → 1.96.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/context.d.ts +3 -1
- package/lib/di.d.ts +4 -1
- package/lib/index.es.js +25 -4
- package/lib/index.js +24 -3
- package/package.json +6 -6
package/lib/context.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ declare type OptionsStore = Parameters<typeof createMockStore>[0];
|
|
|
7
7
|
declare type Options = OptionsDi & OptionsStore & {
|
|
8
8
|
store?: typeof STORE_TOKEN;
|
|
9
9
|
di?: Container;
|
|
10
|
+
useTramvaiActionsConditionals?: boolean;
|
|
10
11
|
};
|
|
11
12
|
/**
|
|
12
13
|
* Создаёт мок для consumerContext
|
|
@@ -16,6 +17,7 @@ declare type Options = OptionsDi & OptionsStore & {
|
|
|
16
17
|
* @param store - глобальный стор приложения, по умолчанию используется результат createMockStore
|
|
17
18
|
* @param providers - список провайдеров, которые будут переданы в createMockDi если явно не передавать di
|
|
18
19
|
* @param stores - di-контейнер, по умолчанию используется результат createMockDi
|
|
20
|
+
* @param useTramvaiActionsConditionals - добавляет встроенные в tramvai actions conditionals
|
|
19
21
|
*/
|
|
20
|
-
export declare const createMockContext: ({ stores, initialState, store, providers, di, }?: Options) => typeof CONTEXT_TOKEN;
|
|
22
|
+
export declare const createMockContext: ({ stores, initialState, store, providers, di, useTramvaiActionsConditionals, }?: Options) => typeof CONTEXT_TOKEN;
|
|
21
23
|
export {};
|
package/lib/di.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { Provider } from '@tinkoff/dippy';
|
|
2
|
+
import type { ExtendedModule, ModuleType } from '@tramvai/core';
|
|
2
3
|
interface Options {
|
|
4
|
+
modules?: Array<ModuleType | ExtendedModule>;
|
|
3
5
|
providers?: Provider[];
|
|
4
6
|
}
|
|
5
7
|
/**
|
|
6
8
|
* Создаёт di-сontainer
|
|
7
9
|
*
|
|
10
|
+
* @param modules - список модулей, провайдеры которых будут добавлены в создаваемый di-контейнер
|
|
8
11
|
* @param providers - список провайдеров, которые будут добавлены в создаваемый di-контейнер
|
|
9
12
|
*/
|
|
10
|
-
export declare const createMockDi: ({ providers }?: Options) => import("@tinkoff/dippy").Container;
|
|
13
|
+
export declare const createMockDi: ({ modules, providers }?: Options) => import("@tinkoff/dippy").Container;
|
|
11
14
|
export {};
|
package/lib/index.es.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { STORE_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, CONTEXT_TOKEN } from '@tramvai/tokens-common';
|
|
2
|
-
import { ActionExecution, createConsumerContext } from '@tramvai/module-common';
|
|
2
|
+
import { alwaysCondition, onlyServer, onlyBrowser, pageServer, pageBrowser, ActionExecution, createConsumerContext } from '@tramvai/module-common';
|
|
3
3
|
import { PubSub } from '@tinkoff/pubsub';
|
|
4
4
|
import { createContainer, DI_TOKEN } from '@tinkoff/dippy';
|
|
5
5
|
import keys from '@tinkoff/utils/object/keys';
|
|
6
6
|
import difference from '@tinkoff/utils/array/difference';
|
|
7
7
|
import { createReducer, createDispatcher } from '@tramvai/state';
|
|
8
|
+
import { walkOfModules, getModuleParameters } from '@tramvai/core';
|
|
8
9
|
import { AbstractRouter } from '@tinkoff/router';
|
|
9
10
|
import { parse } from '@tinkoff/url';
|
|
10
11
|
import noop from '@tinkoff/utils/function/noop';
|
|
@@ -39,10 +40,22 @@ const createMockStore = ({ stores = [], initialState = {}, } = {}) => {
|
|
|
39
40
|
/**
|
|
40
41
|
* Создаёт di-сontainer
|
|
41
42
|
*
|
|
43
|
+
* @param modules - список модулей, провайдеры которых будут добавлены в создаваемый di-контейнер
|
|
42
44
|
* @param providers - список провайдеров, которые будут добавлены в создаваемый di-контейнер
|
|
43
45
|
*/
|
|
44
|
-
const createMockDi = ({ providers = [] } = {}) => {
|
|
45
|
-
|
|
46
|
+
const createMockDi = ({ modules = [], providers = [] } = {}) => {
|
|
47
|
+
const di = createContainer();
|
|
48
|
+
const resolvedModules = walkOfModules(modules);
|
|
49
|
+
resolvedModules.forEach((mod) => {
|
|
50
|
+
const moduleParameters = getModuleParameters(mod);
|
|
51
|
+
moduleParameters.providers.forEach((provider) => {
|
|
52
|
+
di.register(provider);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
if (providers) {
|
|
56
|
+
providers.forEach((provider) => di.register(provider));
|
|
57
|
+
}
|
|
58
|
+
return di;
|
|
46
59
|
};
|
|
47
60
|
|
|
48
61
|
/**
|
|
@@ -53,8 +66,9 @@ const createMockDi = ({ providers = [] } = {}) => {
|
|
|
53
66
|
* @param store - глобальный стор приложения, по умолчанию используется результат createMockStore
|
|
54
67
|
* @param providers - список провайдеров, которые будут переданы в createMockDi если явно не передавать di
|
|
55
68
|
* @param stores - di-контейнер, по умолчанию используется результат createMockDi
|
|
69
|
+
* @param useTramvaiActionsConditionals - добавляет встроенные в tramvai actions conditionals
|
|
56
70
|
*/
|
|
57
|
-
const createMockContext = ({ stores, initialState, store = createMockStore({ stores, initialState }), providers, di = createMockDi({ providers }), } = {}) => {
|
|
71
|
+
const createMockContext = ({ stores, initialState, store = createMockStore({ stores, initialState }), providers, di = createMockDi({ providers }), useTramvaiActionsConditionals = false, } = {}) => {
|
|
58
72
|
const { __dispatcherContext__: dispatcherContext } = store; // хак для получения уже созданного dispatcherContext в сторе
|
|
59
73
|
const pubsub = new PubSub();
|
|
60
74
|
di.register({
|
|
@@ -62,6 +76,13 @@ const createMockContext = ({ stores, initialState, store = createMockStore({ sto
|
|
|
62
76
|
useValue: store,
|
|
63
77
|
});
|
|
64
78
|
if (!di.get({ token: ACTION_EXECUTION_TOKEN, optional: true })) {
|
|
79
|
+
if (useTramvaiActionsConditionals) {
|
|
80
|
+
di.register({
|
|
81
|
+
provide: ACTION_CONDITIONALS,
|
|
82
|
+
multi: true,
|
|
83
|
+
useValue: [alwaysCondition, onlyServer, onlyBrowser, pageServer, pageBrowser],
|
|
84
|
+
});
|
|
85
|
+
}
|
|
65
86
|
di.register({
|
|
66
87
|
provide: ACTION_EXECUTION_TOKEN,
|
|
67
88
|
useClass: ActionExecution,
|
package/lib/index.js
CHANGED
|
@@ -9,6 +9,7 @@ var dippy = require('@tinkoff/dippy');
|
|
|
9
9
|
var keys = require('@tinkoff/utils/object/keys');
|
|
10
10
|
var difference = require('@tinkoff/utils/array/difference');
|
|
11
11
|
var state = require('@tramvai/state');
|
|
12
|
+
var core = require('@tramvai/core');
|
|
12
13
|
var router = require('@tinkoff/router');
|
|
13
14
|
var url = require('@tinkoff/url');
|
|
14
15
|
var noop = require('@tinkoff/utils/function/noop');
|
|
@@ -49,10 +50,22 @@ const createMockStore = ({ stores = [], initialState = {}, } = {}) => {
|
|
|
49
50
|
/**
|
|
50
51
|
* Создаёт di-сontainer
|
|
51
52
|
*
|
|
53
|
+
* @param modules - список модулей, провайдеры которых будут добавлены в создаваемый di-контейнер
|
|
52
54
|
* @param providers - список провайдеров, которые будут добавлены в создаваемый di-контейнер
|
|
53
55
|
*/
|
|
54
|
-
const createMockDi = ({ providers = [] } = {}) => {
|
|
55
|
-
|
|
56
|
+
const createMockDi = ({ modules = [], providers = [] } = {}) => {
|
|
57
|
+
const di = dippy.createContainer();
|
|
58
|
+
const resolvedModules = core.walkOfModules(modules);
|
|
59
|
+
resolvedModules.forEach((mod) => {
|
|
60
|
+
const moduleParameters = core.getModuleParameters(mod);
|
|
61
|
+
moduleParameters.providers.forEach((provider) => {
|
|
62
|
+
di.register(provider);
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
if (providers) {
|
|
66
|
+
providers.forEach((provider) => di.register(provider));
|
|
67
|
+
}
|
|
68
|
+
return di;
|
|
56
69
|
};
|
|
57
70
|
|
|
58
71
|
/**
|
|
@@ -63,8 +76,9 @@ const createMockDi = ({ providers = [] } = {}) => {
|
|
|
63
76
|
* @param store - глобальный стор приложения, по умолчанию используется результат createMockStore
|
|
64
77
|
* @param providers - список провайдеров, которые будут переданы в createMockDi если явно не передавать di
|
|
65
78
|
* @param stores - di-контейнер, по умолчанию используется результат createMockDi
|
|
79
|
+
* @param useTramvaiActionsConditionals - добавляет встроенные в tramvai actions conditionals
|
|
66
80
|
*/
|
|
67
|
-
const createMockContext = ({ stores, initialState, store = createMockStore({ stores, initialState }), providers, di = createMockDi({ providers }), } = {}) => {
|
|
81
|
+
const createMockContext = ({ stores, initialState, store = createMockStore({ stores, initialState }), providers, di = createMockDi({ providers }), useTramvaiActionsConditionals = false, } = {}) => {
|
|
68
82
|
const { __dispatcherContext__: dispatcherContext } = store; // хак для получения уже созданного dispatcherContext в сторе
|
|
69
83
|
const pubsub$1 = new pubsub.PubSub();
|
|
70
84
|
di.register({
|
|
@@ -72,6 +86,13 @@ const createMockContext = ({ stores, initialState, store = createMockStore({ sto
|
|
|
72
86
|
useValue: store,
|
|
73
87
|
});
|
|
74
88
|
if (!di.get({ token: tokensCommon.ACTION_EXECUTION_TOKEN, optional: true })) {
|
|
89
|
+
if (useTramvaiActionsConditionals) {
|
|
90
|
+
di.register({
|
|
91
|
+
provide: tokensCommon.ACTION_CONDITIONALS,
|
|
92
|
+
multi: true,
|
|
93
|
+
useValue: [moduleCommon.alwaysCondition, moduleCommon.onlyServer, moduleCommon.onlyBrowser, moduleCommon.pageServer, moduleCommon.pageBrowser],
|
|
94
|
+
});
|
|
95
|
+
}
|
|
75
96
|
di.register({
|
|
76
97
|
provide: tokensCommon.ACTION_EXECUTION_TOKEN,
|
|
77
98
|
useClass: moduleCommon.ActionExecution,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/test-mocks",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.96.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|
|
@@ -18,14 +18,14 @@
|
|
|
18
18
|
"build-for-publish": "true"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@tramvai/core": "1.
|
|
21
|
+
"@tramvai/core": "1.96.0",
|
|
22
22
|
"@tinkoff/pubsub": "0.4.23",
|
|
23
23
|
"@tinkoff/router": "0.1.72",
|
|
24
24
|
"@tinkoff/url": "0.7.37",
|
|
25
|
-
"@tramvai/module-cookie": "1.
|
|
26
|
-
"@tramvai/module-common": "1.
|
|
27
|
-
"@tramvai/state": "1.
|
|
28
|
-
"@tramvai/tokens-common": "1.
|
|
25
|
+
"@tramvai/module-cookie": "1.96.0",
|
|
26
|
+
"@tramvai/module-common": "1.96.0",
|
|
27
|
+
"@tramvai/state": "1.96.0",
|
|
28
|
+
"@tramvai/tokens-common": "1.96.0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@tinkoff/dippy": "0.7.39",
|