mirror of
https://github.com/strapi/strapi.git
synced 2025-09-25 16:29:34 +00:00
Add missing tests
Signed-off-by: soupette <cyril.lpz@gmail.com>
This commit is contained in:
parent
fd3dda166f
commit
d294e22674
@ -83,7 +83,6 @@ const extendCMEditViewLayoutMiddleware = () => () => next => action => {
|
||||
},
|
||||
},
|
||||
};
|
||||
// set(action, editRelationsPath, nextEditRelationLayout);
|
||||
|
||||
return next(enhancedAction);
|
||||
};
|
||||
|
@ -0,0 +1,266 @@
|
||||
import React from 'react';
|
||||
import { Globe, GlobeCrossed } from '@buffetjs/icons';
|
||||
import { getTrad } from '../../utils';
|
||||
import extendCMEditViewLayoutMiddleware, {
|
||||
enhanceEditLayout,
|
||||
enhanceRelationLayout,
|
||||
} from '../extendCMEditViewLayoutMiddleware';
|
||||
|
||||
const localizedTrad = getTrad('Field.localized');
|
||||
const localizedTradDefaultMessage = 'This value is unique for the selected locale';
|
||||
const notLocalizedTrad = getTrad('Field.not-localized');
|
||||
const notLocalizedTradDefaultMessage = 'This value is common to all locales';
|
||||
|
||||
describe('i18n | Middlewares | extendCMEditViewLayoutMiddleware', () => {
|
||||
it('should forward the action if the type is undefined', () => {
|
||||
const middleware = extendCMEditViewLayoutMiddleware();
|
||||
const action = { test: true, type: undefined };
|
||||
|
||||
const next = jest.fn();
|
||||
|
||||
middleware()(next)(action);
|
||||
|
||||
expect(next).toBeCalledWith(action);
|
||||
});
|
||||
|
||||
it('should forward if the type is not correct', () => {
|
||||
const middleware = extendCMEditViewLayoutMiddleware();
|
||||
const action = { test: true, type: 'TEST' };
|
||||
|
||||
const next = jest.fn();
|
||||
|
||||
middleware()(next)(action);
|
||||
|
||||
expect(next).toBeCalledWith(action);
|
||||
});
|
||||
|
||||
describe('should forward when the type is ContentManager/EditViewLayoutManager/SET_LAYOUT', () => {
|
||||
it('should forward when i18n is not enabled on the content type', () => {
|
||||
const layout = {
|
||||
components: {},
|
||||
contentType: {
|
||||
uid: 'test',
|
||||
pluginOptions: { i18n: { localized: false } },
|
||||
layouts: {
|
||||
edit: ['test'],
|
||||
},
|
||||
},
|
||||
};
|
||||
const action = {
|
||||
type: 'ContentManager/EditViewLayoutManager/SET_LAYOUT',
|
||||
layout,
|
||||
};
|
||||
const middleware = extendCMEditViewLayoutMiddleware();
|
||||
const next = jest.fn();
|
||||
|
||||
middleware()(next)(action);
|
||||
|
||||
expect(next).toBeCalledWith(action);
|
||||
});
|
||||
|
||||
it('should modify the editRelations layout when i18n is enabled', () => {
|
||||
const layout = {
|
||||
contentType: {
|
||||
uid: 'test',
|
||||
pluginOptions: { i18n: { localized: true } },
|
||||
layouts: {
|
||||
edit: [],
|
||||
editRelations: [
|
||||
{
|
||||
fieldSchema: {},
|
||||
metadatas: {},
|
||||
name: 'addresses',
|
||||
queryInfos: {},
|
||||
size: 6,
|
||||
targetModelPluginOptions: {},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
const action = {
|
||||
type: 'ContentManager/EditViewLayoutManager/SET_LAYOUT',
|
||||
layout,
|
||||
};
|
||||
const middleware = extendCMEditViewLayoutMiddleware();
|
||||
|
||||
const next = jest.fn();
|
||||
middleware()(next)(action);
|
||||
|
||||
expect(next).toBeCalledWith({
|
||||
...action,
|
||||
layout: {
|
||||
...layout,
|
||||
contentType: {
|
||||
...layout.contentType,
|
||||
layouts: {
|
||||
edit: [],
|
||||
editRelations: [
|
||||
{
|
||||
fieldSchema: {},
|
||||
metadatas: {},
|
||||
name: 'addresses',
|
||||
queryInfos: {},
|
||||
size: 6,
|
||||
targetModelPluginOptions: {},
|
||||
labelIcon: {
|
||||
title: { id: localizedTrad, defaultMessage: localizedTradDefaultMessage },
|
||||
icon: <Globe />,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('enhanceRelationLayout', () => {
|
||||
it('should add the labelIcon key to all relations fields', () => {
|
||||
const editRelations = [
|
||||
{
|
||||
fieldSchema: {},
|
||||
metadatas: {},
|
||||
name: 'addresses',
|
||||
queryInfos: {},
|
||||
size: 6,
|
||||
targetModelPluginOptions: {},
|
||||
},
|
||||
];
|
||||
const expected = [
|
||||
{
|
||||
fieldSchema: {},
|
||||
metadatas: {},
|
||||
name: 'addresses',
|
||||
queryInfos: {},
|
||||
size: 6,
|
||||
targetModelPluginOptions: {},
|
||||
labelIcon: {
|
||||
title: { id: localizedTrad, defaultMessage: localizedTradDefaultMessage },
|
||||
icon: <Globe />,
|
||||
},
|
||||
},
|
||||
];
|
||||
|
||||
expect(enhanceRelationLayout(editRelations)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
|
||||
describe('enhanceEditLayout', () => {
|
||||
it('should add the label icon to all fields with the localized translation when i18n is enabled', () => {
|
||||
const edit = [
|
||||
[
|
||||
{
|
||||
name: 'name',
|
||||
size: 6,
|
||||
fieldSchema: {
|
||||
pluginOptions: { i18n: { localized: true } },
|
||||
type: 'string',
|
||||
},
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
name: 'test',
|
||||
size: 6,
|
||||
fieldSchema: {
|
||||
pluginOptions: { i18n: { localized: true } },
|
||||
type: 'string',
|
||||
},
|
||||
},
|
||||
],
|
||||
];
|
||||
const expected = [
|
||||
[
|
||||
{
|
||||
name: 'name',
|
||||
size: 6,
|
||||
fieldSchema: {
|
||||
pluginOptions: { i18n: { localized: true } },
|
||||
type: 'string',
|
||||
},
|
||||
labelIcon: {
|
||||
title: { id: localizedTrad, defaultMessage: localizedTradDefaultMessage },
|
||||
icon: <Globe />,
|
||||
},
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
name: 'test',
|
||||
size: 6,
|
||||
fieldSchema: {
|
||||
pluginOptions: { i18n: { localized: true } },
|
||||
type: 'string',
|
||||
},
|
||||
labelIcon: {
|
||||
title: { id: localizedTrad, defaultMessage: localizedTradDefaultMessage },
|
||||
icon: <Globe />,
|
||||
},
|
||||
},
|
||||
],
|
||||
];
|
||||
|
||||
expect(enhanceEditLayout(edit)).toEqual(expected);
|
||||
});
|
||||
|
||||
it('should add the label icon to all fields with the not localized translation when i18n is disabled', () => {
|
||||
const edit = [
|
||||
[
|
||||
{
|
||||
name: 'name',
|
||||
size: 6,
|
||||
fieldSchema: {
|
||||
pluginOptions: { i18n: { localized: true } },
|
||||
type: 'string',
|
||||
},
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
name: 'test',
|
||||
size: 6,
|
||||
fieldSchema: {
|
||||
pluginOptions: { i18n: { localized: false } },
|
||||
type: 'string',
|
||||
},
|
||||
},
|
||||
],
|
||||
];
|
||||
const expected = [
|
||||
[
|
||||
{
|
||||
name: 'name',
|
||||
size: 6,
|
||||
fieldSchema: {
|
||||
pluginOptions: { i18n: { localized: true } },
|
||||
type: 'string',
|
||||
},
|
||||
labelIcon: {
|
||||
title: { id: localizedTrad, defaultMessage: localizedTradDefaultMessage },
|
||||
icon: <Globe />,
|
||||
},
|
||||
},
|
||||
],
|
||||
[
|
||||
{
|
||||
name: 'test',
|
||||
size: 6,
|
||||
fieldSchema: {
|
||||
pluginOptions: { i18n: { localized: false } },
|
||||
type: 'string',
|
||||
},
|
||||
labelIcon: {
|
||||
title: { id: notLocalizedTrad, defaultMessage: notLocalizedTradDefaultMessage },
|
||||
icon: <GlobeCrossed />,
|
||||
},
|
||||
},
|
||||
],
|
||||
];
|
||||
|
||||
expect(enhanceEditLayout(edit)).toEqual(expected);
|
||||
});
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user