UNPKG

strapi-plugin-i18n

Version:

This plugin enables to create, to read and to update content in different languages, both from the Admin Panel and from the API

98 lines (75 loc) 2.85 kB
import addCommonFieldsToInitialDataMiddleware from '../addCommonFieldsToInitialDataMiddleware'; jest.mock('strapi-helper-plugin', () => ({ request: () => ({ nonLocalizedFields: { common: 'test' }, localizations: ['test'], }), formatComponentData: data => data, contentManagementUtilRemoveFieldsFromData: data => data, })); describe('i18n | middlewares | addCommonFieldsToInitialDataMiddleware', () => { let getState; const dispatch = jest.fn(); beforeEach(() => { const store = new Map(); store.set('content-manager_editViewCrudReducer', { contentTypeDataStructure: { name: 'test', common: 'common default value' }, }); store.set('content-manager_editViewLayoutManager', { currentLayout: { components: {}, contentType: { uid: 'article', attributes: { name: { type: 'string' }, common: { type: 'string' }, }, }, }, }); getState = () => store; }); it('should forward the action when the type is undefined', () => { const action = { test: true, type: undefined }; const next = jest.fn(); const middleware = addCommonFieldsToInitialDataMiddleware()({ getState, dispatch }); middleware(next)(action); expect(next).toBeCalledWith(action); }); it('should forward the action when the rawQuery is empty', () => { const action = { type: 'ContentManager/CrudReducer/INIT_FORM', rawQuery: '' }; const next = jest.fn(); const middleware = addCommonFieldsToInitialDataMiddleware()({ getState, dispatch }); middleware(next)(action); expect(next).toBeCalledWith(action); }); it('should forward the action when the relatedEntityId is not defined', () => { const action = { type: 'ContentManager/CrudReducer/INIT_FORM', rawQuery: '?plugins[i18n][locale]=en', }; const next = jest.fn(); const middleware = addCommonFieldsToInitialDataMiddleware()({ getState, dispatch }); middleware(next)(action); expect(next).toBeCalledWith(action); }); it('should makes a request to retrieve the common field when the relatedEntityId is defined', async () => { const action = { type: 'ContentManager/CrudReducer/INIT_FORM', rawQuery: '?plugins[i18n][relatedEntityId]=1', }; const next = jest.fn(x => x); const middleware = addCommonFieldsToInitialDataMiddleware()({ getState, dispatch }); const nextAction = await middleware(next)(action); expect(dispatch).toHaveBeenCalledWith({ type: 'ContentManager/CrudReducer/GET_DATA' }); expect(nextAction).toEqual({ type: 'ContentManager/CrudReducer/INIT_FORM', rawQuery: '?plugins[i18n][relatedEntityId]=1', data: { name: 'test', localizations: ['test'], common: 'test', }, }); }); });