refactor: use camel case for files and dirs (#817)
|
Before Width: | Height: | Size: 593 B After Width: | Height: | Size: 593 B |
|
Before Width: | Height: | Size: 229 B After Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 455 B After Width: | Height: | Size: 455 B |
|
Before Width: | Height: | Size: 505 B After Width: | Height: | Size: 505 B |
|
Before Width: | Height: | Size: 454 KiB After Width: | Height: | Size: 454 KiB |
|
Before Width: | Height: | Size: 593 B After Width: | Height: | Size: 593 B |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 341 B After Width: | Height: | Size: 341 B |
|
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 81 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
@ -22,7 +22,7 @@ import {
|
|||||||
} from '../../../../constants/featureToggleTypes';
|
} from '../../../../constants/featureToggleTypes';
|
||||||
|
|
||||||
import styles from '../ReportToggleList.module.scss';
|
import styles from '../ReportToggleList.module.scss';
|
||||||
import { getTogglePath } from '../../../../utils/route-path-helpers';
|
import { getTogglePath } from '../../../../utils/routePathHelpers';
|
||||||
|
|
||||||
const ReportToggleListItem = ({
|
const ReportToggleListItem = ({
|
||||||
name,
|
name,
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import {
|
|||||||
sortFeaturesByExpiredAtDescending,
|
sortFeaturesByExpiredAtDescending,
|
||||||
sortFeaturesByStatusAscending,
|
sortFeaturesByStatusAscending,
|
||||||
sortFeaturesByStatusDescending,
|
sortFeaturesByStatusDescending,
|
||||||
} from '../utils';
|
} from './utils';
|
||||||
|
|
||||||
const getTestData = () => [
|
const getTestData = () => [
|
||||||
{
|
{
|
||||||
@ -9,7 +9,7 @@ import jiraIcon from '../../../assets/icons/jira.svg';
|
|||||||
import webhooksIcon from '../../../assets/icons/webhooks.svg';
|
import webhooksIcon from '../../../assets/icons/webhooks.svg';
|
||||||
import teamsIcon from '../../../assets/icons/teams.svg';
|
import teamsIcon from '../../../assets/icons/teams.svg';
|
||||||
import dataDogIcon from '../../../assets/icons/datadog.svg';
|
import dataDogIcon from '../../../assets/icons/datadog.svg';
|
||||||
import { formatAssetPath } from '../../../utils/format-path';
|
import { formatAssetPath } from 'utils/formatPath';
|
||||||
import useAddons from '../../../hooks/api/getters/useAddons/useAddons';
|
import useAddons from '../../../hooks/api/getters/useAddons/useAddons';
|
||||||
|
|
||||||
const style: React.CSSProperties = {
|
const style: React.CSSProperties = {
|
||||||
|
|||||||
@ -21,7 +21,7 @@ import AccessContext from '../../../../contexts/AccessContext';
|
|||||||
import { IAddon } from '../../../../interfaces/addons';
|
import { IAddon } from '../../../../interfaces/addons';
|
||||||
import PermissionIconButton from '../../../common/PermissionIconButton/PermissionIconButton';
|
import PermissionIconButton from '../../../common/PermissionIconButton/PermissionIconButton';
|
||||||
import Dialogue from '../../../common/Dialogue';
|
import Dialogue from '../../../common/Dialogue';
|
||||||
import { formatUnknownError } from '../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
interface IConfigureAddonsProps {
|
interface IConfigureAddonsProps {
|
||||||
getAddonIcon: (name: string) => ReactElement;
|
getAddonIcon: (name: string) => ReactElement;
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { ApiTokenList } from '../api-token/ApiTokenList/ApiTokenList';
|
import { ApiTokenList } from '../apiToken/ApiTokenList/ApiTokenList';
|
||||||
import AdminMenu from '../menu/AdminMenu';
|
import AdminMenu from '../menu/AdminMenu';
|
||||||
import ConditionallyRender from '../../common/ConditionallyRender';
|
import ConditionallyRender from '../../common/ConditionallyRender';
|
||||||
import AccessContext from '../../../contexts/AccessContext';
|
import AccessContext from '../../../contexts/AccessContext';
|
||||||
|
|||||||
@ -31,7 +31,7 @@ import { CREATE_API_TOKEN_BUTTON } from '../../../../testIds';
|
|||||||
import { Alert } from '@material-ui/lab';
|
import { Alert } from '@material-ui/lab';
|
||||||
import copy from 'copy-to-clipboard';
|
import copy from 'copy-to-clipboard';
|
||||||
import { useLocationSettings } from '../../../../hooks/useLocationSettings';
|
import { useLocationSettings } from '../../../../hooks/useLocationSettings';
|
||||||
import { formatDateYMD } from '../../../../utils/format-date';
|
import { formatDateYMD } from 'utils/formatDate';
|
||||||
|
|
||||||
interface IApiToken {
|
interface IApiToken {
|
||||||
createdAt: Date;
|
createdAt: Date;
|
||||||
@ -10,7 +10,7 @@ import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
|||||||
import { ConfirmToken } from '../ConfirmToken/ConfirmToken';
|
import { ConfirmToken } from '../ConfirmToken/ConfirmToken';
|
||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { scrollToTop } from '../../../common/util';
|
import { scrollToTop } from '../../../common/util';
|
||||||
import { formatUnknownError } from '../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
export const CreateApiToken = () => {
|
export const CreateApiToken = () => {
|
||||||
const { setToastApiError } = useToast();
|
const { setToastApiError } = useToast();
|
||||||
@ -14,8 +14,8 @@ import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
|
|||||||
import useAuthSettings from '../../../../hooks/api/getters/useAuthSettings/useAuthSettings';
|
import useAuthSettings from '../../../../hooks/api/getters/useAuthSettings/useAuthSettings';
|
||||||
import useAuthSettingsApi from '../../../../hooks/api/actions/useAuthSettingsApi/useAuthSettingsApi';
|
import useAuthSettingsApi from '../../../../hooks/api/actions/useAuthSettingsApi/useAuthSettingsApi';
|
||||||
import useToast from '../../../../hooks/useToast';
|
import useToast from '../../../../hooks/useToast';
|
||||||
import { formatUnknownError } from '../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { removeEmptyStringFields } from '../../../../utils/remove-empty-string-fields';
|
import { removeEmptyStringFields } from 'utils/removeEmptyStringFields';
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|||||||
@ -15,8 +15,8 @@ import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
|
|||||||
import useAuthSettingsApi from '../../../../hooks/api/actions/useAuthSettingsApi/useAuthSettingsApi';
|
import useAuthSettingsApi from '../../../../hooks/api/actions/useAuthSettingsApi/useAuthSettingsApi';
|
||||||
import useAuthSettings from '../../../../hooks/api/getters/useAuthSettings/useAuthSettings';
|
import useAuthSettings from '../../../../hooks/api/getters/useAuthSettings/useAuthSettings';
|
||||||
import useToast from '../../../../hooks/useToast';
|
import useToast from '../../../../hooks/useToast';
|
||||||
import { formatUnknownError } from '../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { removeEmptyStringFields } from '../../../../utils/remove-empty-string-fields';
|
import { removeEmptyStringFields } from 'utils/removeEmptyStringFields';
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import useAuthSettingsApi, {
|
|||||||
ISimpleAuthSettings,
|
ISimpleAuthSettings,
|
||||||
} from '../../../../hooks/api/actions/useAuthSettingsApi/useAuthSettingsApi';
|
} from '../../../../hooks/api/actions/useAuthSettingsApi/useAuthSettingsApi';
|
||||||
import useToast from '../../../../hooks/useToast';
|
import useToast from '../../../../hooks/useToast';
|
||||||
import { formatUnknownError } from '../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
export const PasswordAuth = () => {
|
export const PasswordAuth = () => {
|
||||||
const { setToastData, setToastApiError } = useToast();
|
const { setToastData, setToastApiError } = useToast();
|
||||||
|
|||||||
@ -15,8 +15,8 @@ import useToast from '../../../../hooks/useToast';
|
|||||||
import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
|
import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
|
||||||
import useAuthSettings from '../../../../hooks/api/getters/useAuthSettings/useAuthSettings';
|
import useAuthSettings from '../../../../hooks/api/getters/useAuthSettings/useAuthSettings';
|
||||||
import useAuthSettingsApi from '../../../../hooks/api/actions/useAuthSettingsApi/useAuthSettingsApi';
|
import useAuthSettingsApi from '../../../../hooks/api/actions/useAuthSettingsApi/useAuthSettingsApi';
|
||||||
import { formatUnknownError } from '../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { removeEmptyStringFields } from '../../../../utils/remove-empty-string-fields';
|
import { removeEmptyStringFields } from 'utils/removeEmptyStringFields';
|
||||||
|
|
||||||
const initialState = {
|
const initialState = {
|
||||||
enabled: false,
|
enabled: false,
|
||||||
|
|||||||
@ -11,11 +11,11 @@ import OpenInNew from '@material-ui/icons/OpenInNew';
|
|||||||
import PageContent from '../../common/PageContent';
|
import PageContent from '../../common/PageContent';
|
||||||
import HeaderTitle from '../../common/HeaderTitle';
|
import HeaderTitle from '../../common/HeaderTitle';
|
||||||
import ConditionallyRender from '../../common/ConditionallyRender';
|
import ConditionallyRender from '../../common/ConditionallyRender';
|
||||||
import { formatApiPath } from '../../../utils/format-path';
|
import { formatApiPath } from 'utils/formatPath';
|
||||||
import useInvoices from '../../../hooks/api/getters/useInvoices/useInvoices';
|
import useInvoices from '../../../hooks/api/getters/useInvoices/useInvoices';
|
||||||
import { IInvoice } from '../../../interfaces/invoice';
|
import { IInvoice } from '../../../interfaces/invoice';
|
||||||
import { useLocationSettings } from '../../../hooks/useLocationSettings';
|
import { useLocationSettings } from '../../../hooks/useLocationSettings';
|
||||||
import { formatDateYMD } from '../../../utils/format-date';
|
import { formatDateYMD } from 'utils/formatDate';
|
||||||
|
|
||||||
const PORTAL_URL = formatApiPath('api/admin/invoices/portal');
|
const PORTAL_URL = formatApiPath('api/admin/invoices/portal');
|
||||||
|
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
|||||||
import useToast from 'hooks/useToast';
|
import useToast from 'hooks/useToast';
|
||||||
import { CreateButton } from 'component/common/CreateButton/CreateButton';
|
import { CreateButton } from 'component/common/CreateButton/CreateButton';
|
||||||
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const CreateProjectRole = () => {
|
const CreateProjectRole = () => {
|
||||||
const { setToastData, setToastApiError } = useToast();
|
const { setToastData, setToastApiError } = useToast();
|
||||||
@ -10,7 +10,7 @@ import { IPermission } from 'interfaces/user';
|
|||||||
import { useParams, useHistory } from 'react-router-dom';
|
import { useParams, useHistory } from 'react-router-dom';
|
||||||
import useProjectRoleForm from '../hooks/useProjectRoleForm';
|
import useProjectRoleForm from '../hooks/useProjectRoleForm';
|
||||||
import ProjectRoleForm from '../ProjectRoleForm/ProjectRoleForm';
|
import ProjectRoleForm from '../ProjectRoleForm/ProjectRoleForm';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const EditProjectRole = () => {
|
const EditProjectRole = () => {
|
||||||
const { uiConfig } = useUiConfig();
|
const { uiConfig } = useUiConfig();
|
||||||
@ -16,7 +16,7 @@ import IRole, { IProjectRole } from '../../../../../interfaces/role';
|
|||||||
import useProjectRolesApi from '../../../../../hooks/api/actions/useProjectRolesApi/useProjectRolesApi';
|
import useProjectRolesApi from '../../../../../hooks/api/actions/useProjectRolesApi/useProjectRolesApi';
|
||||||
import useToast from '../../../../../hooks/useToast';
|
import useToast from '../../../../../hooks/useToast';
|
||||||
import ProjectRoleDeleteConfirm from '../ProjectRoleDeleteConfirm/ProjectRoleDeleteConfirm';
|
import ProjectRoleDeleteConfirm from '../ProjectRoleDeleteConfirm/ProjectRoleDeleteConfirm';
|
||||||
import { formatUnknownError } from '../../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { useStyles } from './ProjectRoleListItem/ProjectRoleListItem.styles';
|
import { useStyles } from './ProjectRoleListItem/ProjectRoleListItem.styles';
|
||||||
|
|
||||||
const ROOTROLE = 'root';
|
const ROOTROLE = 'root';
|
||||||
@ -10,7 +10,7 @@ import { useState } from 'react';
|
|||||||
import { scrollToTop } from '../../../common/util';
|
import { scrollToTop } from '../../../common/util';
|
||||||
import { CreateButton } from 'component/common/CreateButton/CreateButton';
|
import { CreateButton } from 'component/common/CreateButton/CreateButton';
|
||||||
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
||||||
import { formatUnknownError } from '../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const CreateUser = () => {
|
const CreateUser = () => {
|
||||||
const { setToastApiError } = useToast();
|
const { setToastApiError } = useToast();
|
||||||
|
|||||||
@ -11,7 +11,7 @@ import useAdminUsersApi from 'hooks/api/actions/useAdminUsersApi/useAdminUsersAp
|
|||||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||||
import useUserInfo from 'hooks/api/getters/useUserInfo/useUserInfo';
|
import useUserInfo from 'hooks/api/getters/useUserInfo/useUserInfo';
|
||||||
import useToast from 'hooks/useToast';
|
import useToast from 'hooks/useToast';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const EditUser = () => {
|
const EditUser = () => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import { IUser } from '../../../../../interfaces/user';
|
|||||||
import { useStyles } from './UserListItem.styles';
|
import { useStyles } from './UserListItem.styles';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
import { ILocationSettings } from '../../../../../hooks/useLocationSettings';
|
import { ILocationSettings } from '../../../../../hooks/useLocationSettings';
|
||||||
import { formatDateYMD } from '../../../../../utils/format-date';
|
import { formatDateYMD } from 'utils/formatDate';
|
||||||
|
|
||||||
interface IUserListItemProps {
|
interface IUserListItemProps {
|
||||||
user: IUser;
|
user: IUser;
|
||||||
|
|||||||
@ -24,7 +24,7 @@ import { IUser } from '../../../../interfaces/user';
|
|||||||
import IRole from '../../../../interfaces/role';
|
import IRole from '../../../../interfaces/role';
|
||||||
import useToast from '../../../../hooks/useToast';
|
import useToast from '../../../../hooks/useToast';
|
||||||
import { useLocationSettings } from '../../../../hooks/useLocationSettings';
|
import { useLocationSettings } from '../../../../hooks/useLocationSettings';
|
||||||
import { formatUnknownError } from '../../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { useStyles } from './UserListItem/UserListItem.styles';
|
import { useStyles } from './UserListItem/UserListItem.styles';
|
||||||
|
|
||||||
const UsersList = () => {
|
const UsersList = () => {
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
import { ThemeProvider } from '@material-ui/core';
|
import { ThemeProvider } from '@material-ui/core';
|
||||||
import { ApplicationEdit } from '../ApplicationEdit/ApplicationEdit';
|
import { ApplicationEdit } from './ApplicationEdit';
|
||||||
import renderer from 'react-test-renderer';
|
import renderer from 'react-test-renderer';
|
||||||
import { MemoryRouter } from 'react-router-dom';
|
import { MemoryRouter } from 'react-router-dom';
|
||||||
import { ADMIN } from '../../providers/AccessProvider/permissions';
|
import { ADMIN } from '../../providers/AccessProvider/permissions';
|
||||||
import theme from '../../../themes/main-theme';
|
import theme from '../../../themes/mainTheme';
|
||||||
import AccessProvider from '../../providers/AccessProvider/AccessProvider';
|
import AccessProvider from '../../providers/AccessProvider/AccessProvider';
|
||||||
import UIProvider from '../../providers/UIProvider/UIProvider';
|
import UIProvider from '../../providers/UIProvider/UIProvider';
|
||||||
|
|
||||||
@ -24,8 +24,8 @@ import { useHistory, useParams } from 'react-router-dom';
|
|||||||
import { useLocationSettings } from '../../../hooks/useLocationSettings';
|
import { useLocationSettings } from '../../../hooks/useLocationSettings';
|
||||||
import useToast from '../../../hooks/useToast';
|
import useToast from '../../../hooks/useToast';
|
||||||
import PermissionButton from '../../common/PermissionButton/PermissionButton';
|
import PermissionButton from '../../common/PermissionButton/PermissionButton';
|
||||||
import { formatDateYMD } from '../../../utils/format-date';
|
import { formatDateYMD } from 'utils/formatDate';
|
||||||
import { formatUnknownError } from '../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
export const ApplicationEdit = () => {
|
export const ApplicationEdit = () => {
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
import { ChangeEvent, useState } from 'react';
|
import { ChangeEvent, useState } from 'react';
|
||||||
import { Grid, TextField } from '@material-ui/core';
|
import { Grid, TextField } from '@material-ui/core';
|
||||||
import { useCommonStyles } from '../../../common.styles';
|
import { useCommonStyles } from '../../../common.styles';
|
||||||
import icons from '../icon-names';
|
import icons from 'component/application/iconNames';
|
||||||
import GeneralSelect from '../../common/GeneralSelect/GeneralSelect';
|
import GeneralSelect from '../../common/GeneralSelect/GeneralSelect';
|
||||||
import useApplicationsApi from '../../../hooks/api/actions/useApplicationsApi/useApplicationsApi';
|
import useApplicationsApi from '../../../hooks/api/actions/useApplicationsApi/useApplicationsApi';
|
||||||
import useToast from '../../../hooks/useToast';
|
import useToast from '../../../hooks/useToast';
|
||||||
import { IApplication } from '../../../interfaces/application';
|
import { IApplication } from '../../../interfaces/application';
|
||||||
import useApplication from '../../../hooks/api/getters/useApplication/useApplication';
|
import useApplication from '../../../hooks/api/getters/useApplication/useApplication';
|
||||||
import { formatUnknownError } from '../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
interface IApplicationUpdateProps {
|
interface IApplicationUpdateProps {
|
||||||
application: IApplication;
|
application: IApplication;
|
||||||
|
|||||||
@ -20,10 +20,10 @@ import {
|
|||||||
CREATE_STRATEGY,
|
CREATE_STRATEGY,
|
||||||
} from '../../providers/AccessProvider/permissions';
|
} from '../../providers/AccessProvider/permissions';
|
||||||
import ConditionallyRender from '../../common/ConditionallyRender/ConditionallyRender';
|
import ConditionallyRender from '../../common/ConditionallyRender/ConditionallyRender';
|
||||||
import { getTogglePath } from '../../../utils/route-path-helpers';
|
import { getTogglePath } from 'utils/routePathHelpers';
|
||||||
import useApplication from '../../../hooks/api/getters/useApplication/useApplication';
|
import useApplication from '../../../hooks/api/getters/useApplication/useApplication';
|
||||||
import AccessContext from '../../../contexts/AccessContext';
|
import AccessContext from '../../../contexts/AccessContext';
|
||||||
import { formatDateYMDHMS } from '../../../utils/format-date';
|
import { formatDateYMDHMS } from 'utils/formatDate';
|
||||||
import { useLocationSettings } from '../../../hooks/useLocationSettings';
|
import { useLocationSettings } from '../../../hooks/useLocationSettings';
|
||||||
|
|
||||||
export const ApplicationView = () => {
|
export const ApplicationView = () => {
|
||||||
|
|||||||
@ -1,64 +0,0 @@
|
|||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
||||||
|
|
||||||
exports[`renders correctly if no application 1`] = `
|
|
||||||
<div>
|
|
||||||
<p>
|
|
||||||
Loading...
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-root MuiLinearProgress-colorPrimary MuiLinearProgress-indeterminate"
|
|
||||||
role="progressbar"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-bar MuiLinearProgress-barColorPrimary MuiLinearProgress-bar1Indeterminate"
|
|
||||||
style={Object {}}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-bar MuiLinearProgress-bar2Indeterminate MuiLinearProgress-barColorPrimary"
|
|
||||||
style={Object {}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`renders correctly with permissions 1`] = `
|
|
||||||
<div>
|
|
||||||
<p>
|
|
||||||
Loading...
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-root MuiLinearProgress-colorPrimary MuiLinearProgress-indeterminate"
|
|
||||||
role="progressbar"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-bar MuiLinearProgress-barColorPrimary MuiLinearProgress-bar1Indeterminate"
|
|
||||||
style={Object {}}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-bar MuiLinearProgress-bar2Indeterminate MuiLinearProgress-barColorPrimary"
|
|
||||||
style={Object {}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
|
|
||||||
exports[`renders correctly without permission 1`] = `
|
|
||||||
<div>
|
|
||||||
<p>
|
|
||||||
Loading...
|
|
||||||
</p>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-root MuiLinearProgress-colorPrimary MuiLinearProgress-indeterminate"
|
|
||||||
role="progressbar"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-bar MuiLinearProgress-barColorPrimary MuiLinearProgress-bar1Indeterminate"
|
|
||||||
style={Object {}}
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
className="MuiLinearProgress-bar MuiLinearProgress-bar2Indeterminate MuiLinearProgress-barColorPrimary"
|
|
||||||
style={Object {}}
|
|
||||||
/>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
@ -1,155 +0,0 @@
|
|||||||
import { ThemeProvider } from '@material-ui/core';
|
|
||||||
import { ApplicationEdit } from '../ApplicationEdit/ApplicationEdit';
|
|
||||||
import renderer from 'react-test-renderer';
|
|
||||||
import { MemoryRouter } from 'react-router-dom';
|
|
||||||
import { ADMIN } from '../../providers/AccessProvider/permissions';
|
|
||||||
import theme from '../../../themes/main-theme';
|
|
||||||
import AccessProvider from '../../providers/AccessProvider/AccessProvider';
|
|
||||||
import UIProvider from '../../providers/UIProvider/UIProvider';
|
|
||||||
|
|
||||||
test('renders correctly if no application', () => {
|
|
||||||
const tree = renderer
|
|
||||||
.create(
|
|
||||||
<AccessProvider permissions={[{ permission: ADMIN }]}>
|
|
||||||
<ThemeProvider theme={theme}>
|
|
||||||
<UIProvider>
|
|
||||||
<MemoryRouter initialEntries={['/test']}>
|
|
||||||
<ApplicationEdit
|
|
||||||
fetchApplication={() => Promise.resolve({})}
|
|
||||||
storeApplicationMetaData={jest.fn()}
|
|
||||||
deleteApplication={jest.fn()}
|
|
||||||
locationSettings={{ locale: 'en-GB' }}
|
|
||||||
/>
|
|
||||||
</MemoryRouter>
|
|
||||||
</UIProvider>
|
|
||||||
</ThemeProvider>
|
|
||||||
</AccessProvider>
|
|
||||||
)
|
|
||||||
.toJSON();
|
|
||||||
|
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('renders correctly without permission', () => {
|
|
||||||
const tree = renderer
|
|
||||||
.create(
|
|
||||||
<MemoryRouter>
|
|
||||||
<ThemeProvider theme={theme}>
|
|
||||||
<UIProvider>
|
|
||||||
<AccessProvider permissions={[{ permission: ADMIN }]}>
|
|
||||||
<ApplicationEdit
|
|
||||||
fetchApplication={() => Promise.resolve({})}
|
|
||||||
storeApplicationMetaData={jest.fn()}
|
|
||||||
deleteApplication={jest.fn()}
|
|
||||||
application={{
|
|
||||||
appName: 'test-app',
|
|
||||||
instances: [
|
|
||||||
{
|
|
||||||
instanceId: 'instance-1',
|
|
||||||
clientIp: '123.123.123.123',
|
|
||||||
lastSeen: '2017-02-23T15:56:49',
|
|
||||||
sdkVersion: '4.0',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
strategies: [
|
|
||||||
{
|
|
||||||
name: 'StrategyA',
|
|
||||||
description: 'A description',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'StrategyB',
|
|
||||||
description: 'B description',
|
|
||||||
notFound: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
seenToggles: [
|
|
||||||
{
|
|
||||||
name: 'ToggleA',
|
|
||||||
description: 'this is A toggle',
|
|
||||||
enabled: true,
|
|
||||||
project: 'default',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'ToggleB',
|
|
||||||
description: 'this is B toggle',
|
|
||||||
enabled: false,
|
|
||||||
notFound: true,
|
|
||||||
project: 'default',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
url: 'http://example.org',
|
|
||||||
description: 'app description',
|
|
||||||
}}
|
|
||||||
locationSettings={{ locale: 'en-GB' }}
|
|
||||||
/>
|
|
||||||
</AccessProvider>
|
|
||||||
</UIProvider>
|
|
||||||
</ThemeProvider>
|
|
||||||
</MemoryRouter>
|
|
||||||
)
|
|
||||||
.toJSON();
|
|
||||||
|
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
|
|
||||||
test('renders correctly with permissions', () => {
|
|
||||||
const tree = renderer
|
|
||||||
.create(
|
|
||||||
<MemoryRouter>
|
|
||||||
<ThemeProvider theme={theme}>
|
|
||||||
<UIProvider>
|
|
||||||
<AccessProvider permissions={[{ permission: ADMIN }]}>
|
|
||||||
<ApplicationEdit
|
|
||||||
fetchApplication={() => Promise.resolve({})}
|
|
||||||
storeApplicationMetaData={jest.fn()}
|
|
||||||
deleteApplication={jest.fn()}
|
|
||||||
application={{
|
|
||||||
appName: 'test-app',
|
|
||||||
instances: [
|
|
||||||
{
|
|
||||||
instanceId: 'instance-1',
|
|
||||||
clientIp: '123.123.123.123',
|
|
||||||
lastSeen: '2017-02-23T15:56:49',
|
|
||||||
sdkVersion: '4.0',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
strategies: [
|
|
||||||
{
|
|
||||||
name: 'StrategyA',
|
|
||||||
description: 'A description',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'StrategyB',
|
|
||||||
description: 'B description',
|
|
||||||
notFound: true,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
seenToggles: [
|
|
||||||
{
|
|
||||||
name: 'ToggleA',
|
|
||||||
description: 'this is A toggle',
|
|
||||||
enabled: true,
|
|
||||||
project: 'default',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: 'ToggleB',
|
|
||||||
description: 'this is B toggle',
|
|
||||||
enabled: false,
|
|
||||||
notFound: true,
|
|
||||||
project: 'default',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
url: 'http://example.org',
|
|
||||||
description: 'app description',
|
|
||||||
}}
|
|
||||||
locationSettings={{ locale: 'en-GB' }}
|
|
||||||
/>
|
|
||||||
</AccessProvider>
|
|
||||||
</UIProvider>
|
|
||||||
</ThemeProvider>
|
|
||||||
</MemoryRouter>
|
|
||||||
)
|
|
||||||
.toJSON();
|
|
||||||
|
|
||||||
expect(tree).toMatchSnapshot();
|
|
||||||
});
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
import { IConstraint } from 'interfaces/strategy';
|
import { IConstraint } from 'interfaces/strategy';
|
||||||
import { CURRENT_TIME_CONTEXT_FIELD } from 'component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditHeader/ConstraintAccordionEditHeader';
|
import { CURRENT_TIME_CONTEXT_FIELD } from 'component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditHeader/ConstraintAccordionEditHeader';
|
||||||
import { formatDateYMDHMS } from 'utils/format-date';
|
import { formatDateYMDHMS } from 'utils/formatDate';
|
||||||
import { ILocationSettings } from 'hooks/useLocationSettings';
|
import { ILocationSettings } from 'hooks/useLocationSettings';
|
||||||
|
|
||||||
export const formatConstraintValuesOrValue = (
|
export const formatConstraintValuesOrValue = (
|
||||||
|
|||||||
@ -12,7 +12,7 @@ import {
|
|||||||
import { cleanConstraint } from 'utils/cleanConstraint';
|
import { cleanConstraint } from 'utils/cleanConstraint';
|
||||||
import useFeatureApi from 'hooks/api/actions/useFeatureApi/useFeatureApi';
|
import useFeatureApi from 'hooks/api/actions/useFeatureApi/useFeatureApi';
|
||||||
import useUnleashContext from 'hooks/api/getters/useUnleashContext/useUnleashContext';
|
import useUnleashContext from 'hooks/api/getters/useUnleashContext/useUnleashContext';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useParams } from 'react-router-dom';
|
||||||
import { IFeatureViewParams } from 'interfaces/params';
|
import { IFeatureViewParams } from 'interfaces/params';
|
||||||
import { IUnleashContextDefinition } from 'interfaces/context';
|
import { IUnleashContextDefinition } from 'interfaces/context';
|
||||||
|
|||||||
@ -7,7 +7,7 @@ import { useStyles } from './ConstraintAccordionEditBody.styles';
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { newOperators } from 'constants/operators';
|
import { newOperators } from 'constants/operators';
|
||||||
import ConditionallyRender from 'component/common/ConditionallyRender/ConditionallyRender';
|
import ConditionallyRender from 'component/common/ConditionallyRender/ConditionallyRender';
|
||||||
import { oneOf } from 'utils/one-of';
|
import { oneOf } from 'utils/oneOf';
|
||||||
import { OperatorUpgradeAlert } from 'component/common/OperatorUpgradeAlert/OperatorUpgradeAlert';
|
import { OperatorUpgradeAlert } from 'component/common/OperatorUpgradeAlert/OperatorUpgradeAlert';
|
||||||
|
|
||||||
interface IConstraintAccordionBody {
|
interface IConstraintAccordionBody {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { parseDateValue } from '../DateSingleValue';
|
import { parseDateValue } from 'component/common/ConstraintAccordion/ConstraintAccordionEdit/ConstraintAccordionEditBody/DateSingleValue/DateSingleValue';
|
||||||
|
|
||||||
test(`Date component is able to parse midnight when it's 00`, () => {
|
test(`Date component is able to parse midnight when it's 00`, () => {
|
||||||
let f = parseDateValue('2022-03-15T12:27');
|
let f = parseDateValue('2022-03-15T12:27');
|
||||||
@ -9,7 +9,7 @@ import { IUnleashContextDefinition } from 'interfaces/context';
|
|||||||
import { IConstraint } from 'interfaces/strategy';
|
import { IConstraint } from 'interfaces/strategy';
|
||||||
import React, { useCallback, useEffect, useState } from 'react';
|
import React, { useCallback, useEffect, useState } from 'react';
|
||||||
import { exists } from 'utils/exists';
|
import { exists } from 'utils/exists';
|
||||||
import { oneOf } from 'utils/one-of';
|
import { oneOf } from 'utils/oneOf';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
numberValidatorGenerator,
|
numberValidatorGenerator,
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import {
|
|||||||
} from '../../../../../constants/operators';
|
} from '../../../../../constants/operators';
|
||||||
import { SAVE } from '../ConstraintAccordionEdit';
|
import { SAVE } from '../ConstraintAccordionEdit';
|
||||||
import { resolveText } from './helpers';
|
import { resolveText } from './helpers';
|
||||||
import { oneOf } from 'utils/one-of';
|
import { oneOf } from 'utils/oneOf';
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { Operator } from 'constants/operators';
|
import { Operator } from 'constants/operators';
|
||||||
|
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import { IConstraint } from '../../../../interfaces/strategy';
|
|||||||
|
|
||||||
import { ConstraintAccordionViewBody } from './ConstraintAccordionViewBody/ConstraintAccordionViewBody';
|
import { ConstraintAccordionViewBody } from './ConstraintAccordionViewBody/ConstraintAccordionViewBody';
|
||||||
import { ConstraintAccordionViewHeader } from './ConstraintAccordionViewHeader/ConstraintAccordionViewHeader';
|
import { ConstraintAccordionViewHeader } from './ConstraintAccordionViewHeader/ConstraintAccordionViewHeader';
|
||||||
import { oneOf } from '../../../../utils/one-of';
|
import { oneOf } from 'utils/oneOf';
|
||||||
import {
|
import {
|
||||||
dateOperators,
|
dateOperators,
|
||||||
numOperators,
|
numOperators,
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import StringTruncator from 'component/common/StringTruncator/StringTruncator';
|
|||||||
import { useState } from 'react';
|
import { useState } from 'react';
|
||||||
import { stringOperators } from '../../../../../constants/operators';
|
import { stringOperators } from '../../../../../constants/operators';
|
||||||
import { IConstraint } from '../../../../../interfaces/strategy';
|
import { IConstraint } from '../../../../../interfaces/strategy';
|
||||||
import { oneOf } from '../../../../../utils/one-of';
|
import { oneOf } from 'utils/oneOf';
|
||||||
import ConditionallyRender from '../../../ConditionallyRender';
|
import ConditionallyRender from '../../../ConditionallyRender';
|
||||||
import { useStyles } from '../../ConstraintAccordion.styles';
|
import { useStyles } from '../../ConstraintAccordion.styles';
|
||||||
import { ConstraintValueSearch } from '../../ConstraintValueSearch/ConstraintValueSearch';
|
import { ConstraintValueSearch } from '../../ConstraintValueSearch/ConstraintValueSearch';
|
||||||
|
|||||||
@ -2,12 +2,12 @@ import { useContext, useState } from 'react';
|
|||||||
import { Button, IconButton } from '@material-ui/core';
|
import { Button, IconButton } from '@material-ui/core';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import CloseIcon from '@material-ui/icons/Close';
|
import CloseIcon from '@material-ui/icons/Close';
|
||||||
import { ReactComponent as Logo } from '../../../assets/icons/logo-plain.svg';
|
import { ReactComponent as Logo } from 'assets/icons/logoPlain.svg';
|
||||||
import { useCommonStyles } from '../../../common.styles';
|
import { useCommonStyles } from '../../../common.styles';
|
||||||
import { useStyles } from './Feedback.styles';
|
import { useStyles } from './Feedback.styles';
|
||||||
import AnimateOnMount from '../AnimateOnMount/AnimateOnMount';
|
import AnimateOnMount from '../AnimateOnMount/AnimateOnMount';
|
||||||
import ConditionallyRender from '../ConditionallyRender';
|
import ConditionallyRender from '../ConditionallyRender';
|
||||||
import { formatApiPath } from '../../../utils/format-path';
|
import { formatApiPath } from 'utils/formatPath';
|
||||||
import UIContext from '../../../contexts/UIContext';
|
import UIContext from '../../../contexts/UIContext';
|
||||||
import { PNPS_FEEDBACK_ID, showPnpsFeedback } from '../util';
|
import { PNPS_FEEDBACK_ID, showPnpsFeedback } from '../util';
|
||||||
import { useAuthFeedback } from '../../../hooks/api/getters/useAuth/useAuthFeedback';
|
import { useAuthFeedback } from '../../../hooks/api/getters/useAuth/useAuthFeedback';
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import copy from 'copy-to-clipboard';
|
|||||||
import useToast from '../../../hooks/useToast';
|
import useToast from '../../../hooks/useToast';
|
||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
import classNames from 'classnames';
|
import classNames from 'classnames';
|
||||||
import { ReactComponent as MobileGuidanceBG } from '../../../assets/img/mobile-guidance-bg.svg';
|
import { ReactComponent as MobileGuidanceBG } from 'assets/img/mobileGuidanceBg.svg';
|
||||||
import { useCommonStyles } from 'common.styles';
|
import { useCommonStyles } from 'common.styles';
|
||||||
|
|
||||||
interface ICreateProps {
|
interface ICreateProps {
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
import logo from '../../../assets/img/unleash_logo_icon_dark _ alpha.gif';
|
import logo from 'assets/img/unleashLogoIconDarkAlpha.gif';
|
||||||
import { formatAssetPath } from '../../../utils/format-path';
|
import { formatAssetPath } from 'utils/formatPath';
|
||||||
import { useStyles } from './Loader.styles';
|
import { useStyles } from './Loader.styles';
|
||||||
|
|
||||||
const Loader = () => {
|
const Loader = () => {
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
import { Button, Typography } from '@material-ui/core';
|
import { Button, Typography } from '@material-ui/core';
|
||||||
import { useHistory } from 'react-router';
|
import { useHistory } from 'react-router';
|
||||||
|
|
||||||
import { ReactComponent as LogoIcon } from '../../../assets/icons/logo_wbg.svg';
|
import { ReactComponent as LogoIcon } from 'assets/icons/logoBg.svg';
|
||||||
|
|
||||||
import { useStyles } from './NotFound.styles';
|
import { useStyles } from './NotFound.styles';
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,7 @@ import AccessContext from '../../../contexts/AccessContext';
|
|||||||
import useUnleashContext from '../../../hooks/api/getters/useUnleashContext/useUnleashContext';
|
import useUnleashContext from '../../../hooks/api/getters/useUnleashContext/useUnleashContext';
|
||||||
import useContextsApi from '../../../hooks/api/actions/useContextsApi/useContextsApi';
|
import useContextsApi from '../../../hooks/api/actions/useContextsApi/useContextsApi';
|
||||||
import useToast from '../../../hooks/useToast';
|
import useToast from '../../../hooks/useToast';
|
||||||
import { formatUnknownError } from '../../../utils/format-unknown-error';
|
import { formatUnknownError } from '../../../utils/formatUnknownError';
|
||||||
|
|
||||||
const ContextList = () => {
|
const ContextList = () => {
|
||||||
const { hasAccess } = useContext(AccessContext);
|
const { hasAccess } = useContext(AccessContext);
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import useContextsApi from 'hooks/api/actions/useContextsApi/useContextsApi';
|
|||||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||||
import useUnleashContext from 'hooks/api/getters/useUnleashContext/useUnleashContext';
|
import useUnleashContext from 'hooks/api/getters/useUnleashContext/useUnleashContext';
|
||||||
import useToast from 'hooks/useToast';
|
import useToast from 'hooks/useToast';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
export const CreateContext = () => {
|
export const CreateContext = () => {
|
||||||
const { setToastData, setToastApiError } = useToast();
|
const { setToastData, setToastApiError } = useToast();
|
||||||
|
|||||||
@ -8,7 +8,7 @@ import useToast from 'hooks/useToast';
|
|||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { useHistory, useParams } from 'react-router-dom';
|
import { useHistory, useParams } from 'react-router-dom';
|
||||||
import { scrollToTop } from '../../common/util';
|
import { scrollToTop } from '../../common/util';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { ContextForm } from '../ContextForm/ContextForm';
|
import { ContextForm } from '../ContextForm/ContextForm';
|
||||||
import { useContextForm } from '../hooks/useContextForm';
|
import { useContextForm } from '../hooks/useContextForm';
|
||||||
|
|
||||||
|
|||||||
@ -14,7 +14,7 @@ import ConditionallyRender from 'component/common/ConditionallyRender';
|
|||||||
import PageContent from 'component/common/PageContent/PageContent';
|
import PageContent from 'component/common/PageContent/PageContent';
|
||||||
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
||||||
import HeaderTitle from 'component/common/HeaderTitle/HeaderTitle';
|
import HeaderTitle from 'component/common/HeaderTitle/HeaderTitle';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const CreateEnvironment = () => {
|
const CreateEnvironment = () => {
|
||||||
const { setToastApiError, setToastData } = useToast();
|
const { setToastApiError, setToastData } = useToast();
|
||||||
|
|||||||
@ -9,7 +9,7 @@ import { useHistory, useParams } from 'react-router-dom';
|
|||||||
import { ADMIN } from '../../providers/AccessProvider/permissions';
|
import { ADMIN } from '../../providers/AccessProvider/permissions';
|
||||||
import EnvironmentForm from '../EnvironmentForm/EnvironmentForm';
|
import EnvironmentForm from '../EnvironmentForm/EnvironmentForm';
|
||||||
import useEnvironmentForm from '../hooks/useEnvironmentForm';
|
import useEnvironmentForm from '../hooks/useEnvironmentForm';
|
||||||
import { formatUnknownError } from '../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const EditEnvironment = () => {
|
const EditEnvironment = () => {
|
||||||
const { uiConfig } = useUiConfig();
|
const { uiConfig } = useUiConfig();
|
||||||
|
|||||||
@ -18,7 +18,7 @@ import EnvironmentToggleConfirm from './EnvironmentToggleConfirm/EnvironmentTogg
|
|||||||
import useProjectRolePermissions from '../../../hooks/api/getters/useProjectRolePermissions/useProjectRolePermissions';
|
import useProjectRolePermissions from '../../../hooks/api/getters/useProjectRolePermissions/useProjectRolePermissions';
|
||||||
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
import { ADMIN } from 'component/providers/AccessProvider/permissions';
|
||||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||||
import { formatUnknownError } from '../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const EnvironmentList = () => {
|
const EnvironmentList = () => {
|
||||||
const defaultEnv = {
|
const defaultEnv = {
|
||||||
|
|||||||
@ -17,7 +17,7 @@ import styles from './CopyFeature.module.scss';
|
|||||||
import { trim } from '../../common/util';
|
import { trim } from '../../common/util';
|
||||||
import ConditionallyRender from '../../common/ConditionallyRender';
|
import ConditionallyRender from '../../common/ConditionallyRender';
|
||||||
import { Alert } from '@material-ui/lab';
|
import { Alert } from '@material-ui/lab';
|
||||||
import { getTogglePath } from '../../../utils/route-path-helpers';
|
import { getTogglePath } from '../../../utils/routePathHelpers';
|
||||||
import useFeatureApi from '../../../hooks/api/actions/useFeatureApi/useFeatureApi';
|
import useFeatureApi from '../../../hooks/api/actions/useFeatureApi/useFeatureApi';
|
||||||
import { useFeature } from '../../../hooks/api/getters/useFeature/useFeature';
|
import { useFeature } from '../../../hooks/api/getters/useFeature/useFeature';
|
||||||
import useUiConfig from '../../../hooks/api/getters/useUiConfig/useUiConfig';
|
import useUiConfig from '../../../hooks/api/getters/useUiConfig/useUiConfig';
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import { useContext } from 'react';
|
|||||||
import { CreateButton } from 'component/common/CreateButton/CreateButton';
|
import { CreateButton } from 'component/common/CreateButton/CreateButton';
|
||||||
import UIContext from 'contexts/UIContext';
|
import UIContext from 'contexts/UIContext';
|
||||||
import { CF_CREATE_BTN_ID } from 'testIds';
|
import { CF_CREATE_BTN_ID } from 'testIds';
|
||||||
import { formatUnknownError } from '../../../utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const CreateFeature = () => {
|
const CreateFeature = () => {
|
||||||
const { setToastData, setToastApiError } = useToast();
|
const { setToastData, setToastApiError } = useToast();
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import { useFeature } from 'hooks/api/getters/useFeature/useFeature';
|
|||||||
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
import useUiConfig from 'hooks/api/getters/useUiConfig/useUiConfig';
|
||||||
import useToast from 'hooks/useToast';
|
import useToast from 'hooks/useToast';
|
||||||
import { IFeatureViewParams } from 'interfaces/params';
|
import { IFeatureViewParams } from 'interfaces/params';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
|
|
||||||
const EditFeature = () => {
|
const EditFeature = () => {
|
||||||
const { setToastData, setToastApiError } = useToast();
|
const { setToastData, setToastApiError } = useToast();
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import FeatureTypeSelect from '../FeatureView/FeatureSettings/FeatureSettingsMet
|
|||||||
import { CF_DESC_ID, CF_NAME_ID, CF_TYPE_ID } from '../../../testIds';
|
import { CF_DESC_ID, CF_NAME_ID, CF_TYPE_ID } from '../../../testIds';
|
||||||
import useFeatureTypes from '../../../hooks/api/getters/useFeatureTypes/useFeatureTypes';
|
import useFeatureTypes from '../../../hooks/api/getters/useFeatureTypes/useFeatureTypes';
|
||||||
import { KeyboardArrowDownOutlined } from '@material-ui/icons';
|
import { KeyboardArrowDownOutlined } from '@material-ui/icons';
|
||||||
import { projectFilterGenerator } from '../../../utils/project-filter-generator';
|
import { projectFilterGenerator } from 'utils/projectFilterGenerator';
|
||||||
import FeatureProjectSelect from '../FeatureView/FeatureSettings/FeatureSettingsProject/FeatureProjectSelect/FeatureProjectSelect';
|
import FeatureProjectSelect from '../FeatureView/FeatureSettings/FeatureSettingsProject/FeatureProjectSelect/FeatureProjectSelect';
|
||||||
import ConditionallyRender from '../../common/ConditionallyRender';
|
import ConditionallyRender from '../../common/ConditionallyRender';
|
||||||
import { trim } from '../../common/util';
|
import { trim } from '../../common/util';
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import {
|
|||||||
} from 'component/providers/AccessProvider/permissions';
|
} from 'component/providers/AccessProvider/permissions';
|
||||||
import { createEmptyConstraint } from 'component/feature/FeatureStrategy/FeatureStrategyConstraints2/createEmptyConstraint';
|
import { createEmptyConstraint } from 'component/feature/FeatureStrategy/FeatureStrategyConstraints2/createEmptyConstraint';
|
||||||
import { useWeakMap } from 'hooks/useWeakMap';
|
import { useWeakMap } from 'hooks/useWeakMap';
|
||||||
import { objectId } from 'utils/object-id';
|
import { objectId } from 'utils/objectId';
|
||||||
import { useStyles } from 'component/feature/FeatureStrategy/FeatureStrategyConstraints2/FeatureStrategyConstraints2.styles';
|
import { useStyles } from 'component/feature/FeatureStrategy/FeatureStrategyConstraints2/FeatureStrategyConstraints2.styles';
|
||||||
|
|
||||||
interface IFeatureStrategyConstraints2Props {
|
interface IFeatureStrategyConstraints2Props {
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import { FeatureStrategyForm } from 'component/feature/FeatureStrategy/FeatureSt
|
|||||||
import FormTemplate from '../../../common/FormTemplate/FormTemplate';
|
import FormTemplate from '../../../common/FormTemplate/FormTemplate';
|
||||||
import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
|
import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
|
||||||
import useFeatureStrategyApi from '../../../../hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi';
|
import useFeatureStrategyApi from '../../../../hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
import useToast from '../../../../hooks/useToast';
|
import useToast from '../../../../hooks/useToast';
|
||||||
import { IFeatureStrategy } from 'interfaces/strategy';
|
import { IFeatureStrategy } from 'interfaces/strategy';
|
||||||
@ -16,7 +16,7 @@ import {
|
|||||||
formatFeaturePath,
|
formatFeaturePath,
|
||||||
createStrategyPayload,
|
createStrategyPayload,
|
||||||
} from '../FeatureStrategyEdit/FeatureStrategyEdit';
|
} from '../FeatureStrategyEdit/FeatureStrategyEdit';
|
||||||
import { getStrategyObject } from 'utils/get-strategy-object';
|
import { getStrategyObject } from 'utils/getStrategyObject';
|
||||||
import { useStrategies } from 'hooks/api/getters/useStrategies/useStrategies';
|
import { useStrategies } from 'hooks/api/getters/useStrategies/useStrategies';
|
||||||
import { CREATE_FEATURE_STRATEGY } from 'component/providers/AccessProvider/permissions';
|
import { CREATE_FEATURE_STRATEGY } from 'component/providers/AccessProvider/permissions';
|
||||||
|
|
||||||
|
|||||||
@ -6,7 +6,7 @@ import useUiConfig from '../../../../hooks/api/getters/useUiConfig/useUiConfig';
|
|||||||
import { useRequiredQueryParam } from 'hooks/useRequiredQueryParam';
|
import { useRequiredQueryParam } from 'hooks/useRequiredQueryParam';
|
||||||
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
import { useRequiredPathParam } from 'hooks/useRequiredPathParam';
|
||||||
import useFeatureStrategyApi from '../../../../hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi';
|
import useFeatureStrategyApi from '../../../../hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
import useToast from '../../../../hooks/useToast';
|
import useToast from '../../../../hooks/useToast';
|
||||||
import { IFeatureStrategy, IStrategyPayload } from 'interfaces/strategy';
|
import { IFeatureStrategy, IStrategyPayload } from 'interfaces/strategy';
|
||||||
|
|||||||
@ -3,7 +3,7 @@ import { IFeatureStrategy } from 'interfaces/strategy';
|
|||||||
import {
|
import {
|
||||||
getFeatureStrategyIcon,
|
getFeatureStrategyIcon,
|
||||||
formatStrategyName,
|
formatStrategyName,
|
||||||
} from 'utils/strategy-names';
|
} from 'utils/strategyNames';
|
||||||
import { FeatureStrategyType } from '../FeatureStrategyType/FeatureStrategyType';
|
import { FeatureStrategyType } from '../FeatureStrategyType/FeatureStrategyType';
|
||||||
import { FeatureStrategyEnabled } from '../FeatureStrategyEnabled/FeatureStrategyEnabled';
|
import { FeatureStrategyEnabled } from '../FeatureStrategyEnabled/FeatureStrategyEnabled';
|
||||||
import { FeatureStrategyConstraints } from '../FeatureStrategyConstraints/FeatureStrategyConstraints';
|
import { FeatureStrategyConstraints } from '../FeatureStrategyConstraints/FeatureStrategyConstraints';
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { useStyles } from './FeatureStrategyMenuCard.styles';
|
|||||||
import {
|
import {
|
||||||
getFeatureStrategyIcon,
|
getFeatureStrategyIcon,
|
||||||
formatStrategyName,
|
formatStrategyName,
|
||||||
} from 'utils/strategy-names';
|
} from 'utils/strategyNames';
|
||||||
import { formatCreateStrategyPath } from '../../FeatureStrategyCreate/FeatureStrategyCreate';
|
import { formatCreateStrategyPath } from '../../FeatureStrategyCreate/FeatureStrategyCreate';
|
||||||
import StringTruncator from 'component/common/StringTruncator/StringTruncator';
|
import StringTruncator from 'component/common/StringTruncator/StringTruncator';
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { getBasePath } from 'utils/format-path';
|
import { getBasePath } from 'utils/formatPath';
|
||||||
import Dialogue from '../../../common/Dialogue';
|
import Dialogue from '../../../common/Dialogue';
|
||||||
import { Alert } from '@material-ui/lab';
|
import { Alert } from '@material-ui/lab';
|
||||||
import { Checkbox, FormControlLabel } from '@material-ui/core';
|
import { Checkbox, FormControlLabel } from '@material-ui/core';
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import React, { useState } from 'react';
|
import React, { useState } from 'react';
|
||||||
import useFeatureStrategyApi from 'hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi';
|
import useFeatureStrategyApi from 'hooks/api/actions/useFeatureStrategyApi/useFeatureStrategyApi';
|
||||||
import { formatUnknownError } from 'utils/format-unknown-error';
|
import { formatUnknownError } from 'utils/formatUnknownError';
|
||||||
import { useHistory } from 'react-router-dom';
|
import { useHistory } from 'react-router-dom';
|
||||||
import useToast from 'hooks/useToast';
|
import useToast from 'hooks/useToast';
|
||||||
import { formatFeaturePath } from '../FeatureStrategyEdit/FeatureStrategyEdit';
|
import { formatFeaturePath } from '../FeatureStrategyEdit/FeatureStrategyEdit';
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import { CREATE_FEATURE } from '../../providers/AccessProvider/permissions';
|
|||||||
import AccessContext from '../../../contexts/AccessContext';
|
import AccessContext from '../../../contexts/AccessContext';
|
||||||
import { useStyles } from './styles';
|
import { useStyles } from './styles';
|
||||||
import ListPlaceholder from '../../common/ListPlaceholder/ListPlaceholder';
|
import ListPlaceholder from '../../common/ListPlaceholder/ListPlaceholder';
|
||||||
import { getCreateTogglePath } from '../../../utils/route-path-helpers';
|
import { getCreateTogglePath } from '../../../utils/routePathHelpers';
|
||||||
import { NAVIGATE_TO_CREATE_FEATURE } from '../../../testIds';
|
import { NAVIGATE_TO_CREATE_FEATURE } from '../../../testIds';
|
||||||
import { resolveFilteredProjectId } from '../../../hooks/useFeaturesFilter';
|
import { resolveFilteredProjectId } from '../../../hooks/useFeaturesFilter';
|
||||||
|
|
||||||
|
|||||||
@ -1,18 +1,18 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { MemoryRouter } from 'react-router-dom';
|
import { MemoryRouter } from 'react-router-dom';
|
||||||
import { ThemeProvider } from '@material-ui/core';
|
import { ThemeProvider } from '@material-ui/core';
|
||||||
import FeatureToggleList from '../FeatureToggleList';
|
import FeatureToggleList from './FeatureToggleList';
|
||||||
import renderer from 'react-test-renderer';
|
import renderer from 'react-test-renderer';
|
||||||
import theme from '../../../../themes/main-theme';
|
import theme from '../../../themes/mainTheme';
|
||||||
import { CREATE_FEATURE } from '../../../providers/AccessProvider/permissions';
|
import { CREATE_FEATURE } from '../../providers/AccessProvider/permissions';
|
||||||
import AccessProvider from '../../../providers/AccessProvider/AccessProvider';
|
import AccessProvider from '../../providers/AccessProvider/AccessProvider';
|
||||||
|
|
||||||
jest.mock('../FeatureToggleListItem', () => ({
|
jest.mock('./FeatureToggleListItem/FeatureToggleListItem', () => ({
|
||||||
__esModule: true,
|
__esModule: true,
|
||||||
default: 'ListItem',
|
default: 'ListItem',
|
||||||
}));
|
}));
|
||||||
|
|
||||||
jest.mock('../../../common/ProjectSelect/ProjectSelect');
|
jest.mock('../../common/ProjectSelect/ProjectSelect');
|
||||||
|
|
||||||
test('renders correctly with one feature', () => {
|
test('renders correctly with one feature', () => {
|
||||||
const features = [
|
const features = [
|
||||||
@ -14,7 +14,7 @@ import { UPDATE_FEATURE } from '../../../providers/AccessProvider/permissions';
|
|||||||
import { styles as commonStyles } from '../../../common';
|
import { styles as commonStyles } from '../../../common';
|
||||||
|
|
||||||
import { useStyles } from './styles';
|
import { useStyles } from './styles';
|
||||||
import { getTogglePath } from '../../../../utils/route-path-helpers';
|
import { getTogglePath } from '../../../../utils/routePathHelpers';
|
||||||
import FeatureStatus from '../../FeatureView/FeatureStatus/FeatureStatus';
|
import FeatureStatus from '../../FeatureView/FeatureStatus/FeatureStatus';
|
||||||
import FeatureType from '../../FeatureView/FeatureType/FeatureType';
|
import FeatureType from '../../FeatureView/FeatureType/FeatureType';
|
||||||
import useProjects from '../../../../hooks/api/getters/useProjects/useProjects';
|
import useProjects from '../../../../hooks/api/getters/useProjects/useProjects';
|
||||||
|
|||||||
@ -2,10 +2,10 @@ import React from 'react';
|
|||||||
import { MemoryRouter } from 'react-router-dom';
|
import { MemoryRouter } from 'react-router-dom';
|
||||||
import { ThemeProvider } from '@material-ui/core';
|
import { ThemeProvider } from '@material-ui/core';
|
||||||
|
|
||||||
import FeatureToggleListItem from '../FeatureToggleListItem';
|
import FeatureToggleListItem from './index';
|
||||||
import renderer from 'react-test-renderer';
|
import renderer from 'react-test-renderer';
|
||||||
|
|
||||||
import theme from '../../../../themes/main-theme';
|
import theme from '../../../../themes/mainTheme';
|
||||||
|
|
||||||
test('renders correctly with one feature', () => {
|
test('renders correctly with one feature', () => {
|
||||||
const feature = {
|
const feature = {
|
||||||