From f4a0b774e2a7c23d0bdb32cdd33d69d46fbe4296 Mon Sep 17 00:00:00 2001
From: Donald Labaj
Date: Tue, 11 Nov 2025 16:18:56 -0500
Subject: [PATCH] chore: Added first unit tests.
---
jest.config.js | 3 +-
package.json | 3 +-
packages/module/package.json | 1 +
.../user-feedback/design-guidelines.js | 24 +-
packages/module/src/Feedback/FeedbackForm.tsx | 4 +-
.../Feedback/__tests__/FeedbackForm.test.tsx | 480 ++++++++++++
.../__snapshots__/FeedbackForm.test.tsx.snap | 686 ++++++++++++++++++
7 files changed, 1184 insertions(+), 17 deletions(-)
create mode 100644 packages/module/src/Feedback/__tests__/FeedbackForm.test.tsx
create mode 100644 packages/module/src/Feedback/__tests__/__snapshots__/FeedbackForm.test.tsx.snap
diff --git a/jest.config.js b/jest.config.js
index 5e55518..f5f897f 100644
--- a/jest.config.js
+++ b/jest.config.js
@@ -14,5 +14,6 @@ module.exports = {
'\\.(css|less)$': '/styleMock.js'
},
testEnvironment: 'jsdom',
- setupFiles: ['./jest.setup.js']
+ setupFiles: ['./jest.setup.js'],
+ setupFilesAfterEnv: ['@testing-library/jest-dom']
};
diff --git a/package.json b/package.json
index 8b63082..7d9b6d5 100644
--- a/package.json
+++ b/package.json
@@ -17,8 +17,7 @@
"lint:js": "node --max-old-space-size=4096 node_modules/.bin/eslint packages --ext js,jsx,ts,tsx --cache",
"lint:md": "yarn eslint packages --ext md --no-eslintrc --config .eslintrc-md.json --cache",
"lint": "yarn lint:js && yarn lint:md",
- "test": "echo 'Disabled JEST testing'",
- "_test": "TZ=EST jest packages",
+ "test": "TZ=EST jest packages",
"test:a11y": "yarn workspace @patternfly/react-user-feedback test:a11y",
"serve:a11y": "yarn workspace @patternfly/react-user-feedback serve:a11y",
"prepare": "husky install"
diff --git a/packages/module/package.json b/packages/module/package.json
index dfd7131..c7adf20 100644
--- a/packages/module/package.json
+++ b/packages/module/package.json
@@ -21,6 +21,7 @@
"docs:build": "pf-docs-framework build all --output public",
"docs:serve": "pf-docs-framework serve public --port 5001",
"docs:screenshots": "pf-docs-framework screenshots --urlPrefix http://localhost:5001",
+ "test": "jest",
"test:a11y": "patternfly-a11y --config patternfly-a11y.config",
"serve:a11y": "yarn serve coverage"
},
diff --git a/packages/module/patternfly-docs/generated/extensions/user-feedback/design-guidelines.js b/packages/module/patternfly-docs/generated/extensions/user-feedback/design-guidelines.js
index b075986..562e150 100644
--- a/packages/module/patternfly-docs/generated/extensions/user-feedback/design-guidelines.js
+++ b/packages/module/patternfly-docs/generated/extensions/user-feedback/design-guidelines.js
@@ -1,11 +1,11 @@
import React from 'react';
import { AutoLinkHeader, Example, Link as PatternflyThemeLink } from '@patternfly/documentation-framework/components';
-import srcImport0 from '../../../content/design-guidelines/./img/advanced-user-feedback.png';
-import srcImport1 from '../../../content/design-guidelines/./img/dropdown-selection.png';
-import srcImport2 from '../../../content/design-guidelines/./img/share-feedback.png';
-import srcImport3 from '../../../content/design-guidelines/./img/report-bug.png';
-import srcImport4 from '../../../content/design-guidelines/./img/research-opportunities.png';
-import srcImport5 from '../../../content/design-guidelines/./img/user-feedback-external-links.png';
+import srcImport6 from '../../../content/design-guidelines/./img/advanced-user-feedback.png';
+import srcImport7 from '../../../content/design-guidelines/./img/dropdown-selection.png';
+import srcImport8 from '../../../content/design-guidelines/./img/share-feedback.png';
+import srcImport9 from '../../../content/design-guidelines/./img/report-bug.png';
+import srcImport10 from '../../../content/design-guidelines/./img/research-opportunities.png';
+import srcImport11 from '../../../content/design-guidelines/./img/user-feedback-external-links.png';
const pageData = {
"id": "User feedback",
"section": "extensions",
@@ -44,7 +44,7 @@ const Component = () => (
{`Elements`}
-
+
@@ -86,7 +86,7 @@ const Component = () => (
{`For example, you can allow users to access the modal by selecting a masthead’s help icon and choosing “Share feedback” in the dropdown menu:`}
-
+
@@ -110,7 +110,7 @@ const Component = () => (
{`The general feedback form allows users to enter feedback into a text box and submit.`}
-
+
@@ -122,7 +122,7 @@ const Component = () => (
{`The bug report form allows users to enter feedback into a text box and submit. Its description directs users to a URL where they can submit a support ticket for critical issues.`}
-
+
@@ -134,7 +134,7 @@ const Component = () => (
{`The user research opt-in form allows users to enter their email address to participate in future research efforts.`}
-
+
@@ -146,7 +146,7 @@ const Component = () => (
{`Selecting an item redirects users to an external URL (like a qualtrics form) that opens in a separate tab.`}
-
+
diff --git a/packages/module/src/Feedback/FeedbackForm.tsx b/packages/module/src/Feedback/FeedbackForm.tsx
index 2c36271..f76c0e0 100644
--- a/packages/module/src/Feedback/FeedbackForm.tsx
+++ b/packages/module/src/Feedback/FeedbackForm.tsx
@@ -54,7 +54,7 @@ export const FeedbackForm = ({
async function handleModalSubmission() {
try {
const emailAddress = checked && currentEmail ? currentEmail : '';
- onSubmit(emailAddress, textAreaValue, checked);
+ await onSubmit(emailAddress, textAreaValue, checked);
} catch (err) {
handleFeedbackError();
}
@@ -93,7 +93,7 @@ export const FeedbackForm = ({
{textAreaHidden ? (
''
) : (
-
+