🎹Testing Input
🎹 Testing Input
🎹 Testing Input
Input Event
import React, {
useState
} from 'react'
import {
render,
fireEvent
} from '@testing-library/react'
function CostInput() {
const [ value, setValue ] = useState( '' ) removeDollarSign = value => ( value[ 0 ] === '$' ? value.slice( 1 ) : value ) getReturnValue = value => ( value === '' ? '' : `$${value}` ) handleChange = ev => {
ev.preventDefault()
const inputtedValue = ev.currentTarget.value
const noDollarSign = removeDollarSign( inputtedValue ) if ( isNaN( noDollarSign ) ) return setValue( getReturnValue( noDollarSign ) )
}
return <input value = {
value
}
aria - label = "cost-input"
onChange = {
handleChange
}
/>}
const setup = () => {
const utils = render(<CostInput / > )
const input = utils.getByLabelText( 'cost-input' ) return {
input,
...utils,
}
}
test( 'It should keep a $ in front of the input', () => {
const {
input
} = setup() fireEvent.change( input, {
target: {
value: '23'
}
} ) expect( input.value ).toBe( '$23' )
} ) test( 'It should allow a $ to be in the input when the value is changed', () => {
const {
input
} = setup() fireEvent.change( input, {
target: {
value: '$23.0'
}
} ) expect( input.value ).toBe( '$23.0' )
} ) test( 'It should not allow letters to be inputted', () => {
const {
input
} = setup() expect( input.value ).toBe( '' )
// empty before fireEvent.change(input, {target: {value: 'Good Day'}}) expect(input.value).toBe('')
//empty after})test('It should allow the $ to be deleted', () => {
const {input} = setup() fireEvent.change(input, {target: {value: '23'}}) expect(input.value).toBe('$23')
// need to make a change so React registers "" as a change fireEvent.change(input, {target: {value: ''}}) expect(input.value).toBe('')})🗺 Site Navigation
📖 Storybook
Stories
Args
Controls
A11y and Other Addons
Anatomy of a Story
storybookCustomArgs
createStoryOptions
Resources
https://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tasks/jira-tickets/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tickets/dnt-2658%20(1).mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tickets/dnt-2659.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tickets/dnt-2658-1.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tasks/jira-tickets/dnt-2724-accordion-testing.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tasks/jira-tickets/2654-a11y-audit-form-errors.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/analytics.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/definitionofdone.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/technicaloverview.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/practicaloverview.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/sitecore.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/intro.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/setup.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/forms.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/react.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/tailwind-css.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/storybook.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/typescript.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/ideas.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/broken-reference/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/accessibility/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/accessibility/aria.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/ke-energy.md⚙️Testinghttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tasks/jira-tickets/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tickets/dnt-2658.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tickets/dnt-2659.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tasks/jira-tickets/dnt-2724-accordion-testing.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/jira-tasks/jira-tickets/2654-a11y-audit-form-errors.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/analytics.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/definitionofdone.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/technicaloverview.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/practicaloverview.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/sitecore.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/component-creation/intro.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/setup.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/forms.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/react.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/tailwind-css.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/storybook.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/typescript.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/ideas.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/broken-reference/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/accessibility/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/accessibility/aria.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/typescript-types.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/types-vs-interfaces.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/typescript-interfaces.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/enums.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/types-vs-interfaces-1.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/docs/typescript/typescript-rules/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/accessability/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/accessability/focus-order.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/accessability/aria-accessibility.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/testing/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/testing/testing-input.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/react-testing-library/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/most-useful/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/most-useful/tailwind-classes/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/most-useful/bookmarks.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/website/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/website/overview/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/website/overview/duke-energy-manual-audit_report.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/live-deploy.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/creating-components/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/creating-components/intro.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/creating-components/technicaloverview.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/creating-components/practicaloverview.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/creating-components/analytics.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/creating-components/sitecore/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/creating-components/sitecore/sitecore-docs.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/creating-components/definitionofdone.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/setup.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/testing.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/forms.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/react.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/storybook/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/storybook/official-tutorial/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/website/storybook/official-tutorial/component-driven-design.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/code-splitting.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/svgloader.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/tailwind-css.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/Website/unit-tests.md
General Info
https://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/hooks-api-reference-react.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/using-the-effect-hook-react.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/getting-started-with-react.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/react-todolist.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/componentizing-our-react-app.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/react-interactivity-events-and-state.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/react-interactivity-editing-filtering-conditional-rendering.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/create-react-app.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/react-components.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/react-notes/handling-events.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/testing-assignment/react-testing-recipes.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/webpack.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/curry-vs-functional-composition/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/curry-vs-functional-composition/argv.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/bubbling-and-capturing.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/modules.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/private-npm-packages.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/aria-labelledby-accessibility.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/focus.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/optional-chaning.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/promises.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/enums-in-javascript.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/jira.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/airbnb-javascript-style-guide.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/general-info/general-info/performance.mdSitecore
https://github.com/bgoonz/DUKE/blob/ghpages/testing/sitecore/sitecore/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/sitecore/sitecore/dxt-solution.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/code/code/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/code/code/index.tsx.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/code/code/composition.tsx.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/code/code/data.js.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/code/code/types.ts.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/code/code/stories.js.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/code/code/test.tsx.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/personal-assignments/testing-assignment.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-2/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/README.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-2/day-4.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-2/day-2.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-2/day-3.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-3.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-4.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-4/day-1.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-4/day-5.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-4/day-4.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-4/day-2.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-1/week-4/day-3.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-5.mdhttps://github.com/bgoonz/DUKE/blob/ghpages/testing/meetings/week-6.mdLast updated