Merge pull request #274 from jakemcdermott/alias-top-level-imports

alias top-level imports
This commit is contained in:
Jake McDermott
2019-06-19 13:09:26 -04:00
committed by GitHub
46 changed files with 357 additions and 202 deletions

View File

@@ -12,6 +12,11 @@
"airbnb" "airbnb"
], ],
"settings": { "settings": {
'import/resolver': {
webpack: {
config: 'webpack.config.js'
}
},
"react": { "react": {
"version": "16.5.2" "version": "16.5.2"
} }
@@ -28,7 +33,8 @@
"camelcase": "off", "camelcase": "off",
"arrow-parens": "off", "arrow-parens": "off",
"comma-dangle": "off", "comma-dangle": "off",
"import/no-extraneous-dependencies": ["error", { "devDependencies": true }], // https://github.com/benmosher/eslint-plugin-import/issues/479#issuecomment-252500896
"import/no-extraneous-dependencies": "off",
"indent": ["error", 2, { "indent": ["error", 2, {
"SwitchCase": 1 "SwitchCase": 1
}], }],

View File

@@ -7,7 +7,14 @@ module.exports = {
'index.js' 'index.js'
], ],
moduleNameMapper: { moduleNameMapper: {
'\\.(css|scss|less)$': '<rootDir>/__mocks__/styleMock.js' '\\.(css|scss|less)$': '<rootDir>/__mocks__/styleMock.js',
'^@api(.*)$': '<rootDir>/src/api$1',
'^@components(.*)$': '<rootDir>/src/components$1',
'^@contexts(.*)$': '<rootDir>/src/contexts$1',
'^@screens(.*)$': '<rootDir>/src/screens$1',
'^@util(.*)$': '<rootDir>/src/util$1',
'^@types(.*)$': '<rootDir>/src/types$1',
'^@testUtils(.*)$': '<rootDir>/testUtils$1',
}, },
setupFiles: [ setupFiles: [
'@nteract/mockument' '@nteract/mockument'

99
package-lock.json generated
View File

@@ -2724,6 +2724,12 @@
"integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=", "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=",
"dev": true "dev": true
}, },
"array-find": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-find/-/array-find-1.0.0.tgz",
"integrity": "sha1-bI4obRHtdoMn+OYuzuhzU8o+eLg=",
"dev": true
},
"array-find-index": { "array-find-index": {
"version": "1.0.2", "version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
@@ -6022,6 +6028,58 @@
"resolve": "^1.5.0" "resolve": "^1.5.0"
} }
}, },
"eslint-import-resolver-webpack": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/eslint-import-resolver-webpack/-/eslint-import-resolver-webpack-0.11.1.tgz",
"integrity": "sha512-eK3zR7xVQR/MaoBWwGuD+CULYVuqe5QFlDukman71aI6IboCGzggDUohHNfu1ZeBnbHcUHJc0ywWoXUBNB6qdg==",
"dev": true,
"requires": {
"array-find": "^1.0.0",
"debug": "^2.6.8",
"enhanced-resolve": "~0.9.0",
"find-root": "^1.1.0",
"has": "^1.0.1",
"interpret": "^1.0.0",
"lodash": "^4.17.4",
"node-libs-browser": "^1.0.0 || ^2.0.0",
"resolve": "^1.10.0",
"semver": "^5.3.0"
},
"dependencies": {
"enhanced-resolve": {
"version": "0.9.1",
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-0.9.1.tgz",
"integrity": "sha1-TW5omzcl+GCQknzMhs2fFjW4ni4=",
"dev": true,
"requires": {
"graceful-fs": "^4.1.2",
"memory-fs": "^0.2.0",
"tapable": "^0.1.8"
}
},
"memory-fs": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.2.0.tgz",
"integrity": "sha1-8rslNovBIeORwlIN6Slpyu4KApA=",
"dev": true
},
"resolve": {
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz",
"integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
}
},
"tapable": {
"version": "0.1.10",
"resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz",
"integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=",
"dev": true
}
}
},
"eslint-module-utils": { "eslint-module-utils": {
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz", "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.2.0.tgz",
@@ -7099,7 +7157,8 @@
"ansi-regex": { "ansi-regex": {
"version": "2.1.1", "version": "2.1.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"aproba": { "aproba": {
"version": "1.2.0", "version": "1.2.0",
@@ -7120,12 +7179,14 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@@ -7140,17 +7201,20 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@@ -7267,7 +7331,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
@@ -7279,6 +7344,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
@@ -7293,6 +7359,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
@@ -7300,12 +7367,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.3.5", "version": "2.3.5",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.2", "safe-buffer": "^5.1.2",
"yallist": "^3.0.0" "yallist": "^3.0.0"
@@ -7324,6 +7393,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
@@ -7404,7 +7474,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
@@ -7416,6 +7487,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
@@ -7501,7 +7573,8 @@
"safe-buffer": { "safe-buffer": {
"version": "5.1.2", "version": "5.1.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"safer-buffer": { "safer-buffer": {
"version": "2.1.2", "version": "2.1.2",
@@ -7537,6 +7610,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",
@@ -7556,6 +7630,7 @@
"version": "3.0.1", "version": "3.0.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"ansi-regex": "^2.0.0" "ansi-regex": "^2.0.0"
} }
@@ -7599,12 +7674,14 @@
"wrappy": { "wrappy": {
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"yallist": { "yallist": {
"version": "3.0.3", "version": "3.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
} }
} }
}, },

View File

@@ -36,6 +36,7 @@
"enzyme-to-json": "^3.3.5", "enzyme-to-json": "^3.3.5",
"eslint": "^5.6.0", "eslint": "^5.6.0",
"eslint-config-airbnb": "^17.1.0", "eslint-config-airbnb": "^17.1.0",
"eslint-import-resolver-webpack": "0.11.1",
"eslint-plugin-import": "^2.14.0", "eslint-plugin-import": "^2.14.0",
"eslint-plugin-jsx-a11y": "^6.1.1", "eslint-plugin-jsx-a11y": "^6.1.1",
"eslint-plugin-react": "^7.11.1", "eslint-plugin-react": "^7.11.1",

View File

@@ -11,14 +11,13 @@ import styled from 'styled-components';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import { withI18n } from '@lingui/react'; import { withI18n } from '@lingui/react';
import { ConfigAPI, MeAPI, RootAPI } from './api'; import { ConfigAPI, MeAPI, RootAPI } from '@api';
import { ConfigProvider } from './contexts/Config'; import About from '@components/About';
import AlertModal from '@components/AlertModal';
import About from './components/About'; import NavExpandableGroup from '@components/NavExpandableGroup';
import AlertModal from './components/AlertModal'; import BrandLogo from '@components/BrandLogo';
import NavExpandableGroup from './components/NavExpandableGroup'; import PageHeaderToolbar from '@components/PageHeaderToolbar';
import BrandLogo from './components/BrandLogo'; import { ConfigProvider } from '@contexts/Config';
import PageHeaderToolbar from './components/PageHeaderToolbar';
const PageHeader = styled(PFPageHeader)` const PageHeader = styled(PFPageHeader)`
& .pf-c-page__header-brand-link { & .pf-c-page__header-brand-link {

View File

@@ -13,36 +13,35 @@ import { t } from '@lingui/macro';
import '@patternfly/react-core/dist/styles/base.css'; import '@patternfly/react-core/dist/styles/base.css';
import './app.scss'; import './app.scss';
import Background from './components/Background'; import { isAuthenticated } from '@util/auth';
import Background from '@components/Background';
import Applications from '@screens/Application';
import Credentials from '@screens/Credential';
import CredentialTypes from '@screens/CredentialType';
import Dashboard from '@screens/Dashboard';
import InstanceGroups from '@screens/InstanceGroup';
import Inventories from '@screens/Inventory';
import InventoryScripts from '@screens/InventoryScript';
import { Jobs } from '@screens/Job';
import Login from '@screens/Login';
import ManagementJobs from '@screens/ManagementJob';
import NotificationTemplates from '@screens/NotificationTemplate';
import Organizations from '@screens/Organization';
import Portal from '@screens/Portal';
import Projects from '@screens/Project';
import Schedules from '@screens/Schedule';
import AuthSettings from '@screens/AuthSetting';
import JobsSettings from '@screens/JobsSetting';
import SystemSettings from '@screens/SystemSetting';
import UISettings from '@screens/UISetting';
import License from '@screens/License';
import Teams from '@screens/Team';
import Templates from '@screens/Template';
import Users from '@screens/User';
import RootProvider from './RootProvider';
import App from './App'; import App from './App';
import RootProvider from './RootProvider';
import { BrandName } from './variables'; import { BrandName } from './variables';
import { isAuthenticated } from './util/auth';
import Applications from './screens/Application';
import Credentials from './screens/Credential';
import CredentialTypes from './screens/CredentialType';
import Dashboard from './screens/Dashboard';
import InstanceGroups from './screens/InstanceGroup';
import Inventories from './screens/Inventory';
import InventoryScripts from './screens/InventoryScript';
import { Jobs } from './screens/Job';
import Login from './screens/Login';
import ManagementJobs from './screens/ManagementJob';
import NotificationTemplates from './screens/NotificationTemplate';
import Organizations from './screens/Organization';
import Portal from './screens/Portal';
import Projects from './screens/Project';
import Schedules from './screens/Schedule';
import AuthSettings from './screens/AuthSetting';
import JobsSettings from './screens/JobsSetting';
import SystemSettings from './screens/SystemSetting';
import UISettings from './screens/UISetting';
import License from './screens/License';
import Teams from './screens/Team';
import Templates from './screens/Template';
import Users from './screens/User';
// eslint-disable-next-line import/prefer-default-export // eslint-disable-next-line import/prefer-default-export
export function main (render) { export function main (render) {

View File

@@ -4,10 +4,12 @@ import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import styled from 'styled-components'; import styled from 'styled-components';
import { Card, CardHeader as PFCardHeader, PageSection } from '@patternfly/react-core'; import { Card, CardHeader as PFCardHeader, PageSection } from '@patternfly/react-core';
import { JobsAPI } from '../../api';
import ContentError from '../../components/ContentError'; import { JobsAPI } from '@api';
import CardCloseButton from '../../components/CardCloseButton'; import ContentError from '@components/ContentError';
import RoutedTabs from '../../components/RoutedTabs'; import CardCloseButton from '@components/CardCloseButton';
import RoutedTabs from '@components/RoutedTabs';
import JobDetail from './JobDetail'; import JobDetail from './JobDetail';
import JobOutput from './JobOutput'; import JobOutput from './JobOutput';

View File

@@ -1,5 +1,7 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../testUtils/enzymeHelpers';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import Job from './Jobs'; import Job from './Jobs';
describe('<Job />', () => { describe('<Job />', () => {

View File

@@ -1,5 +1,7 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import JobDetail from './JobDetail'; import JobDetail from './JobDetail';
describe('<JobDetail />', () => { describe('<JobDetail />', () => {

View File

@@ -1,5 +1,7 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import JobOutput from './JobOutput'; import JobOutput from './JobOutput';
describe('<JobOutput />', () => { describe('<JobOutput />', () => {

View File

@@ -2,7 +2,9 @@ import React, { Component, Fragment } from 'react';
import { Route, withRouter, Switch } from 'react-router-dom'; import { Route, withRouter, Switch } from 'react-router-dom';
import { withI18n } from '@lingui/react'; import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import Breadcrumbs from '../../components/Breadcrumbs/Breadcrumbs';
import Breadcrumbs from '@components/Breadcrumbs/Breadcrumbs';
import { Job } from '.'; import { Job } from '.';
class Jobs extends Component { class Jobs extends Component {

View File

@@ -1,6 +1,8 @@
import React from 'react'; import React from 'react';
import { createMemoryHistory } from 'history'; import { createMemoryHistory } from 'history';
import { mountWithContexts } from '../../../testUtils/enzymeHelpers';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import Jobs from './Jobs'; import Jobs from './Jobs';
describe('<Jobs />', () => { describe('<Jobs />', () => {

View File

@@ -4,17 +4,18 @@ import { t } from '@lingui/macro';
import { Switch, Route, withRouter, Redirect } from 'react-router-dom'; import { Switch, Route, withRouter, Redirect } from 'react-router-dom';
import { Card, CardHeader as PFCardHeader, PageSection } from '@patternfly/react-core'; import { Card, CardHeader as PFCardHeader, PageSection } from '@patternfly/react-core';
import styled from 'styled-components'; import styled from 'styled-components';
import CardCloseButton from '../../components/CardCloseButton';
import ContentError from '../../components/ContentError'; import { OrganizationsAPI } from '@api';
import RoutedTabs from '../../components/RoutedTabs'; import CardCloseButton from '@components/CardCloseButton';
import ContentError from '@components/ContentError';
import RoutedTabs from '@components/RoutedTabs';
import { OrganizationAccess } from './OrganizationAccess'; import { OrganizationAccess } from './OrganizationAccess';
import OrganizationDetail from './OrganizationDetail'; import OrganizationDetail from './OrganizationDetail';
import OrganizationEdit from './OrganizationEdit'; import OrganizationEdit from './OrganizationEdit';
import OrganizationNotifications from './OrganizationNotifications'; import OrganizationNotifications from './OrganizationNotifications';
import OrganizationTeams from './OrganizationTeams'; import OrganizationTeams from './OrganizationTeams';
import { OrganizationsAPI } from '../../api';
class Organization extends Component { class Organization extends Component {
constructor (props) { constructor (props) {
super(props); super(props);

View File

@@ -1,9 +1,11 @@
import React from 'react'; import React from 'react';
import { mountWithContexts, waitForElement } from '../../../testUtils/enzymeHelpers';
import Organization from './Organization';
import { OrganizationsAPI } from '../../api';
jest.mock('../../api'); import { OrganizationsAPI } from '@api';
import { mountWithContexts, waitForElement } from '@testUtils/enzymeHelpers';
import Organization from './Organization';
jest.mock('@api');
const mockMe = { const mockMe = {
is_super_user: true, is_super_user: true,

View File

@@ -3,8 +3,9 @@ import { func, string } from 'prop-types';
import { Button } from '@patternfly/react-core'; import { Button } from '@patternfly/react-core';
import { withI18n } from '@lingui/react'; import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import AlertModal from '../../../components/AlertModal';
import { Role } from '../../../types'; import AlertModal from '@components/AlertModal';
import { Role } from '@types';
class DeleteRoleConfirmationModal extends React.Component { class DeleteRoleConfirmationModal extends React.Component {
static propTypes = { static propTypes = {

View File

@@ -1,5 +1,7 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import DeleteRoleConfirmationModal from './DeleteRoleConfirmationModal'; import DeleteRoleConfirmationModal from './DeleteRoleConfirmationModal';
const role = { const role = {

View File

@@ -2,19 +2,21 @@ import React, { Fragment } from 'react';
import { withRouter } from 'react-router-dom'; import { withRouter } from 'react-router-dom';
import { withI18n } from '@lingui/react'; import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import AlertModal from '../../../components/AlertModal';
import PaginatedDataList, { ToolbarAddButton } from '../../../components/PaginatedDataList'; import { OrganizationsAPI, TeamsAPI, UsersAPI } from '@api';
import DataListToolbar from '../../../components/DataListToolbar'; import AddResourceRole from '@components/AddRole/AddResourceRole';
import OrganizationAccessItem from './OrganizationAccessItem'; import AlertModal from '@components/AlertModal';
import DeleteRoleConfirmationModal from './DeleteRoleConfirmationModal'; import DataListToolbar from '@components/DataListToolbar';
import AddResourceRole from '../../../components/AddRole/AddResourceRole'; import PaginatedDataList, { ToolbarAddButton } from '@components/PaginatedDataList';
import { import {
getQSConfig, getQSConfig,
encodeQueryString, encodeQueryString,
parseNamespacedQueryString parseNamespacedQueryString
} from '../../../util/qs'; } from '@util/qs';
import { Organization } from '../../../types'; import { Organization } from '@types';
import { OrganizationsAPI, TeamsAPI, UsersAPI } from '../../../api';
import DeleteRoleConfirmationModal from './DeleteRoleConfirmationModal';
import OrganizationAccessItem from './OrganizationAccessItem';
const QS_CONFIG = getQSConfig('access', { const QS_CONFIG = getQSConfig('access', {
page: 1, page: 1,

View File

@@ -1,10 +1,13 @@
import React from 'react'; import React from 'react';
import { mountWithContexts, waitForElement } from '../../../../testUtils/enzymeHelpers';
import OrganizationAccess from './OrganizationAccess';
import { sleep } from '../../../../testUtils/testUtils';
import { OrganizationsAPI, TeamsAPI, UsersAPI } from '../../../api';
jest.mock('../../../api'); import { sleep } from '@testUtils/testUtils';
import { mountWithContexts, waitForElement } from '@testUtils/enzymeHelpers';
import { OrganizationsAPI, TeamsAPI, UsersAPI } from '@api';
import OrganizationAccess from './OrganizationAccess';
jest.mock('@api');
describe('<OrganizationAccess />', () => { describe('<OrganizationAccess />', () => {
const organization = { const organization = {

View File

@@ -13,9 +13,10 @@ import {
} from '@patternfly/react-core'; } from '@patternfly/react-core';
import { Link } from 'react-router-dom'; import { Link } from 'react-router-dom';
import styled from 'styled-components'; import styled from 'styled-components';
import { AccessRecord } from '../../../types';
import { DetailList, Detail } from '../../../components/DetailList'; import { ChipGroup, Chip } from '@components/Chip';
import { ChipGroup, Chip } from '../../../components/Chip'; import { DetailList, Detail } from '@components/DetailList';
import { AccessRecord } from '@types';
const DataListItemCells = styled(PFDataListItemCells)` const DataListItemCells = styled(PFDataListItemCells)`
align-items: start; align-items: start;

View File

@@ -1,5 +1,7 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import OrganizationAccessItem from './OrganizationAccessItem'; import OrganizationAccessItem from './OrganizationAccessItem';
const accessRecord = { const accessRecord = {

View File

@@ -11,10 +11,11 @@ import {
Tooltip, Tooltip,
} from '@patternfly/react-core'; } from '@patternfly/react-core';
import { Config } from '../../../contexts/Config'; import { OrganizationsAPI } from '@api';
import CardCloseButton from '../../../components/CardCloseButton'; import { Config } from '@contexts/Config';
import CardCloseButton from '@components/CardCloseButton';
import OrganizationForm from '../shared/OrganizationForm'; import OrganizationForm from '../shared/OrganizationForm';
import { OrganizationsAPI } from '../../../api';
class OrganizationAdd extends React.Component { class OrganizationAdd extends React.Component {
constructor (props) { constructor (props) {

View File

@@ -5,11 +5,11 @@ import { t } from '@lingui/macro';
import { CardBody as PFCardBody, Button } from '@patternfly/react-core'; import { CardBody as PFCardBody, Button } from '@patternfly/react-core';
import styled from 'styled-components'; import styled from 'styled-components';
import { DetailList, Detail } from '../../../components/DetailList'; import { OrganizationsAPI } from '@api';
import { ChipGroup, Chip } from '../../../components/Chip'; import { DetailList, Detail } from '@components/DetailList';
import ContentError from '../../../components/ContentError'; import { ChipGroup, Chip } from '@components/Chip';
import ContentLoading from '../../../components/ContentLoading'; import ContentError from '@components/ContentError';
import { OrganizationsAPI } from '../../../api'; import ContentLoading from '@components/ContentLoading';
const CardBody = styled(PFCardBody)` const CardBody = styled(PFCardBody)`
padding-top: 20px; padding-top: 20px;

View File

@@ -1,9 +1,11 @@
import React from 'react'; import React from 'react';
import { mountWithContexts, waitForElement } from '../../../../testUtils/enzymeHelpers';
import OrganizationDetail from './OrganizationDetail';
import { OrganizationsAPI } from '../../../api';
jest.mock('../../../api'); import { OrganizationsAPI } from '@api';
import { mountWithContexts, waitForElement } from '@testUtils/enzymeHelpers';
import OrganizationDetail from './OrganizationDetail';
jest.mock('@api');
describe('<OrganizationDetail />', () => { describe('<OrganizationDetail />', () => {
const mockOrganization = { const mockOrganization = {

View File

@@ -2,10 +2,11 @@ import React, { Component } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { withRouter } from 'react-router-dom'; import { withRouter } from 'react-router-dom';
import { CardBody } from '@patternfly/react-core'; import { CardBody } from '@patternfly/react-core';
import OrganizationForm from '../shared/OrganizationForm';
import { Config } from '../../../contexts/Config';
import { OrganizationsAPI } from '../../../api'; import { OrganizationsAPI } from '@api';
import { Config } from '@contexts/Config';
import OrganizationForm from '../shared/OrganizationForm';
class OrganizationEdit extends Component { class OrganizationEdit extends Component {
constructor (props) { constructor (props) {

View File

@@ -1,11 +1,11 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { OrganizationsAPI } from '@api';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import OrganizationEdit from './OrganizationEdit'; import OrganizationEdit from './OrganizationEdit';
import { OrganizationsAPI } from '../../../api'; jest.mock('@api');
jest.mock('../../../api');
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms)); const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));

View File

@@ -8,15 +8,16 @@ import {
PageSectionVariants, PageSectionVariants,
} from '@patternfly/react-core'; } from '@patternfly/react-core';
import { OrganizationsAPI } from '@api';
import AlertModal from '@components/AlertModal';
import DataListToolbar from '@components/DataListToolbar';
import PaginatedDataList, { import PaginatedDataList, {
ToolbarAddButton,
ToolbarDeleteButton, ToolbarDeleteButton,
ToolbarAddButton } from '@components/PaginatedDataList';
} from '../../../components/PaginatedDataList'; import { getQSConfig, parseNamespacedQueryString } from '@util/qs';
import DataListToolbar from '../../../components/DataListToolbar';
import OrganizationListItem from './OrganizationListItem'; import OrganizationListItem from './OrganizationListItem';
import AlertModal from '../../../components/AlertModal';
import { getQSConfig, parseNamespacedQueryString } from '../../../util/qs';
import { OrganizationsAPI } from '../../../api';
const QS_CONFIG = getQSConfig('organization', { const QS_CONFIG = getQSConfig('organization', {
page: 1, page: 1,

View File

@@ -1,9 +1,10 @@
import React from 'react'; import React from 'react';
import { mountWithContexts, waitForElement } from '../../../../testUtils/enzymeHelpers'; import { OrganizationsAPI } from '@api';
import OrganizationsList, { _OrganizationsList } from './OrganizationList'; import { mountWithContexts, waitForElement } from '@testUtils/enzymeHelpers';
import { OrganizationsAPI } from '../../../api';
jest.mock('../../../api'); import OrganizationsList, { _OrganizationsList } from './OrganizationList';
jest.mock('@api');
const mockAPIOrgsList = { const mockAPIOrgsList = {
data: { data: {

View File

@@ -13,11 +13,10 @@ import {
import { import {
Link Link
} from 'react-router-dom'; } from 'react-router-dom';
import styled from 'styled-components'; import styled from 'styled-components';
import VerticalSeparator from '../../../components/VerticalSeparator'; import VerticalSeparator from '@components/VerticalSeparator';
import { Organization } from '../../../types'; import { Organization } from '@types';
const Badge = styled(PFBadge)` const Badge = styled(PFBadge)`
align-items: center; align-items: center;

View File

@@ -1,7 +1,9 @@
import React from 'react'; import React from 'react';
import { MemoryRouter } from 'react-router-dom'; import { MemoryRouter } from 'react-router-dom';
import { I18nProvider } from '@lingui/react'; import { I18nProvider } from '@lingui/react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import OrganizationListItem from './OrganizationListItem'; import OrganizationListItem from './OrganizationListItem';
describe('<OrganizationListItem />', () => { describe('<OrganizationListItem />', () => {

View File

@@ -4,11 +4,11 @@ import { withRouter } from 'react-router-dom';
import { withI18n } from '@lingui/react'; import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import AlertModal from '../../../components/AlertModal'; import { OrganizationsAPI } from '@api';
import PaginatedDataList from '../../../components/PaginatedDataList'; import AlertModal from '@components/AlertModal';
import NotificationListItem from '../../../components/NotificationsList/NotificationListItem'; import NotificationListItem from '@components/NotificationsList/NotificationListItem';
import { getQSConfig, parseNamespacedQueryString } from '../../../util/qs'; import PaginatedDataList from '@components/PaginatedDataList';
import { OrganizationsAPI } from '../../../api'; import { getQSConfig, parseNamespacedQueryString } from '@util/qs';
const QS_CONFIG = getQSConfig('notification', { const QS_CONFIG = getQSConfig('notification', {
page: 1, page: 1,

View File

@@ -1,10 +1,11 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers'; import { OrganizationsAPI } from '@api';
import OrganizationNotifications from './OrganizationNotifications'; import { mountWithContexts } from '@testUtils/enzymeHelpers';
import { sleep } from '../../../../testUtils/testUtils'; import { sleep } from '@testUtils/testUtils';
import { OrganizationsAPI } from '../../../api';
jest.mock('../../../api'); import OrganizationNotifications from './OrganizationNotifications';
jest.mock('@api');
describe('<OrganizationNotifications />', () => { describe('<OrganizationNotifications />', () => {
let data; let data;

View File

@@ -410,9 +410,9 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"$$typeof": Symbol(react.forward_ref), "$$typeof": Symbol(react.forward_ref),
"attrs": Array [], "attrs": Array [],
"componentStyle": ComponentStyle { "componentStyle": ComponentStyle {
"componentId": "sc-bwzfXH", "componentId": "sc-bxivhb",
"isStatic": true, "isStatic": true,
"lastClassName": "iBEPfq", "lastClassName": "gYEJOJ",
"rules": Array [ "rules": Array [
"flex-grow: 1;", "flex-grow: 1;",
], ],
@@ -420,7 +420,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"displayName": "Styled(ToolbarItem)", "displayName": "Styled(ToolbarItem)",
"foldedComponentIds": Array [], "foldedComponentIds": Array [],
"render": [Function], "render": [Function],
"styledComponentId": "sc-bwzfXH", "styledComponentId": "sc-bxivhb",
"target": [Function], "target": [Function],
"toString": [Function], "toString": [Function],
"warnTooManyClasses": [Function], "warnTooManyClasses": [Function],
@@ -430,10 +430,10 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
forwardedRef={null} forwardedRef={null}
> >
<ToolbarItem <ToolbarItem
className="sc-bwzfXH iBEPfq" className="sc-bxivhb gYEJOJ"
> >
<div <div
className="pf-l-toolbar__item sc-bwzfXH iBEPfq" className="pf-l-toolbar__item sc-bxivhb gYEJOJ"
> >
<WithI18n <WithI18n
columns={ columns={
@@ -1441,9 +1441,9 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"$$typeof": Symbol(react.forward_ref), "$$typeof": Symbol(react.forward_ref),
"attrs": Array [], "attrs": Array [],
"componentStyle": ComponentStyle { "componentStyle": ComponentStyle {
"componentId": "sc-bdVaJa", "componentId": "sc-htpNat",
"isStatic": true, "isStatic": true,
"lastClassName": "delFyH", "lastClassName": "jWbbwS",
"rules": Array [ "rules": Array [
"padding: 0;", "padding: 0;",
], ],
@@ -1451,7 +1451,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"displayName": "Styled(Button)", "displayName": "Styled(Button)",
"foldedComponentIds": Array [], "foldedComponentIds": Array [],
"render": [Function], "render": [Function],
"styledComponentId": "sc-bdVaJa", "styledComponentId": "sc-htpNat",
"target": [Function], "target": [Function],
"toString": [Function], "toString": [Function],
"warnTooManyClasses": [Function], "warnTooManyClasses": [Function],
@@ -1464,7 +1464,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
> >
<Button <Button
aria-label="Sort" aria-label="Sort"
className="sc-bdVaJa delFyH" className="sc-htpNat jWbbwS"
component="button" component="button"
isActive={false} isActive={false}
isBlock={false} isBlock={false}
@@ -1479,7 +1479,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
<button <button
aria-disabled={null} aria-disabled={null}
aria-label="Sort" aria-label="Sort"
className="pf-c-button pf-m-plain sc-bdVaJa delFyH" className="pf-c-button pf-m-plain sc-htpNat jWbbwS"
disabled={false} disabled={false}
onClick={[Function]} onClick={[Function]}
tabIndex={null} tabIndex={null}
@@ -1767,9 +1767,9 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"$$typeof": Symbol(react.forward_ref), "$$typeof": Symbol(react.forward_ref),
"attrs": Array [], "attrs": Array [],
"componentStyle": ComponentStyle { "componentStyle": ComponentStyle {
"componentId": "sc-bxivhb", "componentId": "sc-bdVaJa",
"isStatic": true, "isStatic": true,
"lastClassName": "lohjuH", "lastClassName": "eBseNd",
"rules": Array [ "rules": Array [
"margin-right: 1.5em;", "margin-right: 1.5em;",
], ],
@@ -1777,7 +1777,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"displayName": "Styled(Link)", "displayName": "Styled(Link)",
"foldedComponentIds": Array [], "foldedComponentIds": Array [],
"render": [Function], "render": [Function],
"styledComponentId": "sc-bxivhb", "styledComponentId": "sc-bdVaJa",
"target": [Function], "target": [Function],
"toString": [Function], "toString": [Function],
"warnTooManyClasses": [Function], "warnTooManyClasses": [Function],
@@ -1792,7 +1792,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
} }
> >
<Link <Link
className="sc-bxivhb lohjuH" className="sc-bdVaJa eBseNd"
replace={false} replace={false}
to={ to={
Object { Object {
@@ -1801,7 +1801,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
} }
> >
<a <a
className="sc-bxivhb lohjuH" className="sc-bdVaJa eBseNd"
onClick={[Function]} onClick={[Function]}
> >
<b <b
@@ -1822,9 +1822,9 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"$$typeof": Symbol(react.forward_ref), "$$typeof": Symbol(react.forward_ref),
"attrs": Array [], "attrs": Array [],
"componentStyle": ComponentStyle { "componentStyle": ComponentStyle {
"componentId": "sc-ifAKCX", "componentId": "sc-bwzfXH",
"isStatic": true, "isStatic": true,
"lastClassName": "jGZNNo", "lastClassName": "chTbOZ",
"rules": Array [ "rules": Array [
"text-transform: capitalize;", "text-transform: capitalize;",
], ],
@@ -1832,7 +1832,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"displayName": "Styled(Badge)", "displayName": "Styled(Badge)",
"foldedComponentIds": Array [], "foldedComponentIds": Array [],
"render": [Function], "render": [Function],
"styledComponentId": "sc-ifAKCX", "styledComponentId": "sc-bwzfXH",
"target": [Function], "target": [Function],
"toString": [Function], "toString": [Function],
"warnTooManyClasses": [Function], "warnTooManyClasses": [Function],
@@ -1843,11 +1843,11 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
isRead={true} isRead={true}
> >
<Badge <Badge
className="sc-ifAKCX jGZNNo" className="sc-bwzfXH chTbOZ"
isRead={true} isRead={true}
> >
<span <span
className="pf-c-badge pf-m-read sc-ifAKCX jGZNNo" className="pf-c-badge pf-m-read sc-bwzfXH chTbOZ"
> >
email email
</span> </span>
@@ -2242,9 +2242,9 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"$$typeof": Symbol(react.forward_ref), "$$typeof": Symbol(react.forward_ref),
"attrs": Array [], "attrs": Array [],
"componentStyle": ComponentStyle { "componentStyle": ComponentStyle {
"componentId": "sc-bxivhb", "componentId": "sc-bdVaJa",
"isStatic": true, "isStatic": true,
"lastClassName": "lohjuH", "lastClassName": "eBseNd",
"rules": Array [ "rules": Array [
"margin-right: 1.5em;", "margin-right: 1.5em;",
], ],
@@ -2252,7 +2252,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"displayName": "Styled(Link)", "displayName": "Styled(Link)",
"foldedComponentIds": Array [], "foldedComponentIds": Array [],
"render": [Function], "render": [Function],
"styledComponentId": "sc-bxivhb", "styledComponentId": "sc-bdVaJa",
"target": [Function], "target": [Function],
"toString": [Function], "toString": [Function],
"warnTooManyClasses": [Function], "warnTooManyClasses": [Function],
@@ -2267,7 +2267,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
} }
> >
<Link <Link
className="sc-bxivhb lohjuH" className="sc-bdVaJa eBseNd"
replace={false} replace={false}
to={ to={
Object { Object {
@@ -2276,7 +2276,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
} }
> >
<a <a
className="sc-bxivhb lohjuH" className="sc-bdVaJa eBseNd"
onClick={[Function]} onClick={[Function]}
> >
<b <b
@@ -2297,9 +2297,9 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"$$typeof": Symbol(react.forward_ref), "$$typeof": Symbol(react.forward_ref),
"attrs": Array [], "attrs": Array [],
"componentStyle": ComponentStyle { "componentStyle": ComponentStyle {
"componentId": "sc-ifAKCX", "componentId": "sc-bwzfXH",
"isStatic": true, "isStatic": true,
"lastClassName": "jGZNNo", "lastClassName": "chTbOZ",
"rules": Array [ "rules": Array [
"text-transform: capitalize;", "text-transform: capitalize;",
], ],
@@ -2307,7 +2307,7 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
"displayName": "Styled(Badge)", "displayName": "Styled(Badge)",
"foldedComponentIds": Array [], "foldedComponentIds": Array [],
"render": [Function], "render": [Function],
"styledComponentId": "sc-ifAKCX", "styledComponentId": "sc-bwzfXH",
"target": [Function], "target": [Function],
"toString": [Function], "toString": [Function],
"warnTooManyClasses": [Function], "warnTooManyClasses": [Function],
@@ -2318,11 +2318,11 @@ exports[`<OrganizationNotifications /> initially renders succesfully 1`] = `
isRead={true} isRead={true}
> >
<Badge <Badge
className="sc-ifAKCX jGZNNo" className="sc-bwzfXH chTbOZ"
isRead={true} isRead={true}
> >
<span <span
className="pf-c-badge pf-m-read sc-ifAKCX jGZNNo" className="pf-c-badge pf-m-read sc-bwzfXH chTbOZ"
> >
email email
</span> </span>

View File

@@ -1,9 +1,10 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { withRouter } from 'react-router-dom'; import { withRouter } from 'react-router-dom';
import PaginatedDataList from '../../../components/PaginatedDataList';
import { getQSConfig, parseNamespacedQueryString } from '../../../util/qs'; import { OrganizationsAPI } from '@api';
import { OrganizationsAPI } from '../../../api'; import PaginatedDataList from '@components/PaginatedDataList';
import { getQSConfig, parseNamespacedQueryString } from '@util/qs';
const QS_CONFIG = getQSConfig('team', { const QS_CONFIG = getQSConfig('team', {
page: 1, page: 1,

View File

@@ -1,11 +1,13 @@
import React from 'react'; import React from 'react';
import { shallow } from 'enzyme'; import { shallow } from 'enzyme';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { sleep } from '../../../../testUtils/testUtils';
import OrganizationTeams from './OrganizationTeams';
import { OrganizationsAPI } from '../../../api';
jest.mock('../../../api'); import { OrganizationsAPI } from '@api';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import { sleep } from '@testUtils/testUtils';
import OrganizationTeams from './OrganizationTeams';
jest.mock('@api');
const listData = { const listData = {
data: { data: {

View File

@@ -3,8 +3,8 @@ import { Route, withRouter, Switch } from 'react-router-dom';
import { withI18n } from '@lingui/react'; import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import { Config } from '../../contexts/Config'; import { Config } from '@contexts/Config';
import Breadcrumbs from '../../components/Breadcrumbs/Breadcrumbs'; import Breadcrumbs from '@components/Breadcrumbs/Breadcrumbs';
import OrganizationsList from './OrganizationList/OrganizationList'; import OrganizationsList from './OrganizationList/OrganizationList';
import OrganizationAdd from './OrganizationAdd/OrganizationAdd'; import OrganizationAdd from './OrganizationAdd/OrganizationAdd';

View File

@@ -1,8 +1,8 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../testUtils/enzymeHelpers'; import { mountWithContexts } from '@testUtils/enzymeHelpers';
import Organizations from './Organizations'; import Organizations from './Organizations';
jest.mock('../../../src/api'); jest.mock('@api');
describe('<Organizations />', () => { describe('<Organizations />', () => {
test('initially renders succesfully', () => { test('initially renders succesfully', () => {

View File

@@ -5,9 +5,8 @@ import { t } from '@lingui/macro';
import { FormGroup, Tooltip } from '@patternfly/react-core'; import { FormGroup, Tooltip } from '@patternfly/react-core';
import { QuestionCircleIcon } from '@patternfly/react-icons'; import { QuestionCircleIcon } from '@patternfly/react-icons';
import Lookup from '../../../components/Lookup'; import { InstanceGroupsAPI } from '@api';
import Lookup from '@components/Lookup';
import { InstanceGroupsAPI } from '../../../api';
const getInstanceGroups = async (params) => InstanceGroupsAPI.read(params); const getInstanceGroups = async (params) => InstanceGroupsAPI.read(params);

View File

@@ -13,14 +13,15 @@ import {
FormGroup, FormGroup,
} from '@patternfly/react-core'; } from '@patternfly/react-core';
import { Config } from '../../../contexts/Config'; import { OrganizationsAPI } from '@api';
import FormRow from '../../../components/FormRow'; import { Config } from '@contexts/Config';
import FormField from '../../../components/FormField'; import FormRow from '@components/FormRow';
import FormActionGroup from '../../../components/FormActionGroup/FormActionGroup'; import FormField from '@components/FormField';
import AnsibleSelect from '../../../components/AnsibleSelect'; import FormActionGroup from '@components/FormActionGroup/FormActionGroup';
import AnsibleSelect from '@components/AnsibleSelect';
import { required, minMaxValue } from '@util/validators';
import InstanceGroupsLookup from './InstanceGroupsLookup'; import InstanceGroupsLookup from './InstanceGroupsLookup';
import { OrganizationsAPI } from '../../../api';
import { required, minMaxValue } from '../../../util/validators';
class OrganizationForm extends Component { class OrganizationForm extends Component {
constructor (props) { constructor (props) {

View File

@@ -1,10 +1,12 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { sleep } from '../../../../testUtils/testUtils';
import OrganizationForm from './OrganizationForm';
import { OrganizationsAPI } from '../../../api';
jest.mock('../../../api'); import { mountWithContexts } from '@testUtils/enzymeHelpers';
import { sleep } from '@testUtils/testUtils';
import { OrganizationsAPI } from '@api';
import OrganizationForm from './OrganizationForm';
jest.mock('@api');
describe('<OrganizationForm />', () => { describe('<OrganizationForm />', () => {
const network = {}; const network = {};

View File

@@ -7,14 +7,19 @@ import {
PageSection, PageSection,
PageSectionVariants, PageSectionVariants,
} from '@patternfly/react-core'; } from '@patternfly/react-core';
import { JobTemplatesAPI, UnifiedJobTemplatesAPI, WorkflowJobTemplatesAPI } from '../../../api';
import { getQSConfig, parseNamespacedQueryString } from '../../../util/qs'; import {
import AlertModal from '../../../components/AlertModal'; JobTemplatesAPI,
import DatalistToolbar from '../../../components/DataListToolbar'; UnifiedJobTemplatesAPI,
WorkflowJobTemplatesAPI
} from '@api';
import AlertModal from '@components/AlertModal';
import DatalistToolbar from '@components/DataListToolbar';
import PaginatedDataList, { import PaginatedDataList, {
ToolbarDeleteButton ToolbarDeleteButton
} from '../../../components/PaginatedDataList'; } from '@components/PaginatedDataList';
import { getQSConfig, parseNamespacedQueryString } from '@util/qs';
import TemplateListItem from './TemplateListItem'; import TemplateListItem from './TemplateListItem';
// The type value in const QS_CONFIG below does not have a space between job_template and // The type value in const QS_CONFIG below does not have a space between job_template and

View File

@@ -9,8 +9,8 @@ import {
} from '@patternfly/react-core'; } from '@patternfly/react-core';
import styled from 'styled-components'; import styled from 'styled-components';
import { toTitleCase } from '../../../util/strings'; import VerticalSeparator from '@components/VerticalSeparator';
import VerticalSeparator from '../../../components/VerticalSeparator'; import { toTitleCase } from '@util/strings';
const DataListCell = styled(PFDataListCell)` const DataListCell = styled(PFDataListCell)`
display: flex; display: flex;

View File

@@ -1,9 +1,14 @@
import React from 'react'; import React from 'react';
import { mountWithContexts, waitForElement } from '../../../../testUtils/enzymeHelpers'; import {
import TemplatesList, { _TemplatesList } from './TemplateList'; JobTemplatesAPI,
import { JobTemplatesAPI, UnifiedJobTemplatesAPI, WorkflowJobTemplatesAPI } from '../../../api'; UnifiedJobTemplatesAPI,
WorkflowJobTemplatesAPI
} from '@api';
import { mountWithContexts, waitForElement } from '@testUtils/enzymeHelpers';
jest.mock('../../../api'); import TemplatesList, { _TemplatesList } from './TemplateList';
jest.mock('@api');
const mockTemplates = [{ const mockTemplates = [{
id: 1, id: 1,

View File

@@ -1,5 +1,7 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '../../../../testUtils/enzymeHelpers';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import TemplatesListItem from './TemplateListItem'; import TemplatesListItem from './TemplateListItem';
describe('<TemplatesListItem />', () => { describe('<TemplatesListItem />', () => {

View File

@@ -3,7 +3,8 @@ import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import { Route, withRouter, Switch } from 'react-router-dom'; import { Route, withRouter, Switch } from 'react-router-dom';
import Breadcrumbs from '../../components/Breadcrumbs/Breadcrumbs'; import Breadcrumbs from '@components/Breadcrumbs/Breadcrumbs';
import { TemplateList } from './TemplateList'; import { TemplateList } from './TemplateList';
class Templates extends Component { class Templates extends Component {

View File

@@ -1,6 +1,8 @@
import React from 'react'; import React from 'react';
import { mountWithContexts } from '@testUtils/enzymeHelpers';
import Templates from './Templates'; import Templates from './Templates';
import { mountWithContexts } from '../../../testUtils/enzymeHelpers';
describe('<Templates />', () => { describe('<Templates />', () => {
let pageWrapper; let pageWrapper;

View File

@@ -5,6 +5,9 @@ const TARGET_PORT = process.env.TARGET_PORT || 8043;
const TARGET_HOST = process.env.TARGET_HOST || 'localhost'; const TARGET_HOST = process.env.TARGET_HOST || 'localhost';
const TARGET = `https://${TARGET_HOST}:${TARGET_PORT}`; const TARGET = `https://${TARGET_HOST}:${TARGET_PORT}`;
const ROOT_PATH = __dirname;
const SRC_PATH = path.join(ROOT_PATH, 'src');
module.exports = { module.exports = {
entry: './src/index.jsx', entry: './src/index.jsx',
module: { module: {
@@ -53,7 +56,16 @@ module.exports = {
] ]
}, },
resolve: { resolve: {
extensions: ['*', '.js', '.jsx', '.css'] extensions: ['*', '.js', '.jsx', '.css'],
alias: {
'@api': path.join(SRC_PATH, 'api'),
'@components': path.join(SRC_PATH, 'components'),
'@contexts': path.join(SRC_PATH, 'contexts'),
'@screens': path.join(SRC_PATH, 'screens'),
'@types': path.join(SRC_PATH, 'types'),
'@util': path.join(SRC_PATH, 'util'),
'@testUtils': path.join(ROOT_PATH, 'testUtils'),
}
}, },
output: { output: {
path: path.resolve(__dirname, '/dist'), path: path.resolve(__dirname, '/dist'),