Skip to content

Commit 3bdcc1e

Browse files
authored
Merge pull request #151 from CodeYourFuture/feature-create-a-DB-of-employer-names-for-volunteer-form
feature-create-a-DB-collection(table)-for-employer-names-for-volunteer-form[QA]
2 parents f62249b + 1b7591e commit 3bdcc1e

File tree

6 files changed

+31
-80
lines changed

6 files changed

+31
-80
lines changed

e2e/fixtures/employers.json

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"employers": [
3+
{
4+
"_id": "6569",
5+
"name": "Capgemini"
6+
}
7+
]
8+
}

e2e/integration/journey.test.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ beforeEach(() => {
77
cy.intercept('GET', `${mockServerURL}/teams`, {
88
fixture: 'teams.json'
99
})
10+
cy.intercept('GET', `${mockServerURL}/employers`, {
11+
fixture: 'employers.json'
12+
})
1013
cy.visit('/')
1114
})
1215

@@ -122,13 +125,13 @@ it('requires employee selection', () => {
122125
cy.findByRole('button', { name: /submit/i }).click()
123126
cy.findByText(/form is incomplete/i).should('exist')
124127
cy.findByRole('combobox', { name: /who is your employer/i }).type(
125-
'Cap{enter}'
128+
'Capgemini{enter}'
126129
)
127130
cy.findByRole('button', { name: /submit/i }).click()
128131

129132
cy.wait('@createVolunteer').then(({ request: { body: payload } }) => {
130133
expect(payload).to.have.property('hearAboutCYF', 'Employer')
131-
expect(payload).to.have.property('employer', 'Capgemini')
134+
expect(payload).to.have.property('employer', '6569')
132135
})
133136
})
134137

src/Components/forms/data.json

Lines changed: 0 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -47,82 +47,6 @@
4747
{ "name": "Other", "_id": "Other" }
4848
],
4949

50-
"employerList": [
51-
{ "name": "2I", "_id": "2I" },
52-
{ "name": "Adyen", "_id": "Adyen" },
53-
{ "name": "And Digital", "_id": "And Digital" },
54-
{ "name": "Apolitical", "_id": "Apolitical" },
55-
{ "name": "Arnold Clark", "_id": "Arnold Clark" },
56-
{ "name": "Avaloq", "_id": "Avaloq" },
57-
{ "name": "Avanade", "_id": "Avanade" },
58-
{ "name": "Bankifi", "_id": "Bankifi" },
59-
{ "name": "BJSS", "_id": "BJSS" },
60-
{ "name": "BMChealth", "_id": "BMChealth" },
61-
{ "name": "British Gas", "_id": "British Gas" },
62-
{ "name": "Capgemini", "_id": "Capgemini" },
63-
{ "name": "Carnall Farrar", "_id": "Carnall Farrar" },
64-
{ "name": "Cinch", "_id": "Cinch" },
65-
{ "name": "CoinCover", "_id": "CoinCover" },
66-
{ "name": "Comic Relief", "_id": "Comic Relief" },
67-
{ "name": "Cord", "_id": "Cord" },
68-
{ "name": "Covatic", "_id": "Covatic" },
69-
{ "name": "DAI", "_id": "DAI" },
70-
{ "name": "Deliveroo", "_id": "Deliveroo" },
71-
{ "name": "Deloitte", "_id": "Deloitte" },
72-
{ "name": "DF Capital", "_id": "DF Capital" },
73-
{ "name": "Digital Cabinet Office", "_id": "Digital Cabinet Office" },
74-
{ "name": "EDF", "_id": "EDF" },
75-
{ "name": "EY (SA)", "_id": "EY (SA)" },
76-
{ "name": "FlexJobs", "_id": "FlexJobs" },
77-
{ "name": "Forum Systems", "_id": "Forum Systems" },
78-
{ "name": "FourKites", "_id": "FourKites" },
79-
{ "name": "Free Agent", "_id": "Free Agent" },
80-
{ "name": "G-Research", "_id": "G-Research" },
81-
{ "name": "Google", "_id": "Google" },
82-
{ "name": "Hackajob", "_id": "Hackajob" },
83-
{ "name": "Hippo Digital", "_id": "Hippo Digital" },
84-
{ "name": "Hired", "_id": "Hired" },
85-
{ "name": "Holoxica", "_id": "Holoxica" },
86-
{ "name": "Hudson River Trading", "_id": "Hudson River Trading" },
87-
{ "name": "Infinity Works", "_id": "Infinity Works" },
88-
{ "name": "Jaguar LandRover", "_id": "Jaguar LandRover" },
89-
{ "name": "K+C", "_id": "K+C" },
90-
{ "name": "KrakenFlex", "_id": "KrakenFlex" },
91-
{ "name": "Lush", "_id": "Lush" },
92-
{ "name": "LVNDR", "_id": "LVNDR" },
93-
{ "name": "Made", "_id": "Made" },
94-
{ "name": "MadeTech", "_id": "MadeTech" },
95-
{ "name": "Makers", "_id": "Makers" },
96-
{ "name": "Meta", "_id": "Meta" },
97-
{ "name": "Microsoft", "_id": "Microsoft" },
98-
{ "name": "Multitudes", "_id": "Multitudes" },
99-
{ "name": "Multiverse", "_id": "Multiverse" },
100-
{ "name": "MVF", "_id": "MVF" },
101-
{ "name": "Nat West", "_id": "Nat West" },
102-
{ "name": "NooS", "_id": "NooS" },
103-
{ "name": "Oak Academy", "_id": "Oak Academy" },
104-
{ "name": "Open Science Tools", "_id": "Open Science Tools" },
105-
{ "name": "Overleaf", "_id": "Overleaf" },
106-
{ "name": "PAZ", "_id": "PAZ" },
107-
{ "name": "Planes Agency", "_id": "Planes Agency" },
108-
{ "name": "Pollinate", "_id": "Pollinate" },
109-
{ "name": "PWC", "_id": "PWC" },
110-
{ "name": "Remote.com", "_id": "Remote.com" },
111-
{ "name": "Rocket Mill", "_id": "Rocket Mill" },
112-
{ "name": "RoundCorp", "_id": "RoundCorp" },
113-
{ "name": "Scottish Power", "_id": "Scottish Power" },
114-
{ "name": "Shopify", "_id": "Shopify" },
115-
{ "name": "Slack", "_id": "Slack" },
116-
{ "name": "Sopra Steria", "_id": "Sopra Steria" },
117-
{ "name": "Stitch", "_id": "Stitch" },
118-
{ "name": "Substakt", "_id": "Substakt" },
119-
{ "name": "Talent Heroes", "_id": "Talent Heroes" },
120-
{ "name": "The Developer Society", "_id": "The Developer Society" },
121-
{ "name": "University of Arts", "_id": "University of Arts" },
122-
{ "name": "Venditan", "_id": "Venditan" },
123-
{ "name": "Yoti", "_id": "Yoti" }
124-
],
125-
12650
"radioButtonList": [
12751
{ "value": "None", "_id": "None" },
12852
{ "value": "Some", "_id": "Some" },

src/Components/forms/index.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@ const path = `${domain()}${appPath}`
1313
class Forms extends Component {
1414
state = {
1515
teamOptions: [],
16+
employersOptions: [],
1617
...initialState
1718
}
1819

1920
componentDidMount() {
2021
this.fetchTeamData()
22+
this.fetchEmployers()
2123
}
2224

2325
fetchTeamData = async () => {
@@ -34,6 +36,17 @@ class Forms extends Component {
3436
}
3537
}
3638

39+
fetchEmployers = async () => {
40+
try {
41+
const employersResponse = await axios.get(`${domain()}/employers`)
42+
const employersData = employersResponse.data.employers
43+
employersData.sort((a, b) => a.name.localeCompare(b.name))
44+
this.setState({ employersOptions: employersData })
45+
} catch (err) {
46+
console.log(err)
47+
}
48+
}
49+
3750
handleMagicLinkRequest = async e => {
3851
e.preventDefault()
3952
const { email, userId } = this.state
@@ -393,8 +406,10 @@ class Forms extends Component {
393406
telOnChange={this.telOnChange}
394407
onChangeCheckList={this.onChangeCheckList}
395408
teamOptions={this.state.teamOptions}
409+
employersOptions={this.state.employersOptions}
396410
{...this.props}
397411
{...this.state}
412+
postNewEmployer={this.postNewEmployer}
398413
/>
399414
<Acknowledgement onChange={this.onChange} {...this.state} />
400415
<button

src/Components/forms/inputs/EmployerDropDown.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const EmployerDropDown = ({
4444
setOptions(oldOptions => insertedInto(oldOptions, newEmployer))
4545
handleChange(newEmployer)
4646
}}
47-
options={options}
47+
options={options.sort((a, b) => a.label.localeCompare(b.label))}
4848
placeholder="Type your employer name here"
4949
value={selectedOption}
5050
/>

src/Components/forms/inputs/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ export default class VolunteerForm extends Component {
3232
guidePeople,
3333
techSkill,
3434
otherSkill,
35+
employersOptions,
3536
employer
3637
} = this.props
3738

@@ -146,7 +147,7 @@ export default class VolunteerForm extends Component {
146147
/>
147148
{hearAboutCYFFromEmployer && (
148149
<EmployerDropDown
149-
arrayList={ListsData.employerList}
150+
arrayList={employersOptions}
150151
isEmpty={errors.employer}
151152
onChange={onChange}
152153
value={employer}

0 commit comments

Comments
 (0)