chore: remove jest -> cypress for unit tests

This commit is contained in:
Divlo
2022-08-23 21:51:20 +02:00
parent d8cedd7b77
commit 7ad3d226dc
87 changed files with 2668 additions and 7876 deletions

View File

@ -0,0 +1,18 @@
import { isStringWithOnlyOneEmoji } from '../../../../components/Emoji/isStringWithOnlyOneEmoji'
describe('components/Emoji/isStringWithOnlyOneEmoji', () => {
it('returns true with a string with only one emoji', () => {
expect(isStringWithOnlyOneEmoji(':wave:')).equal(true)
expect(isStringWithOnlyOneEmoji(':smile:')).equal(true)
})
it('returns false with a string with multiple emoji or with text', () => {
expect(isStringWithOnlyOneEmoji(':wave: :smile:')).equal(false)
expect(isStringWithOnlyOneEmoji(':wave: some text')).equal(false)
expect(isStringWithOnlyOneEmoji('some text :wave:')).equal(false)
})
it('returns false with a string without emoji', () => {
expect(isStringWithOnlyOneEmoji('some text')).equal(false)
})
})

View File

@ -0,0 +1,16 @@
import { Footer } from '../../../components/Footer'
describe('<Footer />', () => {
it('should render with appropriate link tag version', () => {
const version = '1.0.0'
cy.mount(<Footer version={version} />)
cy.contains('Thream')
.get('[data-cy=version-link-website]')
.should('have.text', `website v${version}`)
.should(
'have.attr',
'href',
`https://github.com/Thream/website/releases/tag/v${version}`
)
})
})

View File

@ -0,0 +1,35 @@
import { FormState } from '../../../../components/design/FormState'
describe('<FormState />', () => {
it('should return nothing if the state is idle', () => {
cy.mount(<FormState state='idle' />)
.get('[data-cy-root]')
.should('be.empty')
})
it('should return nothing if the message is null', () => {
cy.mount(<FormState state='error' />)
.get('[data-cy-root]')
.should('be.empty')
})
it('should render the <Loader /> if state is loading', () => {
cy.mount(<FormState state='loading' />)
.get('[data-cy=loader]')
.should('be.visible')
})
it('should render the success message if state is success', () => {
const message = 'Success Message'
cy.mount(<FormState state='success' message={message} id='success' />)
.get('#success')
.contains(message)
})
it('should render the error message if state is error', () => {
const message = 'Error Message'
cy.mount(<FormState state='error' message={message} id='error' />)
.get('#error')
.contains(message)
})
})

View File

@ -0,0 +1,48 @@
import { Input, getInputType } from '../../../../components/design/Input'
describe('<Input />', () => {
it('should render the label', () => {
const labelContent = 'label content'
cy.mount(<Input label={labelContent} />)
.get('label')
.should('have.text', labelContent)
})
it('should not render forgot password link', () => {
cy.mount(<Input type='text' label='content' showForgotPassword />)
.get('[data-cy=forgot-password-link]')
.should('not.exist')
})
it('should render forgot password link', () => {
cy.mount(<Input type='password' label='content' showForgotPassword />)
.get('[data-cy=forgot-password-link]')
.should('exist')
})
it('should not render the eye icon if the input is not of type "password"', () => {
cy.mount(<Input type='text' label='content' />)
.get('[data-cy=password-eye]')
.should('not.exist')
})
it('should handlePassword with eye icon', async () => {
cy.mount(<Input type='password' label='content' />)
.get('input')
.should('have.attr', 'type', 'password')
.get('[data-cy=password-eye]')
.click()
.get('input')
.should('have.attr', 'type', 'text')
})
describe('getInputType', () => {
it('should return `text`', () => {
expect(getInputType('password')).equal('text')
})
it('should return `password`', () => {
expect(getInputType('text')).equal('password')
})
})
})