amis2/packages/amis/__tests__/stores/index.test.ts
2022-06-01 15:06:00 +08:00

54 lines
1.3 KiB
TypeScript

import {
RendererStore
} from '../../src/store/index';
import { getSnapshot, getEnv } from 'mobx-state-tree';
import { ServiceStore } from '../../src/store/service';
test('store:index', () => {
const store = RendererStore.create({});
expect(getSnapshot(store)).toMatchSnapshot();
const serviceStore = ServiceStore.create({
path: '/xxx',
storeType: ServiceStore.name,
id: '1'
});
store.addStore(serviceStore);
expect(getSnapshot(store)).toMatchSnapshot();
const serviceStore2 = ServiceStore.create({
path: '/yyy',
storeType: ServiceStore.name,
id: '2',
parentId: '1'
});
store.addStore(serviceStore2);
expect(getSnapshot(store)).toMatchSnapshot();
expect(serviceStore2.parentStore).toEqual(serviceStore);
store.removeStore(serviceStore2);
expect(getSnapshot(store)).toMatchSnapshot();
});
test('store:index env', () => {
const fetcher = jest.fn();
const notify = jest.fn();
const isCancel = jest.fn(() => false);
const store = RendererStore.create({}, {
fetcher,
notify,
isCancel
});
expect(store.fetcher).toBe(fetcher);
expect(store.notify).toBe(notify);
expect(store.isCancel).toBe(isCancel);
});