From d2c75d02592818656688bd88a6a2c3fe21dfb665 Mon Sep 17 00:00:00 2001 From: Ryan Heisler Date: Fri, 26 Jan 2024 17:08:45 -0500 Subject: [PATCH] Fix failing tests for forms that had unexpected honeypot and timing data in them --- .../AccessibilityIssues.test.tsx | 11 +++++++---- src/pages/contact-us/ContactUs.test.tsx | 13 ++++++++----- .../report-id-refusal/ReportIdRefused.test.tsx | 11 +++++++---- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/src/pages/accessibility-issues/AccessibilityIssues.test.tsx b/src/pages/accessibility-issues/AccessibilityIssues.test.tsx index 6e21d36..e155061 100644 --- a/src/pages/accessibility-issues/AccessibilityIssues.test.tsx +++ b/src/pages/accessibility-issues/AccessibilityIssues.test.tsx @@ -20,19 +20,20 @@ import { INVALID_PHONE_MESSAGE } from "../../hooks/form-validation/validatePhone import { MISSING_REQUIRED_MESSAGE } from "../../hooks/form-validation/validateRequired"; import { Container } from "react-dom"; import { USER_EVENT_KEYS_FOR_TESTING_ONLY } from "../../../test/user-event-keys"; +import { HoneypotFormData } from "../../components/form/Form"; describe(`${AccessibilityIssues.name} form`, () => { const successMessage = "Your issue has been reported, thank you!"; - let capturedFormData: AccessibilityFormData; + let capturedFormData: AccessibilityFormData & HoneypotFormData; let user: UserEvent; let form: HTMLFormElement; let container: Container; beforeEach(() => { user = userEvent.setup(); - capturedFormData = null as unknown as AccessibilityFormData; + capturedFormData = null as unknown as AccessibilityFormData & HoneypotFormData; - const resolver = buildPostResolver({ + const resolver = buildPostResolver({ captor: (requestBody) => capturedFormData = requestBody, }); @@ -104,7 +105,9 @@ describe(`${AccessibilityIssues.name} form`, () => { await user.keyboard(USER_EVENT_KEYS_FOR_TESTING_ONLY.enter); - expect(capturedFormData).toEqual(stubAccessibilityFormData({ name, email, phone, comments })); + const { honeypotValue, timeToFillForm, ...userInputtedFormData } = capturedFormData; + + expect(userInputtedFormData).toEqual(stubAccessibilityFormData({ name, email, phone, comments })); await waitFor(() => { expect(screen.getByText(successMessage)).toBeInTheDocument(); diff --git a/src/pages/contact-us/ContactUs.test.tsx b/src/pages/contact-us/ContactUs.test.tsx index a2efce6..b302427 100644 --- a/src/pages/contact-us/ContactUs.test.tsx +++ b/src/pages/contact-us/ContactUs.test.tsx @@ -15,20 +15,21 @@ import { MISSING_REQUIRED_MESSAGE } from "../../hooks/form-validation/validateRe import { Container } from "react-dom"; import { CONTACT_PAGE_HEADING, CONTACT_PAGE_IDENTIFIER, ContactFormData, ContactUs } from "./ContactUs"; import { USER_EVENT_KEYS_FOR_TESTING_ONLY } from "../../../test/user-event-keys"; +import { HoneypotFormData } from "../../components/form/Form"; describe(`${ContactUs.name} form`, () => { const formLabelText = "General Contact"; const successMessage = "Your message has been sent, thank you!"; - let capturedFormData: ContactFormData; + let capturedFormData: ContactFormData & HoneypotFormData; let user: UserEvent; let form: HTMLFormElement; let container: Container; beforeEach(() => { user = userEvent.setup(); - capturedFormData = null as unknown as ContactFormData; + capturedFormData = null as unknown as ContactFormData & HoneypotFormData; - const resolver = buildPostResolver({ + const resolver = buildPostResolver({ captor: (requestBody) => capturedFormData = requestBody, }); @@ -79,7 +80,7 @@ describe(`${ContactUs.name} form`, () => { expect(commentsInput).toHaveFocus(); const comments = "There was an input that didn't have a label"; await user.keyboard(comments); - + await user.tab(); expect(nameInput).toHaveFocus(); const name = "Linda Cardellini"; @@ -100,7 +101,9 @@ describe(`${ContactUs.name} form`, () => { await user.keyboard(USER_EVENT_KEYS_FOR_TESTING_ONLY.enter); - expect(capturedFormData).toEqual(stubAccessibilityFormData({ name, email, phone, comments })); + const { honeypotValue, timeToFillForm, ...userInputtedFormData } = capturedFormData; + + expect(userInputtedFormData).toEqual(stubAccessibilityFormData({ name, email, phone, comments })); await waitFor(() => { expect(screen.getByText(successMessage)).toBeInTheDocument(); diff --git a/src/pages/report-id-refusal/ReportIdRefused.test.tsx b/src/pages/report-id-refusal/ReportIdRefused.test.tsx index ff06a35..b91fc87 100644 --- a/src/pages/report-id-refusal/ReportIdRefused.test.tsx +++ b/src/pages/report-id-refusal/ReportIdRefused.test.tsx @@ -20,20 +20,21 @@ import { ReportIdRefused } from "./ReportIdRefused"; import { USER_EVENT_KEYS_FOR_TESTING_ONLY } from "../../../test/user-event-keys"; +import { HoneypotFormData } from "../../components/form/Form"; describe(`${ReportIdRefused.name} form`, () => { const formLabelText = "Report Refusal of ID"; const successMessage = "Your message has been sent, thank you!"; - let capturedFormData: IdRefusedFormData; + let capturedFormData: IdRefusedFormData & HoneypotFormData; let user: UserEvent; let form: HTMLFormElement; let container: Container; beforeEach(() => { user = userEvent.setup(); - capturedFormData = null as unknown as IdRefusedFormData; + capturedFormData = null as unknown as IdRefusedFormData & HoneypotFormData; - const resolver = buildPostResolver({ + const resolver = buildPostResolver({ captor: (requestBody) => capturedFormData = requestBody, }); @@ -152,7 +153,9 @@ describe(`${ReportIdRefused.name} form`, () => { await user.keyboard(USER_EVENT_KEYS_FOR_TESTING_ONLY.enter); - expect(capturedFormData).toEqual(stubRefusedIdData({ + const { honeypotValue, timeToFillForm, ...userInputtedFormData } = capturedFormData; + + expect(userInputtedFormData).toEqual(stubRefusedIdData({ name, email, phone,