2019-04-05 02:23:40 +07:00
|
|
|
import React from 'react';
|
2019-10-06 21:55:49 +07:00
|
|
|
import { render } from '@testing-library/react';
|
|
|
|
|
|
|
|
import { DetailContext, DetailContextProps } from '../../pages/Version';
|
|
|
|
import data from './__partials__/data.json';
|
2019-04-05 02:23:40 +07:00
|
|
|
|
2019-06-20 19:37:28 +07:00
|
|
|
import Install from './Install';
|
2019-04-05 02:23:40 +07:00
|
|
|
|
2019-10-06 21:55:49 +07:00
|
|
|
const detailContextValue: Partial<DetailContextProps> = {
|
|
|
|
packageName: 'foo',
|
|
|
|
packageMeta: data,
|
|
|
|
};
|
|
|
|
|
|
|
|
const ComponentToBeRendered: React.FC = () => (
|
|
|
|
<DetailContext.Provider value={detailContextValue}>
|
|
|
|
<Install />
|
|
|
|
</DetailContext.Provider>
|
|
|
|
);
|
|
|
|
|
|
|
|
/* eslint-disable react/jsx-no-bind*/
|
|
|
|
describe('<Install />', () => {
|
|
|
|
test('renders correctly', () => {
|
|
|
|
const { container } = render(<ComponentToBeRendered />);
|
|
|
|
expect(container.firstChild).toMatchSnapshot();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('should have 3 children', () => {
|
|
|
|
const { getByTestId } = render(<ComponentToBeRendered />);
|
|
|
|
const installListItems = getByTestId('installList');
|
|
|
|
// installitems + subHeader = 4
|
|
|
|
expect(installListItems.children.length).toBe(4);
|
|
|
|
});
|
|
|
|
|
|
|
|
test('should have the element NPM', () => {
|
|
|
|
const { getByTestId, queryByText } = render(<ComponentToBeRendered />);
|
|
|
|
expect(getByTestId('installListItem-npm')).toBeTruthy();
|
|
|
|
expect(queryByText(`npm install ${detailContextValue.packageName}`)).toBeTruthy();
|
|
|
|
expect(queryByText('Install using npm')).toBeTruthy();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('should have the element YARN', () => {
|
|
|
|
const { getByTestId, queryByText } = render(<ComponentToBeRendered />);
|
|
|
|
expect(getByTestId('installListItem-yarn')).toBeTruthy();
|
|
|
|
expect(queryByText(`yarn add ${detailContextValue.packageName}`)).toBeTruthy();
|
|
|
|
expect(queryByText('Install using yarn')).toBeTruthy();
|
|
|
|
});
|
|
|
|
|
|
|
|
test('should have the element PNPM', () => {
|
|
|
|
const { getByTestId, queryByText } = render(<ComponentToBeRendered />);
|
|
|
|
expect(getByTestId('installListItem-pnpm')).toBeTruthy();
|
|
|
|
expect(queryByText(`pnpm install ${detailContextValue.packageName}`)).toBeTruthy();
|
|
|
|
expect(queryByText('Install using pnpm')).toBeTruthy();
|
2019-04-05 02:23:40 +07:00
|
|
|
});
|
|
|
|
});
|