mirror of
https://github.com/strapi/strapi.git
synced 2025-08-13 03:07:32 +00:00
Add tests
Signed-off-by: soupette <cyril.lpz@gmail.com>
This commit is contained in:
parent
7c8140491d
commit
2e56b8c9a9
@ -116,15 +116,12 @@ const LeftMenu = forwardRef(({ version, plugins }, ref) => {
|
|||||||
getModels,
|
getModels,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// console.log({ generalSectionLinks });
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const getLinksPermissions = async () => {
|
const getLinksPermissions = async () => {
|
||||||
const generalSectionLinksArrayOfPromises = generateArrayOfPromises(generalSectionLinks);
|
const generalSectionLinksArrayOfPromises = generateArrayOfPromises(generalSectionLinks);
|
||||||
const pluginsSectionLinksArrayOfPromises = generateArrayOfPromises(pluginsSectionLinks);
|
const pluginsSectionLinksArrayOfPromises = generateArrayOfPromises(pluginsSectionLinks);
|
||||||
|
|
||||||
await getModels();
|
await getModels();
|
||||||
// TODO check permissions form models
|
|
||||||
|
|
||||||
const generalSectionResults = await Promise.all(generalSectionLinksArrayOfPromises);
|
const generalSectionResults = await Promise.all(generalSectionLinksArrayOfPromises);
|
||||||
const pluginsSectionResults = await Promise.all(pluginsSectionLinksArrayOfPromises);
|
const pluginsSectionResults = await Promise.all(pluginsSectionLinksArrayOfPromises);
|
||||||
|
@ -57,7 +57,7 @@ function SettingsPage() {
|
|||||||
[pluginsGlobalLinks]
|
[pluginsGlobalLinks]
|
||||||
);
|
);
|
||||||
|
|
||||||
const pluginsLinksRoute = useMemo(() => {
|
const pluginsLinksRoutes = useMemo(() => {
|
||||||
return menu.reduce((acc, current) => {
|
return menu.reduce((acc, current) => {
|
||||||
if (current.id === 'global') {
|
if (current.id === 'global') {
|
||||||
return acc;
|
return acc;
|
||||||
@ -126,7 +126,7 @@ function SettingsPage() {
|
|||||||
<Route exact path={`${settingsBaseURL}/webhooks`} component={ListView} />
|
<Route exact path={`${settingsBaseURL}/webhooks`} component={ListView} />
|
||||||
<Route exact path={`${settingsBaseURL}/webhooks/:id`} component={EditView} />
|
<Route exact path={`${settingsBaseURL}/webhooks/:id`} component={EditView} />
|
||||||
{createdRoutes}
|
{createdRoutes}
|
||||||
{pluginsLinksRoute}
|
{pluginsLinksRoutes}
|
||||||
<Route path={`${settingsBaseURL}/:pluginId`} component={SettingDispatcher} />
|
<Route path={`${settingsBaseURL}/:pluginId`} component={SettingDispatcher} />
|
||||||
</Switch>
|
</Switch>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,17 +1,15 @@
|
|||||||
import { useContext, useEffect, useReducer } from 'react';
|
import { useContext, useEffect, useReducer } from 'react';
|
||||||
import { useIntl } from 'react-intl';
|
|
||||||
import { useGlobalContext, hasPermissions, UserContext } from 'strapi-helper-plugin';
|
import { useGlobalContext, hasPermissions, UserContext } from 'strapi-helper-plugin';
|
||||||
|
|
||||||
import reducer, { initialState } from './reducer';
|
import reducer, { initialState } from './reducer';
|
||||||
import init from './init';
|
import init from './init';
|
||||||
|
|
||||||
const useSettingsMenu = () => {
|
const useSettingsMenu = () => {
|
||||||
const { formatMessage } = useIntl();
|
|
||||||
const permissions = useContext(UserContext);
|
const permissions = useContext(UserContext);
|
||||||
const { plugins, settingsBaseURL } = useGlobalContext();
|
const { plugins } = useGlobalContext();
|
||||||
|
|
||||||
const [{ isLoading, menu }, dispatch] = useReducer(reducer, initialState, () =>
|
const [{ isLoading, menu }, dispatch] = useReducer(reducer, initialState, () =>
|
||||||
init(initialState, plugins, formatMessage, settingsBaseURL)
|
init(initialState, plugins)
|
||||||
);
|
);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
import { retrieveGlobalLinks, retrievePluginsMenu, sortLinks } from '../../utils';
|
import { retrieveGlobalLinks, retrievePluginsMenu, sortLinks } from '../../utils';
|
||||||
|
import { SETTINGS_BASE_URL } from '../../config';
|
||||||
import formatLinks from './utils/formatLinks';
|
import formatLinks from './utils/formatLinks';
|
||||||
|
|
||||||
const init = (initialState, plugins, formatMessage, settingsBaseURL) => {
|
const init = (initialState, plugins) => {
|
||||||
// Retrieve the links that will be injected into the global section
|
// Retrieve the links that will be injected into the global section
|
||||||
const pluginsGlobalLinks = retrieveGlobalLinks(plugins);
|
const pluginsGlobalLinks = retrieveGlobalLinks(plugins);
|
||||||
// Sort the links by name
|
// Sort the links by name
|
||||||
const sortedGlobalLinks = sortLinks([
|
const sortedGlobalLinks = sortLinks([
|
||||||
{
|
{
|
||||||
title: formatMessage({ id: 'Settings.webhooks.title' }),
|
title: { id: 'Settings.webhooks.title' },
|
||||||
to: `${settingsBaseURL}/webhooks`,
|
to: `${SETTINGS_BASE_URL}/webhooks`,
|
||||||
name: 'webhooks',
|
name: 'webhooks',
|
||||||
isDisplayed: false,
|
isDisplayed: false,
|
||||||
permissions: [
|
permissions: [
|
||||||
{ action: 'admin::webhook.create', subject: null },
|
{ action: 'admin::webhooks.create', subject: null },
|
||||||
{ action: 'admin::webhook.read', subject: null },
|
{ action: 'admin::webhooks.read', subject: null },
|
||||||
{ action: 'admin::webhook.update', subject: null },
|
{ action: 'admin::webhooks.update', subject: null },
|
||||||
{ action: 'admin::webhook.delete', subject: null },
|
{ action: 'admin::webhooks.delete', subject: null },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
...pluginsGlobalLinks,
|
...pluginsGlobalLinks,
|
||||||
@ -35,8 +36,8 @@ const init = (initialState, plugins, formatMessage, settingsBaseURL) => {
|
|||||||
title: 'Settings.permissions',
|
title: 'Settings.permissions',
|
||||||
links: [
|
links: [
|
||||||
{
|
{
|
||||||
title: formatMessage({ id: 'Settings.permissions.menu.link.roles.label' }),
|
title: { id: 'Settings.permissions.menu.link.roles.label' },
|
||||||
to: `${settingsBaseURL}/roles`,
|
to: `${SETTINGS_BASE_URL}/roles`,
|
||||||
name: 'roles',
|
name: 'roles',
|
||||||
isDisplayed: false,
|
isDisplayed: false,
|
||||||
permissions: [
|
permissions: [
|
||||||
@ -47,9 +48,9 @@ const init = (initialState, plugins, formatMessage, settingsBaseURL) => {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: formatMessage({ id: 'Settings.permissions.menu.link.users.label' }),
|
title: { id: 'Settings.permissions.menu.link.users.label' },
|
||||||
// Init the search params directly
|
// Init the search params directly
|
||||||
to: `${settingsBaseURL}/users?pageSize=10&page=1&_sort=firstname%3AASC`,
|
to: `${SETTINGS_BASE_URL}/users?pageSize=10&page=1&_sort=firstname%3AASC`,
|
||||||
name: 'users',
|
name: 'users',
|
||||||
isDisplayed: false,
|
isDisplayed: false,
|
||||||
permissions: [
|
permissions: [
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
import formatLinks from '../formatLinks';
|
||||||
|
|
||||||
|
describe('ADMIN | hooks | useSettingsMenu | utils | formatLinks', () => {
|
||||||
|
it('should add the isDisplayed key to all sections links', () => {
|
||||||
|
const menu = [
|
||||||
|
{
|
||||||
|
links: [{ name: 'link 1' }, { name: 'link 2' }],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
links: [{ name: 'link 3' }, { name: 'link 4' }],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const expected = [
|
||||||
|
{
|
||||||
|
links: [
|
||||||
|
{ name: 'link 1', isDisplayed: false },
|
||||||
|
{ name: 'link 2', isDisplayed: false },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
links: [
|
||||||
|
{ name: 'link 3', isDisplayed: false },
|
||||||
|
{ name: 'link 4', isDisplayed: false },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
expect(formatLinks(menu)).toEqual(expected);
|
||||||
|
});
|
||||||
|
});
|
@ -248,38 +248,38 @@ const data = {
|
|||||||
// },
|
// },
|
||||||
|
|
||||||
// Admin webhooks
|
// Admin webhooks
|
||||||
// {
|
{
|
||||||
// action: 'admin::webhooks.create',
|
action: 'admin::webhooks.create',
|
||||||
// subject: null,
|
subject: null,
|
||||||
// fields: null,
|
fields: null,
|
||||||
// conditions: [],
|
conditions: [],
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// action: 'admin::webhooks.read',
|
action: 'admin::webhooks.read',
|
||||||
// subject: null,
|
subject: null,
|
||||||
// fields: null,
|
fields: null,
|
||||||
// conditions: [],
|
conditions: [],
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// action: 'admin::webhooks.update',
|
action: 'admin::webhooks.update',
|
||||||
// subject: null,
|
subject: null,
|
||||||
// fields: null,
|
fields: null,
|
||||||
// conditions: [],
|
conditions: [],
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// action: 'admin::webhooks.delete',
|
action: 'admin::webhooks.delete',
|
||||||
// subject: null,
|
subject: null,
|
||||||
// fields: null,
|
fields: null,
|
||||||
// conditions: [],
|
conditions: [],
|
||||||
// },
|
},
|
||||||
|
|
||||||
// // Admin users
|
// // Admin users
|
||||||
// {
|
{
|
||||||
// action: 'admin::users.create',
|
action: 'admin::users.create',
|
||||||
// subject: null,
|
subject: null,
|
||||||
// fields: null,
|
fields: null,
|
||||||
// conditions: [],
|
conditions: [],
|
||||||
// },
|
},
|
||||||
// {
|
// {
|
||||||
// action: 'admin::users.read',
|
// action: 'admin::users.read',
|
||||||
// subject: null,
|
// subject: null,
|
||||||
|
@ -55,8 +55,6 @@ export default strapi => {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
mainComponent: SettingsPage,
|
|
||||||
},
|
},
|
||||||
trads,
|
trads,
|
||||||
menu: {
|
menu: {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user