@tramvai/test-mocks 2.27.0 → 2.29.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 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 state = store.getState();
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
@@ -8,3 +8,4 @@ export { createMockRequestManager } from './requestManager';
8
8
  export { createMockAppInfo } from './appInfo';
9
9
  export { createMockCache } from './cache';
10
10
  export { createMockCookieManager } from './cookie';
11
+ export { CommonTestModule } from './CommonTestModule';
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
- export { createMockAppInfo, createMockCache, createMockContext, createMockCookieManager, createMockDi, createMockEnvManager, createMockLogger, createMockRequestManager, createMockRouter, createMockStore };
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.27.0",
3
+ "version": "2.29.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.27.0",
21
+ "@tramvai/core": "2.29.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.27.0",
26
- "@tramvai/module-common": "2.27.0",
27
- "@tramvai/state": "2.27.0",
28
- "@tramvai/tokens-common": "2.27.0"
25
+ "@tramvai/module-cookie": "2.29.0",
26
+ "@tramvai/module-common": "2.29.0",
27
+ "@tramvai/state": "2.29.0",
28
+ "@tramvai/tokens-common": "2.29.0"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "@tinkoff/dippy": "0.8.6",