@tramvai/test-mocks 2.28.0 → 2.31.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/README.md +30 -3
- package/lib/CommonTestModule.d.ts +16 -0
- package/lib/context.d.ts +2 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.es.js +75 -5
- package/lib/index.js +71 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -27,14 +27,41 @@ store.dispatch('event');
|
|
|
27
27
|
|
|
28
28
|
#### Initial State
|
|
29
29
|
|
|
30
|
+
Pass required stores, initial state will be applied automatically:
|
|
31
|
+
|
|
32
|
+
```ts
|
|
33
|
+
import { createMockStore } from '@tramvai/test-mocks';
|
|
34
|
+
|
|
35
|
+
const reducer = createReducer('test', 'value');
|
|
36
|
+
|
|
37
|
+
const store = createMockStore({ stores: [reducer] });
|
|
38
|
+
|
|
39
|
+
const state = store.getState(); // { test: 'value' }
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Or pass just initialState, fake reducers will be created under the hood:
|
|
43
|
+
|
|
30
44
|
```ts
|
|
31
45
|
import { createMockStore } from '@tramvai/test-mocks';
|
|
32
46
|
|
|
33
47
|
const initialState = { a: 1, b: 2 };
|
|
34
|
-
const reducerC = createReducer('c', 3);
|
|
35
|
-
const store = createMockStore({ stores: [reducerC], initialState });
|
|
36
48
|
|
|
37
|
-
const
|
|
49
|
+
const store = createMockStore({ initialState });
|
|
50
|
+
|
|
51
|
+
const state = store.getState(); // { a: 1, b: 2 }
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Also you can change initial state of passed reducer:
|
|
55
|
+
|
|
56
|
+
```ts
|
|
57
|
+
import { createMockStore } from '@tramvai/test-mocks';
|
|
58
|
+
|
|
59
|
+
const initialState = { test: 'modified' };
|
|
60
|
+
const reducer = createReducer('test', 'default');
|
|
61
|
+
|
|
62
|
+
const store = createMockStore({ stores: [reducer], initialState });
|
|
63
|
+
|
|
64
|
+
const state = store.getState(); // { test: 'modified' }
|
|
38
65
|
```
|
|
39
66
|
|
|
40
67
|
<p>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Provider } from '@tramvai/core';
|
|
2
|
+
import type { Cache } from '@tramvai/tokens-common';
|
|
3
|
+
import { createMockEnvManager } from './envManager';
|
|
4
|
+
import { createMockCookieManager } from './cookie';
|
|
5
|
+
declare type CommonModuleOptions = {
|
|
6
|
+
env?: Parameters<typeof createMockEnvManager>[0];
|
|
7
|
+
cookies?: Parameters<typeof createMockCookieManager>[0];
|
|
8
|
+
onCacheCreated?: (cache: Cache) => void;
|
|
9
|
+
};
|
|
10
|
+
export declare class CommonTestModule {
|
|
11
|
+
static forRoot(options: CommonModuleOptions): {
|
|
12
|
+
providers: Provider<any, any>[];
|
|
13
|
+
mainModule: typeof CommonTestModule;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export {};
|
package/lib/context.d.ts
CHANGED
|
@@ -16,8 +16,9 @@ declare type Options = OptionsDi & OptionsStore & {
|
|
|
16
16
|
* @param initialState - начальное состояние, которое будет передано в createMockStore если явно не передавать store
|
|
17
17
|
* @param store - глобальный стор приложения, по умолчанию используется результат createMockStore
|
|
18
18
|
* @param providers - список провайдеров, которые будут переданы в createMockDi если явно не передавать di
|
|
19
|
+
* @param modules - список модулей, провайдеры которых будут добавлены в создаваемый di-контейнер
|
|
19
20
|
* @param stores - di-контейнер, по умолчанию используется результат createMockDi
|
|
20
21
|
* @param useTramvaiActionsConditionals - добавляет встроенные в tramvai actions conditionals
|
|
21
22
|
*/
|
|
22
|
-
export declare const createMockContext: ({ stores, initialState, store, providers, di, useTramvaiActionsConditionals, }?: Options) => typeof CONTEXT_TOKEN;
|
|
23
|
+
export declare const createMockContext: ({ stores, initialState, store, providers, modules, di, useTramvaiActionsConditionals, }?: Options) => typeof CONTEXT_TOKEN;
|
|
23
24
|
export {};
|
package/lib/index.d.ts
CHANGED
package/lib/index.es.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { STORE_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, EXECUTION_CONTEXT_MANAGER_TOKEN, CONTEXT_TOKEN } from '@tramvai/tokens-common';
|
|
2
|
-
import { alwaysCondition, onlyServer, onlyBrowser, pageServer, pageBrowser, ExecutionContextManager, ActionExecution, createConsumerContext } from '@tramvai/module-common';
|
|
1
|
+
import { STORE_TOKEN, ACTION_EXECUTION_TOKEN, ACTION_CONDITIONALS, EXECUTION_CONTEXT_MANAGER_TOKEN, CONTEXT_TOKEN, ENV_MANAGER_TOKEN, LOGGER_TOKEN, REQUEST_MANAGER_TOKEN, CREATE_CACHE_TOKEN } from '@tramvai/tokens-common';
|
|
2
|
+
import { alwaysCondition, onlyServer, onlyBrowser, pageServer, pageBrowser, ExecutionContextManager, ActionExecution, createConsumerContext, COOKIE_MANAGER_TOKEN } 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
|
+
import { walkOfModules, getModuleParameters, Module, provide, APP_INFO_TOKEN } from '@tramvai/core';
|
|
9
9
|
import { AbstractRouter } from '@tinkoff/router';
|
|
10
10
|
import { parse } from '@tinkoff/url';
|
|
11
11
|
import noop from '@tinkoff/utils/function/noop';
|
|
12
|
+
import { __decorate } from 'tslib';
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* Creates mock for a global app store
|
|
@@ -65,10 +66,11 @@ const createMockDi = ({ modules = [], providers = [] } = {}) => {
|
|
|
65
66
|
* @param initialState - начальное состояние, которое будет передано в createMockStore если явно не передавать store
|
|
66
67
|
* @param store - глобальный стор приложения, по умолчанию используется результат createMockStore
|
|
67
68
|
* @param providers - список провайдеров, которые будут переданы в createMockDi если явно не передавать di
|
|
69
|
+
* @param modules - список модулей, провайдеры которых будут добавлены в создаваемый di-контейнер
|
|
68
70
|
* @param stores - di-контейнер, по умолчанию используется результат createMockDi
|
|
69
71
|
* @param useTramvaiActionsConditionals - добавляет встроенные в tramvai actions conditionals
|
|
70
72
|
*/
|
|
71
|
-
const createMockContext = ({ stores, initialState, store = createMockStore({ stores, initialState }), providers, di = createMockDi({ providers }), useTramvaiActionsConditionals = false, } = {}) => {
|
|
73
|
+
const createMockContext = ({ stores, initialState, store = createMockStore({ stores, initialState }), providers, modules, di = createMockDi({ providers, modules }), useTramvaiActionsConditionals = false, } = {}) => {
|
|
72
74
|
const { __dispatcherContext__: dispatcherContext } = store; // хак для получения уже созданного dispatcherContext в сторе
|
|
73
75
|
const pubsub = new PubSub();
|
|
74
76
|
di.register({
|
|
@@ -246,4 +248,72 @@ const createMockCookieManager = (entries = {}) => {
|
|
|
246
248
|
};
|
|
247
249
|
};
|
|
248
250
|
|
|
249
|
-
|
|
251
|
+
var CommonTestModule_1;
|
|
252
|
+
let CommonTestModule = CommonTestModule_1 = class CommonTestModule {
|
|
253
|
+
static forRoot(options) {
|
|
254
|
+
const providers = [];
|
|
255
|
+
const { env, cookies, onCacheCreated } = options;
|
|
256
|
+
if (env) {
|
|
257
|
+
providers.push({
|
|
258
|
+
provide: ENV_MANAGER_TOKEN,
|
|
259
|
+
useValue: createMockEnvManager(env),
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
if (cookies) {
|
|
263
|
+
providers.push({
|
|
264
|
+
provide: COOKIE_MANAGER_TOKEN,
|
|
265
|
+
useValue: createMockCookieManager(cookies),
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
if (onCacheCreated) {
|
|
269
|
+
providers.push({
|
|
270
|
+
provide: CREATE_CACHE_TOKEN,
|
|
271
|
+
useValue: () => {
|
|
272
|
+
const cache = createMockCache();
|
|
273
|
+
onCacheCreated(cache);
|
|
274
|
+
return cache;
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
return {
|
|
279
|
+
providers,
|
|
280
|
+
mainModule: CommonTestModule_1,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
CommonTestModule = CommonTestModule_1 = __decorate([
|
|
285
|
+
Module({
|
|
286
|
+
providers: [
|
|
287
|
+
provide({
|
|
288
|
+
provide: ENV_MANAGER_TOKEN,
|
|
289
|
+
useValue: createMockEnvManager(),
|
|
290
|
+
}),
|
|
291
|
+
provide({
|
|
292
|
+
provide: LOGGER_TOKEN,
|
|
293
|
+
useValue: createMockLogger(),
|
|
294
|
+
}),
|
|
295
|
+
provide({
|
|
296
|
+
provide: APP_INFO_TOKEN,
|
|
297
|
+
useValue: createMockAppInfo(),
|
|
298
|
+
}),
|
|
299
|
+
provide({
|
|
300
|
+
provide: REQUEST_MANAGER_TOKEN,
|
|
301
|
+
useValue: createMockRequestManager(),
|
|
302
|
+
}),
|
|
303
|
+
provide({
|
|
304
|
+
provide: CREATE_CACHE_TOKEN,
|
|
305
|
+
useValue: () => createMockCache(),
|
|
306
|
+
}),
|
|
307
|
+
provide({
|
|
308
|
+
provide: COOKIE_MANAGER_TOKEN,
|
|
309
|
+
useValue: createMockCookieManager(),
|
|
310
|
+
}),
|
|
311
|
+
provide({
|
|
312
|
+
provide: CONTEXT_TOKEN,
|
|
313
|
+
useValue: createMockContext(),
|
|
314
|
+
}),
|
|
315
|
+
],
|
|
316
|
+
})
|
|
317
|
+
], CommonTestModule);
|
|
318
|
+
|
|
319
|
+
export { CommonTestModule, createMockAppInfo, createMockCache, createMockContext, createMockCookieManager, createMockDi, createMockEnvManager, createMockLogger, createMockRequestManager, createMockRouter, createMockStore };
|
package/lib/index.js
CHANGED
|
@@ -13,6 +13,7 @@ var core = require('@tramvai/core');
|
|
|
13
13
|
var router = require('@tinkoff/router');
|
|
14
14
|
var url = require('@tinkoff/url');
|
|
15
15
|
var noop = require('@tinkoff/utils/function/noop');
|
|
16
|
+
var tslib = require('tslib');
|
|
16
17
|
|
|
17
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
19
|
|
|
@@ -75,10 +76,11 @@ const createMockDi = ({ modules = [], providers = [] } = {}) => {
|
|
|
75
76
|
* @param initialState - начальное состояние, которое будет передано в createMockStore если явно не передавать store
|
|
76
77
|
* @param store - глобальный стор приложения, по умолчанию используется результат createMockStore
|
|
77
78
|
* @param providers - список провайдеров, которые будут переданы в createMockDi если явно не передавать di
|
|
79
|
+
* @param modules - список модулей, провайдеры которых будут добавлены в создаваемый di-контейнер
|
|
78
80
|
* @param stores - di-контейнер, по умолчанию используется результат createMockDi
|
|
79
81
|
* @param useTramvaiActionsConditionals - добавляет встроенные в tramvai actions conditionals
|
|
80
82
|
*/
|
|
81
|
-
const createMockContext = ({ stores, initialState, store = createMockStore({ stores, initialState }), providers, di = createMockDi({ providers }), useTramvaiActionsConditionals = false, } = {}) => {
|
|
83
|
+
const createMockContext = ({ stores, initialState, store = createMockStore({ stores, initialState }), providers, modules, di = createMockDi({ providers, modules }), useTramvaiActionsConditionals = false, } = {}) => {
|
|
82
84
|
const { __dispatcherContext__: dispatcherContext } = store; // хак для получения уже созданного dispatcherContext в сторе
|
|
83
85
|
const pubsub$1 = new pubsub.PubSub();
|
|
84
86
|
di.register({
|
|
@@ -256,6 +258,74 @@ const createMockCookieManager = (entries = {}) => {
|
|
|
256
258
|
};
|
|
257
259
|
};
|
|
258
260
|
|
|
261
|
+
var CommonTestModule_1;
|
|
262
|
+
exports.CommonTestModule = CommonTestModule_1 = class CommonTestModule {
|
|
263
|
+
static forRoot(options) {
|
|
264
|
+
const providers = [];
|
|
265
|
+
const { env, cookies, onCacheCreated } = options;
|
|
266
|
+
if (env) {
|
|
267
|
+
providers.push({
|
|
268
|
+
provide: tokensCommon.ENV_MANAGER_TOKEN,
|
|
269
|
+
useValue: createMockEnvManager(env),
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
if (cookies) {
|
|
273
|
+
providers.push({
|
|
274
|
+
provide: moduleCommon.COOKIE_MANAGER_TOKEN,
|
|
275
|
+
useValue: createMockCookieManager(cookies),
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
if (onCacheCreated) {
|
|
279
|
+
providers.push({
|
|
280
|
+
provide: tokensCommon.CREATE_CACHE_TOKEN,
|
|
281
|
+
useValue: () => {
|
|
282
|
+
const cache = createMockCache();
|
|
283
|
+
onCacheCreated(cache);
|
|
284
|
+
return cache;
|
|
285
|
+
},
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
return {
|
|
289
|
+
providers,
|
|
290
|
+
mainModule: CommonTestModule_1,
|
|
291
|
+
};
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
exports.CommonTestModule = CommonTestModule_1 = tslib.__decorate([
|
|
295
|
+
core.Module({
|
|
296
|
+
providers: [
|
|
297
|
+
core.provide({
|
|
298
|
+
provide: tokensCommon.ENV_MANAGER_TOKEN,
|
|
299
|
+
useValue: createMockEnvManager(),
|
|
300
|
+
}),
|
|
301
|
+
core.provide({
|
|
302
|
+
provide: tokensCommon.LOGGER_TOKEN,
|
|
303
|
+
useValue: createMockLogger(),
|
|
304
|
+
}),
|
|
305
|
+
core.provide({
|
|
306
|
+
provide: core.APP_INFO_TOKEN,
|
|
307
|
+
useValue: createMockAppInfo(),
|
|
308
|
+
}),
|
|
309
|
+
core.provide({
|
|
310
|
+
provide: tokensCommon.REQUEST_MANAGER_TOKEN,
|
|
311
|
+
useValue: createMockRequestManager(),
|
|
312
|
+
}),
|
|
313
|
+
core.provide({
|
|
314
|
+
provide: tokensCommon.CREATE_CACHE_TOKEN,
|
|
315
|
+
useValue: () => createMockCache(),
|
|
316
|
+
}),
|
|
317
|
+
core.provide({
|
|
318
|
+
provide: moduleCommon.COOKIE_MANAGER_TOKEN,
|
|
319
|
+
useValue: createMockCookieManager(),
|
|
320
|
+
}),
|
|
321
|
+
core.provide({
|
|
322
|
+
provide: tokensCommon.CONTEXT_TOKEN,
|
|
323
|
+
useValue: createMockContext(),
|
|
324
|
+
}),
|
|
325
|
+
],
|
|
326
|
+
})
|
|
327
|
+
], exports.CommonTestModule);
|
|
328
|
+
|
|
259
329
|
exports.createMockAppInfo = createMockAppInfo;
|
|
260
330
|
exports.createMockCache = createMockCache;
|
|
261
331
|
exports.createMockContext = createMockContext;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/test-mocks",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.31.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": "2.
|
|
21
|
+
"@tramvai/core": "2.31.0",
|
|
22
22
|
"@tinkoff/pubsub": "0.5.4",
|
|
23
23
|
"@tinkoff/router": "0.2.3",
|
|
24
24
|
"@tinkoff/url": "0.8.3",
|
|
25
|
-
"@tramvai/module-cookie": "2.
|
|
26
|
-
"@tramvai/module-common": "2.
|
|
27
|
-
"@tramvai/state": "2.
|
|
28
|
-
"@tramvai/tokens-common": "2.
|
|
25
|
+
"@tramvai/module-cookie": "2.31.0",
|
|
26
|
+
"@tramvai/module-common": "2.31.0",
|
|
27
|
+
"@tramvai/state": "2.31.0",
|
|
28
|
+
"@tramvai/tokens-common": "2.31.0"
|
|
29
29
|
},
|
|
30
30
|
"peerDependencies": {
|
|
31
31
|
"@tinkoff/dippy": "0.8.6",
|