Chore: Prettify all files

This commit is contained in:
Gustav Hansen 2022-03-29 14:20:03 +02:00
parent 1ec680924d
commit 8aaaff77d4
28 changed files with 214 additions and 112 deletions

View File

@ -207,9 +207,6 @@ RepeatableComponent.propTypes = {
const Memoized = memo(RepeatableComponent); const Memoized = memo(RepeatableComponent);
export default connect( export default connect(Memoized, select);
Memoized,
select
);
export { RepeatableComponent }; export { RepeatableComponent };

View File

@ -124,7 +124,10 @@ describe('Content Manager | hooks | useFetchContentTypeLayout | utils ', () => {
uid: 'compo', uid: 'compo',
layouts: { layouts: {
edit: [ edit: [
[{ name: 'full_name', size: 6 }, { name: 'city', size: 6 }], [
{ name: 'full_name', size: 6 },
{ name: 'city', size: 6 },
],
[{ name: 'compo', size: 12 }], [{ name: 'compo', size: 12 }],
], ],
}, },
@ -166,7 +169,10 @@ describe('Content Manager | hooks | useFetchContentTypeLayout | utils ', () => {
editRelations: [], editRelations: [],
edit: [ edit: [
[{ name: 'dz', size: 12 }], [{ name: 'dz', size: 12 }],
[{ name: 'full_name', size: 6 }, { name: 'city', size: 6 }], [
{ name: 'full_name', size: 6 },
{ name: 'city', size: 6 },
],
[{ name: 'compo', size: 12 }], [{ name: 'compo', size: 12 }],
], ],
}, },
@ -364,7 +370,10 @@ describe('Content Manager | hooks | useFetchContentTypeLayout | utils ', () => {
layouts: { layouts: {
edit: [ edit: [
[{ name: 'dz', size: 12 }], [{ name: 'dz', size: 12 }],
[{ name: 'full_name', size: 6 }, { name: 'city', size: 6 }], [
{ name: 'full_name', size: 6 },
{ name: 'city', size: 6 },
],
[{ name: 'compo', size: 12 }], [{ name: 'compo', size: 12 }],
], ],
}, },
@ -612,7 +621,10 @@ describe('Content Manager | hooks | useFetchContentTypeLayout | utils ', () => {
describe('getDisplayedModels', () => { describe('getDisplayedModels', () => {
it('should return an array containing only the displayable models', () => { it('should return an array containing only the displayable models', () => {
const models = [{ uid: 'test', isDisplayed: false }, { uid: 'testtest', isDisplayed: true }]; const models = [
{ uid: 'test', isDisplayed: false },
{ uid: 'testtest', isDisplayed: true },
];
expect(getDisplayedModels([])).toHaveLength(0); expect(getDisplayedModels([])).toHaveLength(0);
expect(getDisplayedModels(models)).toHaveLength(1); expect(getDisplayedModels(models)).toHaveLength(1);

View File

@ -11,7 +11,12 @@ import { makeSelectModelAndComponentSchemas } from '../../App/selectors';
import getTrad from '../../../utils/getTrad'; import getTrad from '../../../utils/getTrad';
import GenericInput from './GenericInput'; import GenericInput from './GenericInput';
const FIELD_SIZES = [[4, '33%'], [6, '50%'], [8, '66%'], [12, '100%']]; const FIELD_SIZES = [
[4, '33%'],
[6, '50%'],
[8, '66%'],
[12, '100%'],
];
const NON_RESIZABLE_FIELD_TYPES = ['dynamiczone', 'component', 'json', 'richtext']; const NON_RESIZABLE_FIELD_TYPES = ['dynamiczone', 'component', 'json', 'richtext'];

View File

@ -34,7 +34,12 @@ const makeApp = (history, layout) => {
}, },
kind: 'collectionType', kind: 'collectionType',
layouts: { layouts: {
edit: [[{ name: 'postal_code', size: 6 }, { name: 'city', size: 6 }]], edit: [
[
{ name: 'postal_code', size: 6 },
{ name: 'city', size: 6 },
],
],
list: ['postal_code', 'categories'], list: ['postal_code', 'categories'],
editRelations: ['categories'], editRelations: ['categories'],
}, },

View File

@ -150,7 +150,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
edit: [ edit: [
{ {
rowId: 0, rowId: 0,
rowContent: [{ name: 'title', size: 6 }, { name: '_TEMP_', size: 6 }], rowContent: [
{ name: 'title', size: 6 },
{ name: '_TEMP_', size: 6 },
],
}, },
], ],
}, },
@ -170,7 +173,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
edit: [ edit: [
{ {
rowId: 0, rowId: 0,
rowContent: [{ name: 'title', size: 8 }, { name: '_TEMP_', size: 4 }], rowContent: [
{ name: 'title', size: 8 },
{ name: '_TEMP_', size: 4 },
],
}, },
], ],
}; };
@ -186,7 +192,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
edit: [ edit: [
{ {
rowId: 0, rowId: 0,
rowContent: [{ name: 'title', size: 8 }, { name: 'isActive', size: 4 }], rowContent: [
{ name: 'title', size: 8 },
{ name: 'isActive', size: 4 },
],
}, },
], ],
}, },
@ -234,7 +243,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
}, },
{ {
rowId: 1, rowId: 1,
rowContent: [{ name: 'title', size: 6 }, { name: '_TEMP_', size: 6 }], rowContent: [
{ name: 'title', size: 6 },
{ name: '_TEMP_', size: 6 },
],
}, },
], ],
}, },
@ -358,7 +370,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
edit: [ edit: [
{ {
rowId: 0, rowId: 0,
rowContent: [{ name: 'isActive', size: 4 }, { name: '_TEMP_', size: 8 }], rowContent: [
{ name: 'isActive', size: 4 },
{ name: '_TEMP_', size: 8 },
],
}, },
], ],
}, },
@ -404,7 +419,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
}, },
{ {
rowId: 1, rowId: 1,
rowContent: [{ name: 'slug', size: 6 }, { name: '_TEMP_', size: 6 }], rowContent: [
{ name: 'slug', size: 6 },
{ name: '_TEMP_', size: 6 },
],
}, },
], ],
}, },
@ -424,7 +442,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
}, },
{ {
rowId: 1, rowId: 1,
rowContent: [{ name: 'second', size: 4 }, { name: '_TEMP_', size: 8 }], rowContent: [
{ name: 'second', size: 4 },
{ name: '_TEMP_', size: 8 },
],
}, },
], ],
}, },
@ -455,7 +476,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
}, },
{ {
rowId: 1, rowId: 1,
rowContent: [{ name: 'slug', size: 6 }, { name: '_TEMP_', size: 6 }], rowContent: [
{ name: 'slug', size: 6 },
{ name: '_TEMP_', size: 6 },
],
}, },
], ],
}, },
@ -475,7 +499,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
}, },
{ {
rowId: 1, rowId: 1,
rowContent: [{ name: 'slug', size: 6 }, { name: '_TEMP_', size: 6 }], rowContent: [
{ name: 'slug', size: 6 },
{ name: '_TEMP_', size: 6 },
],
}, },
], ],
}, },
@ -499,7 +526,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
edit: [ edit: [
{ {
rowId: 0, rowId: 0,
rowContent: [{ name: 'city', size: 6 }, { name: 'slug', size: 6 }], rowContent: [
{ name: 'city', size: 6 },
{ name: 'slug', size: 6 },
],
}, },
{ {
rowId: 1, rowId: 1,
@ -518,7 +548,10 @@ describe('CONTENT MANAGER | CONTAINERS | EditSettingsView | reducer', () => {
edit: [ edit: [
{ {
rowId: 0, rowId: 0,
rowContent: [{ name: 'city', size: 6 }, { name: 'slug', size: 6 }], rowContent: [
{ name: 'city', size: 6 },
{ name: 'slug', size: 6 },
],
}, },
{ {
rowId: 1, rowId: 1,

View File

@ -28,7 +28,13 @@ const formatLayout = arr => {
return acc2; return acc2;
}, []); }, []);
const rowId = acc.length === 0 ? 0 : Math.max.apply(Math, acc.map(o => o.rowId)) + 1; const rowId =
acc.length === 0
? 0
: Math.max.apply(
Math,
acc.map(o => o.rowId)
) + 1;
const currentRowSize = getRowSize(currentRow); const currentRowSize = getRowSize(currentRow);

View File

@ -12,19 +12,31 @@ describe('Content Manager | containers | EditSettingsView | utils | layout', ()
describe('createLayout', () => { describe('createLayout', () => {
it('should return an array of object with keys rowId and rowContent', () => { it('should return an array of object with keys rowId and rowContent', () => {
const data = [ const data = [
[{ name: 'test', size: 4 }, { name: 'test1', size: 4 }], [
{ name: 'test', size: 4 },
{ name: 'test1', size: 4 },
],
[{ name: 'test2', size: 12 }], [{ name: 'test2', size: 12 }],
[{ name: 'test3', size: 6 }, { name: 'test4', size: 1 }], [
{ name: 'test3', size: 6 },
{ name: 'test4', size: 1 },
],
]; ];
const expected = [ const expected = [
{ {
rowId: 0, rowId: 0,
rowContent: [{ name: 'test', size: 4 }, { name: 'test1', size: 4 }], rowContent: [
{ name: 'test', size: 4 },
{ name: 'test1', size: 4 },
],
}, },
{ rowId: 1, rowContent: [{ name: 'test2', size: 12 }] }, { rowId: 1, rowContent: [{ name: 'test2', size: 12 }] },
{ {
rowId: 2, rowId: 2,
rowContent: [{ name: 'test3', size: 6 }, { name: 'test4', size: 1 }], rowContent: [
{ name: 'test3', size: 6 },
{ name: 'test4', size: 1 },
],
}, },
]; ];
@ -37,12 +49,18 @@ describe('Content Manager | containers | EditSettingsView | utils | layout', ()
const data = [ const data = [
{ {
rowId: 0, rowId: 0,
rowContent: [{ name: 'test', size: 4 }, { name: 'test1', size: 4 }], rowContent: [
{ name: 'test', size: 4 },
{ name: 'test1', size: 4 },
],
}, },
{ rowId: 1, rowContent: [{ name: 'test2', size: 12 }] }, { rowId: 1, rowContent: [{ name: 'test2', size: 12 }] },
{ {
rowId: 2, rowId: 2,
rowContent: [{ name: 'test3', size: 6 }, { name: 'test4', size: 1 }], rowContent: [
{ name: 'test3', size: 6 },
{ name: 'test4', size: 1 },
],
}, },
]; ];
const expected = [ const expected = [
@ -89,7 +107,10 @@ describe('Content Manager | containers | EditSettingsView | utils | layout', ()
}, },
{ {
rowId: 3, rowId: 3,
rowContent: [{ name: 'test5', size: 6 }, { name: 'test6', size: 6 }], rowContent: [
{ name: 'test5', size: 6 },
{ name: 'test6', size: 6 },
],
}, },
]; ];
@ -238,7 +259,10 @@ describe('Content Manager | containers | EditSettingsView | utils | layout', ()
}, },
]; ];
const expected = [ const expected = [
[{ name: 'name', size: 6 }, { name: 'test', size: 4 }], [
{ name: 'name', size: 6 },
{ name: 'test', size: 4 },
],
[{ name: 'name1', size: 4 }], [{ name: 'name1', size: 4 }],
]; ];

View File

@ -71,7 +71,4 @@ DeleteLink.propTypes = {
const Memoized = memo(DeleteLink, isEqual); const Memoized = memo(DeleteLink, isEqual);
export default connect( export default connect(Memoized, select);
Memoized,
select
);

View File

@ -88,8 +88,5 @@ DraftAndPublishBadge.propTypes = {
isPublished: PropTypes.bool.isRequired, isPublished: PropTypes.bool.isRequired,
}; };
export default connect( export default connect(DraftAndPublishBadge, select);
DraftAndPublishBadge,
select
);
export { DraftAndPublishBadge }; export { DraftAndPublishBadge };

View File

@ -15,12 +15,9 @@ const listViewDomain = () => state => state['content-manager_listView'] || initi
*/ */
const makeSelectListView = () => const makeSelectListView = () =>
createSelector( createSelector(listViewDomain(), substate => {
listViewDomain(),
substate => {
return substate; return substate;
} });
);
const selectDisplayedHeaders = state => { const selectDisplayedHeaders = state => {
const { displayedHeaders } = state['content-manager_listView']; const { displayedHeaders } = state['content-manager_listView'];

View File

@ -140,7 +140,11 @@ const testData = {
id: 1, id: 1,
name: 'name', name: 'name',
subcomponotrepeatable: { id: 4, name: 'name' }, subcomponotrepeatable: { id: 4, name: 'name' },
subrepeatable: [{ id: 1, name: 'name' }, { id: 2, name: 'name' }, { id: 3, name: 'name' }], subrepeatable: [
{ id: 1, name: 'name' },
{ id: 2, name: 'name' },
{ id: 3, name: 'name' },
],
}, },
repeatable: [ repeatable: [
{ {

View File

@ -10,7 +10,10 @@ describe('ADMIN | COMPONENTS | PERMISSIONS | GlobalActions | utils', () => {
}); });
it('should return an array of actionId string', () => { it('should return an array of actionId string', () => {
const data = [{ test: true, actionId: 'create' }, { test: 'false', actionId: 'read' }]; const data = [
{ test: true, actionId: 'create' },
{ test: 'false', actionId: 'read' },
];
const expected = ['create', 'read']; const expected = ['create', 'read'];
expect(getActionsIds(data)).toEqual(expected); expect(getActionsIds(data)).toEqual(expected);

View File

@ -32,7 +32,11 @@ const checkPermissionsAreBound = role =>
for (const [subject, perms] of Object.entries(permsBySubject)) { for (const [subject, perms] of Object.entries(permsBySubject)) {
const boundActions = getBoundActionsBySubject(role, subject); const boundActions = getBoundActionsBySubject(role, subject);
const missingActions = _.xor(perms.map(p => p.action), boundActions).length !== 0; const missingActions =
_.xor(
perms.map(p => p.action),
boundActions
).length !== 0;
if (missingActions) return false; if (missingActions) return false;
const permsBoundByFields = perms.filter(p => BOUND_ACTIONS_FOR_FIELDS.includes(p.action)); const permsBoundByFields = perms.filter(p => BOUND_ACTIONS_FOR_FIELDS.includes(p.action));

View File

@ -38,12 +38,27 @@ describe('metrics', () => {
const testData = [ const testData = [
[['fieldA'], [false]], [['fieldA'], [false]],
[['fieldA', 'fieldB'], [false]], [['fieldA', 'fieldB'], [false]],
[['fieldA', 'field1'], [true, 2, 1]], [
[['field1', 'field2'], [true, 2, 2]], ['fieldA', 'field1'],
[true, 2, 1],
],
[
['field1', 'field2'],
[true, 2, 2],
],
[['field1'], [true, 1, 1]], [['field1'], [true, 1, 1]],
[['fieldA', 'fieldB', 'field1', 'field2'], [true, 4, 2]], [
[['fieldA', 'fieldB', 'field3', 'field4'], [true, 4, 2]], ['fieldA', 'fieldB', 'field1', 'field2'],
[['fieldA', 'fieldB', 'field5', 'field6'], [true, 4, 2]], [true, 4, 2],
],
[
['fieldA', 'fieldB', 'field3', 'field4'],
[true, 4, 2],
],
[
['fieldA', 'fieldB', 'field5', 'field6'],
[true, 4, 2],
],
]; ];
test.each(testData)('%s', async (list, expectedResult) => { test.each(testData)('%s', async (list, expectedResult) => {

View File

@ -208,9 +208,13 @@ describe('x-to-many RF Preview', () => {
}); });
describe('Pagination', () => { describe('Pagination', () => {
test.each([[1, 10], [2, 10], [5, 1], [4, 2], [1, 100]])( test.each([
'Custom pagination (%s, %s)', [1, 10],
async (page, pageSize) => { [2, 10],
[5, 1],
[4, 2],
[1, 100],
])('Custom pagination (%s, %s)', async (page, pageSize) => {
const product = data.product[0]; const product = data.product[0];
const { body, statusCode } = await rq.get( const { body, statusCode } = await rq.get(
@ -223,10 +227,7 @@ describe('x-to-many RF Preview', () => {
expect(pagination.page).toBe(page); expect(pagination.page).toBe(page);
expect(pagination.pageSize).toBe(pageSize); expect(pagination.pageSize).toBe(pageSize);
expect(results).toHaveLength( expect(results).toHaveLength(Math.min(pageSize, PRODUCT_SHOP_COUNT - pageSize * (page - 1)));
Math.min(pageSize, PRODUCT_SHOP_COUNT - pageSize * (page - 1)) });
);
}
);
}); });
}); });

View File

@ -51,13 +51,7 @@ const formsAPI = {
contentType.form.advanced.push(advanced); contentType.form.advanced.push(advanced);
contentType.form.base.push(base); contentType.form.base.push(base);
}, },
extendFields( extendFields(fields, { validator, form: { advanced, base } }) {
fields,
{
validator,
form: { advanced, base },
}
) {
const formType = this.types.attribute; const formType = this.types.attribute;
fields.forEach(field => { fields.forEach(field => {

View File

@ -182,9 +182,10 @@ function createSchemaBuilder({ components, contentTypes }) {
*/ */
rollback() { rollback() {
return Promise.all( return Promise.all(
[...Array.from(tmpComponents.values()), ...Array.from(tmpContentTypes.values())].map( [
schema => schema.rollback() ...Array.from(tmpComponents.values()),
) ...Array.from(tmpContentTypes.values()),
].map(schema => schema.rollback())
); );
}, },
}; };

View File

@ -137,7 +137,7 @@ const GenericInput = ({
id: 'app.components.ToggleCheckbox.on-label', id: 'app.components.ToggleCheckbox.on-label',
defaultMessage: 'True', defaultMessage: 'True',
})} })}
onChange={(e) => { onChange={e => {
onChange({ target: { name, value: e.target.checked } }); onChange({ target: { name, value: e.target.checked } });
}} }}
required={required} required={required}
@ -153,7 +153,7 @@ const GenericInput = ({
hint={hint} hint={hint}
id={name} id={name}
name={name} name={name}
onValueChange={(value) => { onValueChange={value => {
onChange({ target: { name, value } }); onChange({ target: { name, value } });
}} }}
required={required} required={required}
@ -174,7 +174,7 @@ const GenericInput = ({
id={name} id={name}
hint={hint} hint={hint}
name={name} name={name}
onChange={(date) => { onChange={date => {
const formattedDate = date.toISOString(); const formattedDate = date.toISOString();
onChange({ target: { name, value: formattedDate, type } }); onChange({ target: { name, value: formattedDate, type } });
@ -184,7 +184,7 @@ const GenericInput = ({
placeholder={formattedPlaceholder} placeholder={formattedPlaceholder}
required={required} required={required}
value={value && new Date(value)} value={value && new Date(value)}
selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`} selectedDateLabel={formattedDate => `Date picker, current is ${formattedDate}`}
/> />
); );
} }
@ -205,7 +205,7 @@ const GenericInput = ({
id={name} id={name}
hint={hint} hint={hint}
name={name} name={name}
onChange={(date) => { onChange={date => {
onChange({ onChange({
target: { name, value: formatISO(date, { representation: 'date' }), type }, target: { name, value: formatISO(date, { representation: 'date' }), type },
}); });
@ -214,7 +214,7 @@ const GenericInput = ({
placeholder={formattedPlaceholder} placeholder={formattedPlaceholder}
required={required} required={required}
selectedDate={selectedDate} selectedDate={selectedDate}
selectedDateLabel={(formattedDate) => `Date picker, current is ${formattedDate}`} selectedDateLabel={formattedDate => `Date picker, current is ${formattedDate}`}
/> />
); );
} }
@ -228,7 +228,7 @@ const GenericInput = ({
id={name} id={name}
hint={hint} hint={hint}
name={name} name={name}
onValueChange={(value) => { onValueChange={value => {
onChange({ target: { name, value: value ?? null, type } }); onChange({ target: { name, value: value ?? null, type } });
}} }}
placeholder={formattedPlaceholder} placeholder={formattedPlaceholder}
@ -291,7 +291,7 @@ const GenericInput = ({
defaultMessage: 'Show password', defaultMessage: 'Show password',
})} })}
onClick={() => { onClick={() => {
setShowPassword((prev) => !prev); setShowPassword(prev => !prev);
}} }}
style={{ style={{
border: 'none', border: 'none',
@ -330,7 +330,7 @@ const GenericInput = ({
id={name} id={name}
hint={hint} hint={hint}
name={name} name={name}
onChange={(value) => { onChange={value => {
onChange({ target: { name, value: value === '' ? null : value, type: 'select' } }); onChange({ target: { name, value: value === '' ? null : value, type: 'select' } });
}} }}
placeholder={formattedPlaceholder} placeholder={formattedPlaceholder}
@ -388,7 +388,7 @@ const GenericInput = ({
id={name} id={name}
hint={hint} hint={hint}
name={name} name={name}
onChange={(time) => { onChange={time => {
onChange({ target: { name, value: `${time}`, type } }); onChange({ target: { name, value: `${time}`, type } });
}} }}
onClear={() => { onClear={() => {

View File

@ -19,7 +19,9 @@ const defaultConfig = {
module.exports = (userConfig, { strapi }) => { module.exports = (userConfig, { strapi }) => {
const keys = strapi.server.app.keys; const keys = strapi.server.app.keys;
if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) { if (!isArray(keys) || isEmpty(keys) || keys.some(isEmpty)) {
throw new Error(`App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`); throw new Error(
`App keys are required. Please set app.keys in config/server.js (ex: keys: ['myKeyA', 'myKeyB'])`
);
} }
const config = defaultsDeep(defaultConfig, userConfig); const config = defaultsDeep(defaultConfig, userConfig);

View File

@ -47,10 +47,7 @@ const withDefaultPagination = (args, { defaults = {}, maxLimit = -1 } = {}) => {
const usePagePagination = !isNil(args.page) || !isNil(args.pageSize); const usePagePagination = !isNil(args.page) || !isNil(args.pageSize);
const useOffsetPagination = !isNil(args.start) || !isNil(args.limit); const useOffsetPagination = !isNil(args.start) || !isNil(args.limit);
const ensureValidValues = pipe( const ensureValidValues = pipe(ensureMinValues, ensureMaxValues(maxLimit));
ensureMinValues,
ensureMaxValues(maxLimit)
);
// If there is no pagination attribute, don't modify the payload // If there is no pagination attribute, don't modify the payload
if (!usePagePagination && !useOffsetPagination) { if (!usePagePagination && !useOffsetPagination) {

View File

@ -6,10 +6,7 @@ const fileExistsInPackages = require('../utils/fileExistsInPackages');
const getPluginList = require('../utils/getPluginList'); const getPluginList = require('../utils/getPluginList');
const packagesFolder = require('../utils/packagesFolder'); const packagesFolder = require('../utils/packagesFolder');
const pascalCase = flow( const pascalCase = flow(camelCase, upperFirst);
camelCase,
upperFirst
);
const prompts = [ const prompts = [
{ {

View File

@ -23,10 +23,7 @@ module.exports = ({ strapi }) => {
t.nonNull.list.field('data', { t.nonNull.list.field('data', {
type: nonNull(entityName), type: nonNull(entityName),
resolve: pipe( resolve: pipe(prop('nodes'), defaultTo([])),
prop('nodes'),
defaultTo([])
),
}); });
}, },
}); });

View File

@ -24,10 +24,7 @@ module.exports = ({ strapi }) => {
t.nonNull.list.field('data', { t.nonNull.list.field('data', {
type: nonNull(entityName), type: nonNull(entityName),
resolve: pipe( resolve: pipe(prop('nodes'), defaultTo([])),
prop('nodes'),
defaultTo([])
),
}); });
t.nonNull.field('meta', { t.nonNull.field('meta', {

View File

@ -140,7 +140,11 @@ const testData = {
id: 1, id: 1,
name: 'name', name: 'name',
subcomponotrepeatable: { id: 4, name: 'name' }, subcomponotrepeatable: { id: 4, name: 'name' },
subrepeatable: [{ id: 1, name: 'name' }, { id: 2, name: 'name' }, { id: 3, name: 'name' }], subrepeatable: [
{ id: 1, name: 'name' },
{ id: 2, name: 'name' },
{ id: 3, name: 'name' },
],
}, },
repeatable: [ repeatable: [
{ {

View File

@ -24,7 +24,10 @@ describe('I18n | Components | CMEditViewCopyLocale | utils', () => {
{ publishedAt: 'test', locale: 'it', id: 3 }, { publishedAt: 'test', locale: 'it', id: 3 },
]; ];
const expected = [{ label: 'French', value: 2 }, { label: 'Italian', value: 3 }]; const expected = [
{ label: 'French', value: 2 },
{ label: 'Italian', value: 3 },
];
expect(generateOptions(appLocales, currentLocale, localizations, permissions)).toEqual( expect(generateOptions(appLocales, currentLocale, localizations, permissions)).toEqual(
expected expected
@ -41,7 +44,10 @@ describe('I18n | Components | CMEditViewCopyLocale | utils', () => {
{ publishedAt: 'test', locale: 'fr', id: 2 }, { publishedAt: 'test', locale: 'fr', id: 2 },
]; ];
const expected = [{ label: 'English', value: 1 }, { label: 'French', value: 2 }]; const expected = [
{ label: 'English', value: 1 },
{ label: 'French', value: 2 },
];
const currentLocale = 'test'; const currentLocale = 'test';
expect(generateOptions(appLocales, currentLocale, localizations, permissions)).toEqual( expect(generateOptions(appLocales, currentLocale, localizations, permissions)).toEqual(
expected expected
@ -60,7 +66,10 @@ describe('I18n | Components | CMEditViewCopyLocale | utils', () => {
{ publishedAt: 'test', locale: 'it', id: 3 }, { publishedAt: 'test', locale: 'it', id: 3 },
]; ];
const expected = [{ label: 'English', value: 1 }, { label: 'Italian', value: 3 }]; const expected = [
{ label: 'English', value: 1 },
{ label: 'Italian', value: 3 },
];
expect(generateOptions(appLocales, currentLocale, localizations, permissions)).toEqual( expect(generateOptions(appLocales, currentLocale, localizations, permissions)).toEqual(
expected expected

View File

@ -50,7 +50,11 @@ const ActionWrapper = styled.div`
`; `;
const mapToLocaleName = (locales, localeCode) => const mapToLocaleName = (locales, localeCode) =>
get(locales.find(({ code }) => code === localeCode), 'name', localeCode); get(
locales.find(({ code }) => code === localeCode),
'name',
localeCode
);
const LocaleListCell = ({ localizations, locale: currentLocaleCode, id }) => { const LocaleListCell = ({ localizations, locale: currentLocaleCode, id }) => {
const locales = useSelector(selectI18NLocales); const locales = useSelector(selectI18NLocales);