0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2024-12-30 22:34:10 -05:00

refactor: added flow type checking (#1099)

fix: added import 'github-markdown-css' stub type

fix: fixed tests
This commit is contained in:
Priscila 2018-10-31 05:54:26 +01:00 committed by Juan Picado @jotadeveloper
parent 9d265996f9
commit 76482ec8d7
8 changed files with 41 additions and 27 deletions

View file

@ -0,0 +1,18 @@
// flow-typed signature: cda964a8fd1ee8efbd11f88eb4c5c4df
// flow-typed version: <<STUB>>/github-markdown-css_v2.10.0/flow_v0.81.0
/**
* This is an autogenerated libdef stub for:
*
* 'github-markdown-css'
*
* Fill this stub out by replacing all the `any` types.
*
* Once filled out, we encourage you to share your work with the
* community by sending a pull request to:
* https://github.com/flowtype/flow-typed
*/
declare module 'github-markdown-css' {
declare module.exports: any;
}

View file

@ -6,8 +6,8 @@ import Readme from '../Readme';
import classes from './packageDetail.scss';
const displayState = (readMe) => {
return !isNil(readMe) ? <Readme readMe={readMe} /> : '';
const displayState = (description) => {
return !isNil(description) ? <Readme description={description} /> : '';
};
const PackageDetail = ({packageName, readMe}) => {

View file

@ -1,15 +1,13 @@
/**
* @prettier
* @flow
*/
import React from 'react';
import PropTypes from 'prop-types';
import 'github-markdown-css';
const Readme = (props) => {
return <div className="markdown-body" dangerouslySetInnerHTML={{__html: props.readMe}}/>;
};
import { IProps } from './types';
Readme.propTypes = {
readMe: PropTypes.string.isRequired
};
const Readme = ({ description }: IProps) => <div className="markdown-body" dangerouslySetInnerHTML={{ __html: description }} />;
export default Readme;

View file

@ -1,6 +0,0 @@
@import '../../styles/mixins';
.searchBox {
@include searchBox;
}

View file

@ -0,0 +1,8 @@
/**
* @prettier
* @flow
*/
export interface IProps {
description: string;
}

View file

@ -136,7 +136,6 @@ describe('/ (Verdaccio Page)', () => {
await packageItem.click({ clickCount: 1, delay: 200 });
await page.waitFor(1000);
const readmeText = await page.evaluate(() => document.querySelector('.markdown-body').textContent);
expect(readmeText).toMatch('test');
});

View file

@ -1,3 +1,5 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`<Readme /> component should dangerously set html 1`] = `"<div class=\\"markdown-body\\"><h1>This is a test string</h1></div>"`;
exports[`<Readme /> component should load the component in default state 1`] = `"<div class=\\"markdown-body\\">test</div>"`;

View file

@ -3,22 +3,17 @@
*/
import React from 'react';
import { shallow } from 'enzyme';
import { shallow, mount } from 'enzyme';
import Readme from '../../../../src/webui/components/Readme/index';
console.error = jest.fn();
describe('<Readme /> component', () => {
it('should give error for the required fields', () => {
shallow(<Readme />);
expect(console.error).toBeCalled();
it('should load the component in default state', () => {
const wrapper = mount(<Readme description='test' />);
expect(wrapper.html()).toMatchSnapshot();
});
it('should dangerously set html', () => {
const props = {
readMe: '<h1>This is a test string</h1>'
};
const wrapper = shallow(<Readme {...props} />);
const wrapper = shallow(<Readme description='<h1>This is a test string</h1>' />);
expect(wrapper.html()).toEqual(
'<div class="markdown-body"><h1>This is a test string</h1></div>'
);