Skip to content

Commit 5621fe6

Browse files
committed
Allow new employer entry
1 parent 983ca0b commit 5621fe6

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

src/Components/forms/data.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,7 @@
120120
{ "name": "The Developer Society", "_id": "The Developer Society" },
121121
{ "name": "University of Arts", "_id": "University of Arts" },
122122
{ "name": "Venditan", "_id": "Venditan" },
123-
{ "name": "Yoti", "_id": "Yoti" },
124-
{ "name": "Other", "_id": "Other" }
123+
{ "name": "Yoti", "_id": "Yoti" }
125124
],
126125

127126
"radioButtonList": [

src/Components/forms/inputs/EmployerDropDown.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React from 'react'
22
import { Label } from 'reactstrap'
3-
import Select from 'react-select'
3+
import Select from 'react-select/creatable'
44

55
const EmployerDropDown = ({ onChange, isEmpty, arrayList }) => {
66
const employersList = arrayList.map(({ _id, name }) => ({
@@ -12,7 +12,6 @@ const EmployerDropDown = ({ onChange, isEmpty, arrayList }) => {
1212
<Label htmlFor="employer">Who is your employer? *</Label>
1313
<Select
1414
className={isEmpty ? 'is-empty' : ''}
15-
noOptionsMessage={() => 'Employer not found? Please select "Other".'}
1615
inputId="employer"
1716
isSearchable
1817
options={employersList}

src/Components/forms/inputs/EmployerDropDown.test.js

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import React from 'react'
21
import { render, screen } from '@testing-library/react'
3-
import selectEvent from 'react-select-event'
4-
import '@testing-library/jest-dom'
52
import userEvent from '@testing-library/user-event'
3+
import selectEvent from 'react-select-event'
4+
65
import EmployerDropDown from './EmployerDropDown'
76

87
describe('EmployerDropDown', () => {
@@ -47,12 +46,20 @@ describe('EmployerDropDown', () => {
4746
expect(container.getElementsByClassName('is-empty')).toHaveLength(1)
4847
})
4948

50-
it('asks user to select "Other" if no matches', async () => {
51-
const { user } = renderInForm({ employers: ['G-Research'] })
52-
await user.type(screen.getByRole('combobox', { name: /employer/i }), 'cap')
53-
expect(
54-
screen.getByText('Employer not found? Please select "Other".')
55-
).toBeInTheDocument()
49+
it('allows the user to enter their own employer', async () => {
50+
const onChange = jest.fn()
51+
const { user } = renderInForm({
52+
employers: ['ABC', 'BBC', 'CBC'],
53+
onChange
54+
})
55+
await user.type(
56+
screen.getByRole('combobox', { name: /employer/i }),
57+
'Google'
58+
)
59+
await user.click(screen.getByText('Create "Google"'))
60+
expect(onChange).toHaveBeenCalledWith({
61+
target: { name: 'employer', type: 'text', value: 'Google' }
62+
})
5663
})
5764

5865
it('shows the expected values in AC', async () => {

0 commit comments

Comments
 (0)