Skip to content

Commit

Permalink
move test data from mocks to tests folder
Browse files Browse the repository at this point in the history
  • Loading branch information
debsmita1 committed Dec 23, 2019
1 parent f32d3c4 commit 14e1da9
Show file tree
Hide file tree
Showing 9 changed files with 68 additions and 70 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import * as React from 'react';
import { match as RMatch } from 'react-router';
import { NamespaceBar } from '@console/internal/components/namespace';
import { RenderProjectAccessPage, RenderProjectAccessPageProps } from './RenderProjectAccessPage';
import RenderProjectAccess from './RenderProjectAccessPage';

export interface ProjectAccessPageProps {
match: RMatch<{
Expand All @@ -11,13 +11,13 @@ export interface ProjectAccessPageProps {

const ProjectAccessPage: React.FC<ProjectAccessPageProps> = ({ match }) => {
const namespace = match.params.ns;
const props: RenderProjectAccessPageProps = {
const props: React.ComponentProps<typeof RenderProjectAccess> = {
namespace,
};
return (
<>
<NamespaceBar />
<RenderProjectAccessPage {...props} />
<RenderProjectAccess {...props} />
</>
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,14 @@ import * as React from 'react';
import { Firehose } from '@console/internal/components/utils';
import { withStartGuide } from '@console/internal/components/start-guide';
import ProjectListPage from '../projects/ProjectListPage';
import ProjectAccess, { ProjectAccessProps } from './ProjectAccess';
import ProjectAccess from './ProjectAccess';

export interface RenderProjectAccessPageProps {
namespace: string;
}

export const RenderProjectAccessPageComponent: React.FC<RenderProjectAccessPageProps> = ({
namespace,
}) => {
const props: ProjectAccessProps = {
export const RenderProjectAccessPage: React.FC<RenderProjectAccessPageProps> = ({ namespace }) => {
const props: React.ComponentProps<typeof ProjectAccess> = {
formName: 'project access',
namespace,
};
Expand Down Expand Up @@ -42,4 +40,4 @@ export const RenderProjectAccessPageComponent: React.FC<RenderProjectAccessPageP
);
};

export const RenderProjectAccessPage = withStartGuide(RenderProjectAccessPageComponent);
export default withStartGuide(RenderProjectAccessPage);
Original file line number Diff line number Diff line change
@@ -1,43 +1,51 @@
import * as React from 'react';
import { shallow, ShallowWrapper } from 'enzyme';
import { shallow } from 'enzyme';
import { Formik } from 'formik';
import { LoadingBox, StatusBox } from '@console/internal/components/utils';
import ProjectAccess, { ProjectAccessProps } from '../ProjectAccess';

const projectAccessProps: ProjectAccessProps = {
formName: 'project access',
namespace: 'abc',
roleBindings: {
data: [],
loaded: true,
loadError: {},
},
};
import ProjectAccess from '../ProjectAccess';

describe('Project Access', () => {
let renderProjectAccess: ShallowWrapper<ProjectAccessProps>;

it('should show the LoadingBox when role bindings are not loaded, but user has access to role bindings', () => {
projectAccessProps.roleBindings.loaded = false;
renderProjectAccess = shallow(<ProjectAccess {...projectAccessProps} />);
expect(renderProjectAccess.exists()).toBe(true);
const projectAccessProps: React.ComponentProps<typeof ProjectAccess> = {
formName: 'project access',
namespace: 'abc',
roleBindings: {
data: [],
loaded: false,
loadError: {},
},
};
const renderProjectAccess = shallow(<ProjectAccess {...projectAccessProps} />);
expect(renderProjectAccess.find(LoadingBox).exists()).toBeTruthy();
expect(renderProjectAccess.find(Formik).exists()).toBe(false);
});

it('should show the StatusBox when there is error loading the role bindings', () => {
projectAccessProps.roleBindings.loadError = { error: 'user has no access to role bindigs' };
renderProjectAccess = shallow(<ProjectAccess {...projectAccessProps} />);
expect(renderProjectAccess.exists()).toBe(true);
const projectAccessProps: React.ComponentProps<typeof ProjectAccess> = {
formName: 'project access',
namespace: 'abc',
roleBindings: {
data: [],
loaded: false,
loadError: { error: 'user has no access to role bindigs' },
},
};
const renderProjectAccess = shallow(<ProjectAccess {...projectAccessProps} />);
expect(renderProjectAccess.find(StatusBox).exists()).toBeTruthy();
expect(renderProjectAccess.find(Formik).exists()).toBe(false);
});

it('should load the Formik Form Component when role bindings loads without any error', () => {
projectAccessProps.roleBindings.loaded = true;
projectAccessProps.roleBindings.loadError = undefined;
renderProjectAccess = shallow(<ProjectAccess {...projectAccessProps} />);
expect(renderProjectAccess.exists()).toBe(true);
const projectAccessProps: React.ComponentProps<typeof ProjectAccess> = {
formName: 'project access',
namespace: 'abc',
roleBindings: {
data: [],
loaded: true,
loadError: undefined,
},
};
const renderProjectAccess = shallow(<ProjectAccess {...projectAccessProps} />);
expect(renderProjectAccess.find(Formik).exists()).toBe(true);
});
});
Original file line number Diff line number Diff line change
@@ -1,27 +1,25 @@
import * as React from 'react';
import { shallow, ShallowWrapper } from 'enzyme';
import { shallow } from 'enzyme';
import { NamespaceBar } from '@console/internal/components/namespace';
import ProjectAccessPage, { ProjectAccessPageProps } from '../ProjectAccessPage';
import { RenderProjectAccessPage } from '../RenderProjectAccessPage';
import ProjectAccessPage from '../ProjectAccessPage';
import RenderProjectAccess from '../RenderProjectAccessPage';

describe('Project Access Page', () => {
let wrapper: ShallowWrapper<ProjectAccessPageProps>;
let projectAccessPageProps;

beforeEach(() => {
projectAccessPageProps = {
match: {
params: {
ns: 'default',
},
const projectAccessPageProps = {
match: {
isExact: true,
path: `/project-access/ns/:ns`,
url: ``,
params: {
ns: 'default',
},
};
wrapper = shallow(<ProjectAccessPage {...projectAccessPageProps} />);
});
},
};
const wrapper = shallow(<ProjectAccessPage {...projectAccessPageProps} />);
it('should have the NamespaceBar Component', () => {
expect(wrapper.find(NamespaceBar).exists()).toBeTruthy();
});
it('should render the RenderProjectAccessPage Component', () => {
expect(wrapper.find(RenderProjectAccessPage).exists()).toBeTruthy();
expect(wrapper.find(RenderProjectAccess).exists()).toBeTruthy();
});
});
Original file line number Diff line number Diff line change
@@ -1,33 +1,27 @@
import * as React from 'react';
import { shallow, ShallowWrapper } from 'enzyme';
import { shallow } from 'enzyme';
import ProjectAccess from '../ProjectAccess';
import ProjectListPage from '../../projects/ProjectListPage';
import {
RenderProjectAccessPageComponent,
RenderProjectAccessPageProps,
} from '../RenderProjectAccessPage';

const renderProjectAccessPageProps: RenderProjectAccessPageProps = {
namespace: 'abc',
};
import { RenderProjectAccessPage } from '../RenderProjectAccessPage';

describe('Render Project Access Page', () => {
let renderProjectAccessPageWrapper: ShallowWrapper<RenderProjectAccessPageProps>;

it('should render Project Access page', () => {
renderProjectAccessPageWrapper = shallow(
<RenderProjectAccessPageComponent {...renderProjectAccessPageProps} />,
const renderProjectAccessPageProps: React.ComponentProps<typeof RenderProjectAccessPage> = {
namespace: 'abc',
};
const renderProjectAccessPageWrapper = shallow(
<RenderProjectAccessPage {...renderProjectAccessPageProps} />,
);
expect(renderProjectAccessPageWrapper.exists()).toBe(true);
expect(renderProjectAccessPageWrapper.find(ProjectAccess).exists()).toBe(true);
});

it('should render the project list when a namespace is not selected', () => {
renderProjectAccessPageProps.namespace = '';
renderProjectAccessPageWrapper = shallow(
<RenderProjectAccessPageComponent {...renderProjectAccessPageProps} />,
const renderProjectAccessPageProps: React.ComponentProps<typeof RenderProjectAccessPage> = {
namespace: '',
};
const renderProjectAccessPageWrapper = shallow(
<RenderProjectAccessPage {...renderProjectAccessPageProps} />,
);
expect(renderProjectAccessPageWrapper.exists()).toBe(true);
expect(renderProjectAccessPageWrapper.find(ProjectAccess).exists()).toBe(false);
expect(renderProjectAccessPageWrapper.find(ProjectListPage).exists()).toBe(true);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import {
rolesBindingsToBeRemoved,
formValues2,
roleBindingsToBeCreated2,
} from '../__mocks__/project-access-form-mock';
} from './project-access-form-data';

describe('Project Access handleSubmit Utils', () => {
it('should get roles removed by the user', async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
roleBindingsWithRequiredRolesResult,
roleBindingsWithRequiredRoles,
roleBindingsWithRequiredAttributes,
} from '../__mocks__/project-access-form-mock';
} from './project-access-form-data';

describe('Fetch required roles', () => {
it('should fetch the only the required rolebindings', async () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { cloneDeep } from 'lodash';
import { validationSchema } from '../project-access-form-validation-utils';
import { mockProjectAccessData } from '../__mocks__/project-access-form-mock';
import { mockProjectAccessData } from './project-access-form-data';

describe('ValidationUtils', () => {
it('should throw an error if Name field is empty', async () => {
Expand Down

0 comments on commit 14e1da9

Please sign in to comment.