Add stub files for Instance Groups

Add stub files for Instance Groups. Routing system, and screens layout.

closes: https://github.com/ansible/awx/issues/7471
This commit is contained in:
nixocio
2020-07-01 17:20:16 -04:00
parent 6e651ce275
commit 24f86cd0d1
11 changed files with 128 additions and 27 deletions

View File

@@ -0,0 +1,25 @@
import React from 'react';
import { Route, Switch, Redirect } from 'react-router-dom';
import InstanceGroupDetails from './InstanceGroupDetails';
import InstanceGroupEdit from './InstanceGroupEdit';
function InstanceGroup() {
return (
<Switch>
<Redirect
from="/instance_groups/:id"
to="/instance_groups/:id/details"
exact
/>
<Route path="/instance_groups/:id/edit">
<InstanceGroupEdit />
</Route>
<Route path="/instance_groups/:id/details">
<InstanceGroupDetails />
</Route>
</Switch>
);
}
export default InstanceGroup;

View File

@@ -0,0 +1,14 @@
import React from 'react';
import { Card, PageSection } from '@patternfly/react-core';
function InstanceGroupAdd() {
return (
<PageSection>
<Card>
<div>Instance Group Add</div>
</Card>
</PageSection>
);
}
export default InstanceGroupAdd;

View File

@@ -0,0 +1 @@
export { default } from './InstanceGroupAdd';

View File

@@ -0,0 +1,14 @@
import React from 'react';
import { Card, PageSection } from '@patternfly/react-core';
function InstanceGroupDetails() {
return (
<PageSection>
<Card>
<div>Instance Group Details</div>
</Card>
</PageSection>
);
}
export default InstanceGroupDetails;

View File

@@ -0,0 +1 @@
export { default } from './InstanceGroupDetails';

View File

@@ -0,0 +1,14 @@
import React from 'react';
import { Card, PageSection } from '@patternfly/react-core';
function InstanceGroupEdit() {
return (
<PageSection>
<Card>
<div>Instance Group Edit</div>
</Card>
</PageSection>
);
}
export default InstanceGroupEdit;

View File

@@ -0,0 +1 @@
export { default } from './InstanceGroupEdit';

View File

@@ -0,0 +1,14 @@
import React from 'react';
import { Card, PageSection } from '@patternfly/react-core';
function InstanceGroupList() {
return (
<PageSection>
<Card>
<div>Instance Group List</div>
</Card>
</PageSection>
);
}
export default InstanceGroupList;

View File

@@ -0,0 +1 @@
export { default } from './InstanceGroupList';

View File

@@ -1,28 +1,48 @@
import React, { Component, Fragment } from 'react'; import React, { useState, useCallback } from 'react';
import { withI18n } from '@lingui/react'; import { withI18n } from '@lingui/react';
import { t } from '@lingui/macro'; import { t } from '@lingui/macro';
import { import { Route, Switch } from 'react-router-dom';
PageSection,
PageSectionVariants,
Title,
} from '@patternfly/react-core';
class InstanceGroups extends Component { import InstanceGroupAdd from './InstanceGroupAdd';
render() { import InstanceGroupList from './InstanceGroupList';
const { i18n } = this.props; import InstanceGroup from './InstanceGroup';
const { light } = PageSectionVariants; import Breadcrumbs from '../../components/Breadcrumbs';
return ( function InstanceGroups({ i18n }) {
<Fragment> const [breadcrumbConfig, setBreadcrumbConfig] = useState({
<PageSection variant={light} className="pf-m-condensed"> '/instance_groups': i18n._(t`Instance Groups`),
<Title size="2xl" headingLevel="h2"> '/instance_groups/add': i18n._(t`Create Instance Groups`),
{i18n._(t`Instance Groups`)} });
</Title>
</PageSection> const buildBreadcrumbConfig = useCallback(
<PageSection /> instanceGroups => {
</Fragment> if (!instanceGroups) {
); return;
} }
setBreadcrumbConfig({
'/instance_groups': i18n._(t`Instance Groups`),
'/instance_groups/add': i18n._(t`Create Instance Groups`),
[`/instance_groups/${instanceGroups.id}`]: `${instanceGroups.name}`,
});
},
[i18n]
);
return (
<>
<Breadcrumbs breadcrumbConfig={breadcrumbConfig} />
<Switch>
<Route path="/instance_groups/add">
<InstanceGroupAdd />
</Route>
<Route path="/instance_groups/:id">
<InstanceGroup setBreadcrumb={buildBreadcrumbConfig} />
</Route>
<Route path="/instance_groups">
<InstanceGroupList />
</Route>
</Switch>
</>
);
} }
export default withI18n()(InstanceGroups); export default withI18n()(InstanceGroups);

View File

@@ -4,15 +4,13 @@ import { mountWithContexts } from '../../../testUtils/enzymeHelpers';
import InstanceGroups from './InstanceGroups'; import InstanceGroups from './InstanceGroups';
describe('<InstanceGroups />', () => { describe('<InstanceGroups/>', () => {
let pageWrapper; let pageWrapper;
let pageSections; let pageSections;
let title;
beforeEach(() => { beforeEach(() => {
pageWrapper = mountWithContexts(<InstanceGroups />); pageWrapper = mountWithContexts(<InstanceGroups />);
pageSections = pageWrapper.find('PageSection'); pageSections = pageWrapper.find('PageSection');
title = pageWrapper.find('Title');
}); });
afterEach(() => { afterEach(() => {
@@ -21,9 +19,7 @@ describe('<InstanceGroups />', () => {
test('initially renders without crashing', () => { test('initially renders without crashing', () => {
expect(pageWrapper.length).toBe(1); expect(pageWrapper.length).toBe(1);
expect(pageSections.length).toBe(2); expect(pageSections.length).toBe(1);
expect(title.length).toBe(1);
expect(title.props().size).toBe('2xl');
expect(pageSections.first().props().variant).toBe('light'); expect(pageSections.first().props().variant).toBe('light');
}); });
}); });