1
0
mirror of https://gitlab.nic.cz/turris/reforis/foris-js.git synced 2025-06-15 13:36:35 +02:00

Set tests.

This commit is contained in:
Bogdan Bodnar
2019-08-27 15:28:29 +02:00
parent 39a8c16824
commit 18e8e20206
18 changed files with 215 additions and 199 deletions

View File

@ -5,11 +5,11 @@
* See /LICENSE for more information.
*/
import React from 'react';
import PropTypes from 'prop-types';
import {useUID} from 'react-uid';
import React from "react";
import PropTypes from "prop-types";
import { useUID } from "react-uid";
import {formFieldsSize} from './constants';
import { formFieldsSize } from "./constants";
CheckBox.propTypes = {
/** Label message */
@ -19,28 +19,32 @@ CheckBox.propTypes = {
/** Apply default size (full-width) */
useDefaultSize: PropTypes.bool,
/** Control if checkbox is clickable */
disabled: PropTypes.bool
disabled: PropTypes.bool,
};
CheckBox.defaultProps = {
useDefaultSize: true,
disabled: false
disabled: false,
};
export function CheckBox({label, helpText, useDefaultSize, disabled, ...props}) {
export function CheckBox({
label, helpText, useDefaultSize, disabled, ...props
}) {
const uid = useUID();
return <div className={useDefaultSize ? formFieldsSize : ""} style={{marginBottom: '1rem'}}>
<div className='custom-control custom-checkbox' style={{marginBottom: '0'}}>
<input
className='custom-control-input'
type='checkbox'
id={uid}
disabled={disabled}
return (
<div className={useDefaultSize ? formFieldsSize : ""} style={{ marginBottom: "1rem" }}>
<div className="custom-control custom-checkbox" style={{ marginBottom: "0" }}>
<input
className="custom-control-input"
type="checkbox"
id={uid}
disabled={disabled}
{...props}
/>
<label className='custom-control-label' htmlFor={uid} style={helpText ? {marginBottom: '0'} : null}>{label}</label>
{...props}
/>
<label className="custom-control-label" htmlFor={uid} style={helpText ? { marginBottom: "0" } : null}>{label}</label>
</div>
{helpText ? <small className="form-text text-muted">{helpText}</small> : null}
</div>
{helpText ? <small className="form-text text-muted">{helpText}</small> : null}
</div>
);
}

View File

@ -5,36 +5,42 @@
* See /LICENSE for more information.
*/
import React from 'react';
import PropTypes from 'prop-types';
import React from "react";
import PropTypes from "prop-types";
Spinner.propTypes = {
/** Children components put into `div` with "spinner-text" class. */
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node
PropTypes.node,
]),
/** Render component with full-screen mode (using apropriate `.css` styles) */
fullScreen: PropTypes.bool.isRequired,
className: PropTypes.string
className: PropTypes.string,
};
Spinner.defaultProps = {
fullScreen: false,
};
export function Spinner({fullScreen, children, className, ...props}) {
export function Spinner({
fullScreen, children, className, ...props
}) {
if (!fullScreen) {
return <div className={'spinner-wrapper ' + (className ? className : '')} {...props}>
<SpinnerElement>{children}</SpinnerElement>
</div>;
return (
<div className={`spinner-wrapper ${className || ""}`} {...props}>
<SpinnerElement>{children}</SpinnerElement>
</div>
);
}
return <div className="spinner-fs-wrapper" {...props}>
<div className="spinner-fs-background">
<SpinnerElement>{children}</SpinnerElement>
return (
<div className="spinner-fs-wrapper" {...props}>
<div className="spinner-fs-background">
<SpinnerElement>{children}</SpinnerElement>
</div>
</div>
</div>
);
}
SpinnerElement.propTypes = {
@ -43,15 +49,17 @@ SpinnerElement.propTypes = {
/** Children components */
children: PropTypes.oneOfType([
PropTypes.arrayOf(PropTypes.node),
PropTypes.node
PropTypes.node,
]),
};
export function SpinnerElement({small, children}) {
return <>
<div className={'spinner-border ' + (small ? 'spinner-border-sm' : '')} role="status">
<span className="sr-only"/>
</div>
<div className="spinner-text">{children}</div>
</>
export function SpinnerElement({ small, children }) {
return (
<>
<div className={`spinner-border ${small ? "spinner-border-sm" : ""}`} role="status">
<span className="sr-only" />
</div>
<div className="spinner-text">{children}</div>
</>
);
}

View File

@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
import Button from '../Button'
import {Button} from '../Button'
describe('<Button />', () => {
it('Render button correctly', () => {

View File

@ -9,12 +9,12 @@ import React from 'react';
import {render} from 'customTestRender';
import Checkbox from '../Checkbox'
import {CheckBox} from '../Checkbox'
describe('<Checkbox/>', () => {
it('Render checkbox', () => {
const {container} = render(
<Checkbox
<CheckBox
label="Test label"
checked
helpText="Some help text"
@ -26,7 +26,7 @@ describe('<Checkbox/>', () => {
it('Render uncheked checkbox', () => {
const {container} = render(
<Checkbox
<CheckBox
label="Test label"
helpText="Some help text"
/>

View File

@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
import NumberInput from '../NumberInput';
import {NumberInput} from '../NumberInput';
describe('<NumberInput/>', () => {

View File

@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
import PasswordInput from '../PasswordInput';
import {PasswordInput} from '../PasswordInput';
describe('<PasswordInput/>', () => {
it('Render password input', () => {

View File

@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
import RadioSet from '../RadioSet';
import {RadioSet} from '../RadioSet';
const TEST_CHOICES = [
{label: 'label', value: 'value'},

View File

@ -9,7 +9,7 @@ import React from 'react';
import {fireEvent, getByDisplayValue, getByText, render} from 'customTestRender';
import Select from '../Select';
import {Select} from '../Select';
const TEST_CHOICES = {
'1': 'one',

View File

@ -9,7 +9,7 @@ import React from 'react';
import {render} from 'customTestRender';
import TextInput from '../TextInput';
import {TextInput} from '../TextInput';
describe('<TextInput/>', () => {
it('Render text input', () => {