diff --git a/__tests__/src/rules/label-has-associated-control-test.js b/__tests__/src/rules/label-has-associated-control-test.js index 633275c3..01d02e06 100644 --- a/__tests__/src/rules/label-has-associated-control-test.js +++ b/__tests__/src/rules/label-has-associated-control-test.js @@ -21,15 +21,20 @@ const ruleTester = new RuleTester(); const ruleName = 'label-has-associated-control'; -const expectedError = { - message: 'A form label must be associated with a control.', - type: 'JSXOpeningElement', -}; - -const expectedErrorNoLabel = { - message: 'A form label must have accessible text.', - type: 'JSXOpeningElement', +const errorMessages = { + accessibleLabel: 'A form label must have accessible text.', + htmlFor: 'A form label must have a valid htmlFor attribute.', + nesting: 'A form label must have an associated control as a descendant.', + either: 'A form label must either have a valid htmlFor attribute or a control as a descendant.', + both: 'A form label must have a valid htmlFor attribute and a control as a descendant.', }; +const expectedErrors = {}; +Object.keys(errorMessages).forEach((key) => { + expectedErrors[key] = { + message: errorMessages[key], + type: 'JSXOpeningElement', + }; +}); const componentsSettings = { 'jsx-a11y': { @@ -123,59 +128,68 @@ const alwaysValid = [ { code: '' }, ]; -const htmlForInvalid = [ - { code: '', options: [{ depth: 4 }], errors: [expectedError] }, - { code: '