Skip to content

Commit 442e2b3

Browse files
authored
Merge branch 'release-1.0.0' into fix/alex-cr-history-etl-1907
2 parents 206eb30 + f1ec8f7 commit 442e2b3

File tree

3 files changed

+32
-27
lines changed

3 files changed

+32
-27
lines changed

frontend/src/views/Users/AddEditUser/AddEditUser.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export const AddEditUser = ({ userType }) => {
6161

6262
// User form hook and form validation
6363
const form = useForm({
64-
resolver: yupResolver(userInfoSchema),
64+
resolver: yupResolver(userInfoSchema(userType)),
6565
mode: 'onChange',
6666
defaultValues
6767
})

frontend/src/views/Users/AddEditUser/__tests__/AddEditUser.test.jsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ vi.mock('@/stores/useUserStore', () => ({
3737
async function typeAndValidateTextBox(name, value) {
3838
const textBox = screen.getByRole('textbox', { name })
3939
expect(textBox).toBeInTheDocument()
40-
await userEvent.type(textBox, value)
40+
await userEvent.type(textBox, value, { delay: 10 })
4141
expect(textBox).toHaveValue(value)
4242
}
4343

@@ -81,7 +81,7 @@ describe('AddEditUser component', () => {
8181
// Check for form fields
8282
await typeAndValidateTextBox('First name', 'John')
8383
await typeAndValidateTextBox('Last name', 'Doe')
84-
await typeAndValidateTextBox('Job title', 'Compliance manager')
84+
await typeAndValidateTextBox('Job title (optional)', 'Compliance manager')
8585
await typeAndValidateTextBox('BCeID Userid', 'johndoe')
8686
await typeAndValidateTextBox(
8787
'Email address associated with the BCeID user account',

frontend/src/views/Users/AddEditUser/_schema.js

+29-24
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,33 @@ import { govRoles, nonGovRoles, roles } from '@/constants/roles'
33
import { PHONE_REGEX } from '@/constants/common.js'
44

55
// Schema for form validation
6-
export const userInfoSchema = Yup.object({
7-
firstName: Yup.string().required('First name is required.'),
8-
lastName: Yup.string().required('Last name is required.'),
9-
jobTitle: Yup.string().required('Job title is required.'),
10-
userName: Yup.string().required('User name is required'),
11-
keycloakEmail: Yup.string()
12-
.required('Email address is required.')
13-
.email('Please enter a valid email address.'),
14-
altEmail: Yup.string()
15-
.email('Please enter a valid email address.')
16-
.optional(),
17-
phone: Yup.string()
18-
.matches(PHONE_REGEX, 'Phone number is not valid')
19-
.nullable(true),
20-
mobilePhone: Yup.string()
21-
.matches(PHONE_REGEX, 'Phone number is not valid')
22-
.nullable(true),
23-
status: Yup.string(),
24-
adminRole: Yup.array(),
25-
idirRole: Yup.string(),
26-
bceidRoles: Yup.array(),
27-
readOnly: Yup.string()
28-
})
6+
export const userInfoSchema = (userType) =>
7+
Yup.object({
8+
firstName: Yup.string().required('First name is required.'),
9+
lastName: Yup.string().required('Last name is required.'),
10+
jobTitle:
11+
userType === 'bceid'
12+
? Yup.string().optional()
13+
: Yup.string().required('Job title is required.'),
14+
userName: Yup.string().required('User name is required'),
15+
keycloakEmail: Yup.string()
16+
.required('Email address is required.')
17+
.email('Please enter a valid email address.'),
18+
altEmail: Yup.string()
19+
.email('Please enter a valid email address.')
20+
.optional(),
21+
phone: Yup.string()
22+
.matches(PHONE_REGEX, 'Phone number is not valid')
23+
.nullable(true),
24+
mobilePhone: Yup.string()
25+
.matches(PHONE_REGEX, 'Phone number is not valid')
26+
.nullable(true),
27+
status: Yup.string(),
28+
adminRole: Yup.array(),
29+
idirRole: Yup.string(),
30+
bceidRoles: Yup.array(),
31+
readOnly: Yup.string()
32+
})
2933

3034
export const idirTextFields = (t) => [
3135
{
@@ -70,7 +74,8 @@ export const bceidTextFields = (t) => [
7074
},
7175
{
7276
name: 'jobTitle',
73-
label: t('admin:userForm.jobTitle')
77+
label: t('admin:userForm.jobTitle'),
78+
optional: true
7479
},
7580
{
7681
name: 'userName',

0 commit comments

Comments
 (0)