TESTING PLAYBOOK

ABC PAC Module — Testing Playbook

Master political action committee workflows, contribution methods, permissions, and comprehensive testing strategy for PAC fundraising

The Business

PAC is ABC's political action committee. Understanding why it exists and how chapters use it shapes the testing approach.

🎯 What Is PAC and Why Does ABC Care

PAC (Political Action Committee) is ABC's formal vehicle for political fundraising. Members contribute to PAC to support industry advocacy — electing officials, influencing legislation, and strengthening ABC's voice on policy issues that matter to contractors. PAC is legally regulated: contributions are capped, disclosure is required, and state regulations vary.

For ABC chapters, PAC generates committed dollars for advocacy campaigns without eating into local operating budgets. Chapters collect PAC contributions from their member companies through three methods: dues renewal (automatic incorporation into invoices), chapter fundraising events (direct solicitation), and national collection (third-party system that chapters track in their local AMS). This creates a blended funding model where headquarters, states, and local chapters all feed a unified national advocacy effort.

Compliance and state variation matter enormously. Some states cap individual contributions, some restrict corporate PAC, some require enhanced disclosure. The system has to track which contributions are "State PAC" (for state-level advocacy) versus "National PAC" (for federal-level work) because they're subject to different rules and reporting thresholds. Chapter-defined defaults make this easier — if a chapter's primary focus is state advocacy, the default contribution type defaults to "State PAC".

Why this matters for QA
Test that state vs. national designation works correctly. Test that dues renewal PAC lines are always corporate and always state. Test that chapter fundraising respects both corporate and individual contributions. Test that the state field appears and disappears based on contribution type. Edge cases matter: what if a contribution is entered for a future date? What if the amount is zero? What if state field is toggled off after data exists?

💰 Three Ways Chapters Collect PAC Dollars

1. Dues Renewal Process — PAC contributions are automatically added as additional lines to annual dues invoices. The contribution is always corporate (charged to the company), always State PAC (for state advocacy). Chapters can configure the default PAC amount per invoice and customize which states are included. The contribution line item includes optional state field (if state field setting is enabled) and description pulled from additional line configuration.

2. Chapter Fundraising — Staff manually enter contributions through the PAC contribution interface. These can be corporate (company pays) or individual (person pays). They can target state or national PAC. Each contribution requires a date, type (state/national), amount, and optional notes (for tracking legislative district, special requests, relationships to elected officials). Fundraising contributions bypass the dues process entirely.

3. Nationally Collected Dollars — Some PAC contributions come through third-party systems (e.g., industry coalition platforms, national event fundraising). These aren't entered manually in CHAD2 but are imported as summary data: total dollars collected nationally from chapter members. The National PAC Summary view shows aggregated figures but not individual transaction details.

Why this matters for QA
Each collection method has different validation rules. Dues PAC is automatic, no manual entry (test that dues additional lines create PAC records). Fundraising PAC requires manual entry (test form validation — no future dates, positive amounts, currency formatting). National PAC is read-only summary (test that imports don't overwrite manual entries, test that summary totals are accurate). The system has to handle all three without conflicts.

🔐 Permission Model and Access Control

PAC is a module-level permission. Chapter Staff with "PAC Module" permission can create, view, and manage PAC contributions. They can enter contributions manually, view history, access individual and company profile PAC tabs, configure chapter settings including the state field toggle for dues lines, and view national PAC summary. Without PAC permission, staff cannot see the PAC menu or any PAC data.

Portal users (member company admins and employees) do not have access to PAC. PAC is staff-facing only. This is intentional: member companies don't manage their own PAC contributions, they simply appear on invoices (dues) or are solicited by staff (fundraising).

Why this matters for QA
Test permission enforcement: staff without PAC permission cannot see the PAC menu, cannot enter contributions, cannot view PAC data. Test that portal users don't see PAC at all. Test that permission changes immediately revoke or grant access. The permission system was initially missing (ABC-2723) — verify it's now complete and working correctly.

How It Works

Step-by-step workflows for entering contributions, viewing history, and managing PAC settings

✏️ Contribution Entry Workflow

Step 1: Navigate to PAC Module — Staff clicks "PAC Contributions" menu option (available in main PAC navigation if user has PAC permission).

Step 2: Select Individual — Use type-ahead search to find an individual. Search results include name, job title, individual type, status, company name, email, and address. When individual is selected, their company is auto-populated (because PAC contributions roll up to company level). Individual search uses the same data points as the global contacts search.

Step 3: Enter Contribution Details — Form displays: Contribution Date (required, date picker, no future dates, defaults to today), Contribution Type (required, dropdown: State or National, defaults to chapter-defined default), State (optional, conditionally shown only if Type = State, all US states dropdown), Contribution Amount (required, numeric, positive only, currency formatting), Notes (optional, free text for legislative district, special requests, official relationships).

Step 4: Submit — System validates form (all required fields, positive amount, valid date, currency format). On success, contribution is recorded and individual's company receives an automatic roll-up of the contribution amount. User sees confirmation and can enter another contribution or navigate away.

Why this matters for QA
Test the search functionality carefully: partial matches, special characters, inactive individuals. Test default values: chapter-defined default for contribution type, today's date. Test validation: reject future dates, reject negative/zero amounts, require type selection. Test conditional display: state field only appears for State contributions. Test roll-up: when individual contribution is entered, verify company profile PAC tab shows aggregated amount.

📋 Contribution History View

History table shows all PAC contributions with columns: Date, Contribution Type (State/National), State (if applicable), Amount, Notes. Default sort is by date (most recent first). Users can filter by contribution type (State, National), by state (if state field is in use), and by date range (From / To). All three collection methods (dues, fundraising, national import) appear in the same history table with appropriate type designation.

Why this matters for QA
Test sorting: default most-recent-first, verify sort order is correct. Test filters: filter by type, filter by state, filter by date range; verify filtered results are accurate. Test that the view includes contributions from all three collection methods (dues additional lines, manual fundraising, national summary). Test that state field only displays when state field setting is enabled and contribution type = State.

🏢 Individual and Company Profile Tabs

Individual Profile PAC Tab — Located after Committees & Groups tab on individual record. Shows table: Date, Contribution Type, State, Amount, Notes. Displays all contributions where this individual is the contributor (both corporate and individual contributions tied to the person).

Company Profile PAC Tab — Located after Committees & Groups tab on company record. Shows two subtables: (1) Company PAC Contributions (corporate contributions where company is the entity), (2) Individual Contributions (roll-up of all contributions from employees of this company, showing contributor name). Both subtables include: Date, Contribution Type, State, Amount, Notes. The company tab includes contributions from dues renewal PAC lines AND manually entered contributions.

Why this matters for QA
Test tab visibility: PAC tabs should be present on both individual and company records. Test data accuracy: contributions appear in the correct tab (individual vs. company), and amounts match the PAC contribution interface. Test dues renewal integration: when PAC additional line is processed, verify it appears in company PAC tab with correct type and state. Test that manual entry by individual shows in both individual and company tabs.

⚙️ Chapter Settings and Defaults

Chapter-Defined Default for PAC Contribution Type — Located in chapter configuration. Dropdown: State or National. When staff enters a new contribution through the PAC interface, this default pre-selects the contribution type. If chapter changes default, it only affects new contributions; existing data is not retroactive.

Chapter Settings: State Field for Dues Additional Lines — Toggle located in Additional Dues Settings & Tools section. When OFF (default), dues PAC additional lines do not display a state field. When ON, state field becomes optional on all additional lines (not just PAC). If state is selected on a PAC additional line, that state value flows into the PAC contribution history State column and appears in company PAC tab. This is used purely for reporting and tracking state-level contributions from the dues process.

Why this matters for QA
Test that default setting pre-populates new contributions correctly. Test that changing default doesn't affect existing contributions (ABC-2773 was a bug here). Test the state field toggle: when OFF, state column should not appear on dues lines; when ON, state field should appear and be optional. Test that toggling the setting only affects future dues invoices, not historical data. Test that state values from dues lines correctly populate PAC history.

📊 National PAC Summary

National PAC Summary view shows aggregate dollars collected nationally from chapter members (fed from third-party system, not manual entry). This is summary-only: total dollars, maybe top contributors if available, but not individual transaction records. The summary is imported periodically and merged with local contributions to give chapters the complete PAC picture.

Why this matters for QA
Test that national summary loads without corrupting manual entries or dues-based contributions. Test that totals are accurate (manual + dues + national = reported total). Test that the view is read-only (no edit, no delete). Test import process: verify data integrity, verify timestamp of last import, verify summary refreshes on schedule.

Glossary

Key terms and concepts for PAC module understanding

PAC

Political Action Committee. ABC's formal vehicle for members to contribute to political advocacy campaigns. Subject to state and federal regulations on contribution limits and disclosure.

State PAC

Contributions designated for state-level advocacy and policy work. Governed by state regulations and disclosure requirements. Default for most chapter fundraising and all dues renewal contributions.

National PAC

Contributions designated for federal-level advocacy. Subject to federal contribution limits and disclosure. Available as an option for chapter fundraising; only summary data is imported for national collection.

Prior Authorization

Formal agreement from a member granting ABC permission to solicit them for or accept contributions to National PAC. Required by some state laws for individual PAC solicitation.

Contribution Type

Designation of whether a PAC contribution is attributed to State or National advocacy. Set when contribution is entered; visible in history and profile tabs. Affects reporting and regulatory compliance.

Chapter-Defined Default

Configuration setting that pre-populates the Contribution Type field when staff enters new PAC contributions. Typically set to match the chapter's primary advocacy focus (State or National).

Dues Additional Lines

Line items added to annual dues invoices for specific purposes (PAC contribution, education fee, etc.). PAC lines are always corporate, always state-focused, and include optional state field (if enabled).

State Field Toggle

Chapter setting that enables the optional state field on dues additional lines. When ON, state can be captured for PAC lines during invoice creation; when OFF, state field is hidden. Default is OFF.

Metabase

Reporting and analytics platform. PAC reporting (contribution summaries, top contributors, compliance tracking) is handled by Metabase, not built into CHAD2 directly.

Corporate PAC

Contribution from a company (as opposed to individual). All dues renewal PAC is corporate. Chapter fundraising can be corporate or individual depending on who is solicited.

Individual PAC

Contribution from a person (individual contributor), not their company. Only available through chapter fundraising, not dues. Individual contributions automatically roll up to company level for aggregate reporting.

Roll-Up

Automatic aggregation of individual contributions to company level. When an individual enters or is credited with a PAC contribution, the amount is also attributed to their company for company-level reporting and totals.

Test Strategy

Systematic approach to testing PAC module functionality and edge cases

🎯 Core Testing Areas

Contribution Entry Validation — Test form validation for all required fields (date, type, amount), conditional display of state field (only for State type), positive-only amounts, future-date rejection, and currency formatting. Test default values from chapter configuration. Test type-ahead search for individuals (partial matches, special characters, inactive records).

Profile Tab Integration — Test that PAC tabs appear on individual and company profile records. Verify data accuracy: contributions display in correct tab, amounts match, dates sort correctly, notes are preserved. Test that contributions appear in both individual and company tabs (roll-up).

Dues Process Integration — Test that PAC additional lines on dues invoices create contribution records. Verify contribution type is "State", verify company is charged (not individual). Test state field capture if setting is enabled. Test that dues PAC lines appear in contribution history and company profile PAC tab.

Chapter Settings Behavior — Test that chapter-defined default pre-populates new contributions correctly. Test that changing default doesn't retroactively modify existing contributions. Test that state field toggle controls visibility/requirement on dues lines. Test that toggling state field setting only affects future data, not historical.

Permission Testing — Test that users without PAC permission cannot see PAC menu or data. Test that users with PAC permission can view and enter contributions. Test that permission changes immediately take effect. Test that portal users never see PAC functionality.

Why this matters for QA
These five areas cover the main functional surface of PAC. A contribution must be valid on entry, must integrate correctly with profiles and dues, must respect configuration defaults, and must be protected by permissions. Defects here are high-priority because they affect fundraising accuracy and regulatory compliance.

🔍 High-Risk Scenarios to Prioritize

State field conditional logic — Contribution type = National should hide state field; type = State should show it. Test switching between types multiple times.

Amount validation — Zero amounts should be rejected. Negative amounts should be rejected. Very large amounts should be accepted (no hard cap). Currencies with symbols (e.g., $1,000.00) should be parsed correctly.

Date validation — Today's date should be accepted. Yesterday should be accepted. Future dates should be rejected. Very old dates (years past) should be accepted for historical contributions.

Individual-to-company roll-up — When individual contribution is entered, verify company total increases. When multiple individuals from same company contribute, verify company total is sum of all individuals.

Dues PAC line integration — Dues additional lines for PAC should create contribution records. If state field is captured, it should flow to contribution history. If state field is not captured, state should be null or empty in contribution record.

Permission revocation — User with PAC permission can see and create contributions. Remove permission. User should immediately lose access to PAC menu and data. Restore permission. User should regain access.

Business Rules & Gotchas

Key rules that govern PAC behavior and common pitfalls to watch for

Dues Renewal PAC Is Always Corporate, Always State PAC

When PAC is included as an additional line on a dues invoice, the contribution is automatically recorded as Type = "State" (not National) and is always attributed to the company (not the individual). This is by design: dues renewal is a standardized, company-wide process. It's not negotiable per individual. Chapters cannot configure dues PAC to be National or individual-level.

Test: Create a dues invoice with PAC additional line. Verify contribution appears in history with Type = "State". Verify company PAC tab shows the amount. Verify individual is not attributed with a separate contribution.

Chapter Fundraising Can Be Corporate OR Individual, State OR National

When staff manually enters PAC contributions through the contribution interface, both contribution type (State/National) and entity type (corporate/individual) are selectable. This gives chapters flexibility: solicit a company for a general state contribution, or solicit a wealthy individual for a national campaign. The form allows any combination.

Test: Enter a corporate state contribution. Verify it appears in company PAC tab only, not individual tab. Enter an individual state contribution. Verify it appears in both individual and company tabs (roll-up). Enter corporate national. Enter individual national. Verify each appears in the correct tabs with correct type.

Individual Contributions Roll Up to Company Automatically

When an individual makes a PAC contribution (entered by staff during fundraising), the amount is attributed to both the individual (on their profile) and their company (on the company profile). No configuration needed; it's automatic. This ensures company leadership can see total PAC engagement from their workforce, not just the company's direct contributions.

Test: Enter contributions from three individuals at Company A: $500, $250, $1,000. Verify company PAC tab shows both individual contributions subtable (listing all three) and company total of $1,750. Verify individual profiles show the individual's contribution and company shows that contribution in roll-up.

State Field Is Conditional on Type = "State"

The state field on the contribution form only displays (and is only required) when Contribution Type is set to "State". If type is "National", the state field is hidden. This is validated on the form: you cannot submit a National contribution with a state selected.

Test: Create new contribution. Type defaults to chapter-defined default (e.g., State). State field is visible. Change type to National. State field disappears. If you had entered a state value, it should be cleared when type changes. Change back to State. State field reappears.

Chapter-Defined Default Determines Initial Contribution Type

When staff opens the contribution entry form, the Contribution Type field defaults to the value configured in chapter settings (State or National). If the chapter changes the default setting, it only affects new contributions; existing contributions are not retroactively changed. This is important: a chapter that pivots from state to national focus doesn't accidentally reclassify past contributions.

Test: Chapter default is "State". Create contribution. Type pre-fills with "State". Change chapter default to "National". Create new contribution. Type now pre-fills with "National". Go back and check first contribution. Type should still be "State" (not changed retroactively).

State Field for Dues Additional Lines Is a Separate Chapter Setting

The ability to capture state on dues PAC additional lines is controlled by a separate chapter setting (located in Chapter Settings > Additional Dues Settings & Tools). This is distinct from the default contribution type setting. Default is OFF. When ON, state field becomes available for all additional lines (not just PAC), but is optional. When OFF, state field is not displayed on dues lines at all.

Test: State field toggle is OFF. Create dues invoice with PAC additional line. State field not visible. Toggle setting to ON. Create new dues invoice. State field now visible on PAC line (optional). In contribution history, verify state from dues PAC line is captured if it was selected. If state was not selected, state column is empty.

Setting Changes Only Affect Future Data, Not Historical

If a chapter changes the chapter-defined default PAC type, only new contributions are affected. Existing contributions keep their original type. Same for the state field toggle: changing from OFF to ON doesn't retroactively add state fields to past due invoices. This protects historical data integrity and prevents accidental data corruption.

Test: Chapter default is "State", state field toggle is OFF. Create and process 5 dues invoices with PAC lines (all default to State, no state captured). Change chapter default to "National" and toggle state field to ON. Process new dues invoice. New invoice defaults to National, state field is available. First 5 invoices remain unchanged (State, no state field).

National PAC Is Summary-Only

National PAC contributions imported from third-party systems are summary-level data (total dollars, maybe top contributors). They are not individual transaction records. The National PAC Summary view shows aggregates but does not allow drilling into individual contributions from the national import.

Test: National PAC Summary loads data. Total shows aggregate amount. View is read-only (no edit, no delete buttons). If you switch to Contribution History, manually entered national contributions appear with full detail; imported national summary appears as one aggregate entry (or not at all if summary is separate view).

Contribution Date Cannot Be Future Date

The contribution date field defaults to today and rejects any date in the future. This prevents accidental entry of contributions that haven't happened yet. Historical contributions (past dates) are allowed.

Test: Try to enter contribution dated tomorrow. System rejects with validation error. Enter contribution dated today. Succeeds. Enter contribution dated 6 months ago. Succeeds. Try to enter contribution dated 10 years in the future. Rejects.

Amount Must Be Positive With Currency Formatting

The amount field accepts numeric input only, requires positive (greater than zero), and displays with currency formatting (e.g., $1,000.00). Negative amounts are rejected. Zero amounts are rejected. The field may accept decimal values up to cents (e.g., $1,234.56) depending on implementation.

Test: Enter amount = 0. Rejected. Enter amount = -500. Rejected. Enter amount = $1,000. Accepted, displays as $1,000.00. Enter amount = 1234.56. Accepted, displays as $1,234.56. Enter amount = "ABC". Rejected (non-numeric).

ABC-2867: State Values Hardcoded NULL (Bug, Now Fixed) ABC-2867

Bug: When PAC additional lines were processed during dues renewal, state values were hardcoded as NULL instead of pulling from the dues additional line State column. This meant state tracking for dues PAC was broken. Fix: State values now correctly flow from dues additional line State field into contribution record State field (if state field setting is enabled). Verify the fix: create dues invoice with PAC line, select a state in the state field, process invoice, verify state appears in PAC contribution history and company PAC tab.

Test: State field toggle is ON. Create dues invoice with PAC line. Select "California" in state field. Process invoice. Open Contribution History. Verify PAC contribution from this invoice shows State = "California" (not NULL). Verify Company PAC tab also shows state.

ABC-2723: Missing PAC Permission System (Bug, Now Fixed) ABC-2723

Bug: PAC module initially launched without a permission system. Any staff user could see PAC menu and data, regardless of intended role restrictions. Fix: PAC permission added to Chapter Staff permission set. Only staff with explicit PAC permission can access PAC functionality. Verify the fix: staff without PAC permission cannot see PAC menu, cannot create contributions, cannot view contribution history or PAC tabs. Staff with PAC permission can do all of the above.

Test: Create user with Chapter Staff permission but no PAC permission. Log in as user. Verify PAC menu is not visible. Try to navigate directly to PAC URL (if known). Request should be denied or user should be redirected. Add PAC permission to user. Verify PAC menu appears and functionality is available.

Scenario Thinking

Edge cases and complex workflows that test system resilience

State Setting Toggled After PAC Data Exists

Chapter has state field toggle ON, creates and processes 10 dues invoices with state values selected for PAC lines. PAC contributions have state values captured. Chapter then toggles state field OFF. What happens to historical data? Answer: Historical contributions keep their state values (no retroactive deletion). Future dues invoices will not show state field.

Scenario: Toggle ON, create dues with PA state, process. Toggle OFF, create new dues invoice. First invoice shows state=PA, second shows state=null/empty. View contribution history: first shows PA, second shows null. This is correct.

Individual with No Company on File

PAC contributions are supposed to roll up to company. But what if an individual record has no company? Can staff enter a contribution for them?

Scenario: Staff searches for individual "John Doe". System finds record but company field is empty/null. Staff tries to enter PAC contribution. System should either (a) reject entry with error "Individual must have a company", or (b) allow entry but leave company field empty (then contribution wouldn't roll up). Verify which behavior is implemented. If (a), this is correct per business logic. If (b), this is a defect.

Dues Invoice with PAC Line Is Voided

Dues invoice is created with PAC additional line, processed, contribution record is created. Later, invoice is voided (canceled). Does PAC contribution get deleted or marked inactive? Or does it stay on record?

Scenario: Create and process dues invoice with $500 PAC state line. Verify contribution appears in history. Void the invoice. Check if PAC contribution is deleted, marked deleted, or still visible with a status change. Verify company PAC tab total: does $500 stay, or is it removed? Expected behavior should be documented with development team (may vary based on implementation).

Negative or Zero-Dollar Contributions

Form validation should reject zero and negative amounts. But test edge cases: what if a dues invoice has a negative PAC additional line (e.g., credit/refund)? Is that allowed?

Scenario: Try to manually enter contribution with amount = $0. System rejects. Try amount = -$500. System rejects. Now, in dues additional line setup, attempt to create a credit line with negative amount for PAC. Check if dues process allows negative PAC additional lines. If it does, verify resulting PAC contribution record shows negative amount (if allowed) or is rejected. If dues allows it but PAC form rejects it, there's an inconsistency.

Multiple PAC Lines on One Dues Invoice

Can a dues invoice have multiple additional lines for PAC (e.g., State PAC and National PAC, or state PAC for two different states)? Or is it limited to one PAC line per invoice?

Scenario: Create dues invoice. Add PAC additional line State=$500. Add another PAC additional line National=$250. Process invoice. Verify contribution history shows two separate records (one State, one National), or one aggregated record. Verify company PAC tab shows both contributions. Expected behavior may depend on dues configuration (verify with product).

Chapter Default Changed for State vs. National

Chapter default is State. 20 contributions entered and saved as State. Chapter changes default to National. Do those 20 existing contributions retroactively change to National?

Scenario: Create 5 State contributions. Verify all show Type=State in history. Change chapter default to National. Create 1 new contribution. Verify it defaults to National and saves as National. Go back and verify first 5 contributions still show Type=State (not changed). If any of the first 5 changed to National, this is a defect.

Regression Checklists

Systematic checklists organized by feature area

Contribution Entry Form
  • Individual type-ahead search: partial name, full name, by company, inactive individuals
  • Contribution Date: defaults to today, rejects future dates, accepts past dates
  • Contribution Type: defaults to chapter setting, dropdown shows State and National
  • State field: only appears when Type=State, hidden when Type=National
  • State field: all US states available in dropdown, optional on form
  • Amount field: accepts positive numbers, rejects zero, rejects negative, formats as currency
  • Amount field: handles decimal values (cents) correctly
  • Notes field: optional, accepts free text, preserves special characters
  • Form validation: all required fields enforced before submit
  • Form reset: after successful submit, form clears for next contribution
  • Error handling: validation errors display clearly, allow correction without re-entering data
Contribution History View
  • Table displays: Date, Type, State, Amount, Notes columns
  • Default sort: most recent date first
  • Sort by date: ascending and descending both work
  • Filter by Type: selecting State shows only State contributions
  • Filter by Type: selecting National shows only National contributions
  • Filter by State: dropdown lists states that have contributions
  • Filter by State: selecting state filters correctly
  • Filter by Date Range: From date and To date filter correctly
  • Multiple filters: applying multiple filters simultaneously works
  • State column visibility: only shows when state field is used
  • Data accuracy: amounts match entered amounts, notes match, dates match
  • Pagination: if many contributions, pagination or scroll works
Individual Profile PAC Tab
  • Tab is visible on individual profile (after Committees & Groups)
  • Tab displays contributions where individual is contributor
  • Displays both manual contributions and dues PAC lines
  • Table columns: Date, Type, State, Amount, Notes
  • Data accuracy: amounts and dates match contribution records
  • Sorting: most recent first by default
  • Individual with no PAC contributions: tab shows empty or "no data" message
  • Individual with corporate state contribution: shows in tab with correct type/amount
  • Individual with individual state contribution: shows in tab
  • Individual with national contribution: shows with Type=National
  • Tab is read-only: no edit, add, or delete buttons
  • Individual moved to new company: old contributions remain visible with original company context
Company Profile PAC Tab
  • Tab is visible on company profile (after Committees & Groups)
  • Displays two subtables: Company Contributions and Individual Contributions
  • Company Contributions: corporate PAC contributions where company is entity
  • Individual Contributions: roll-up of all contributions from company employees
  • Company Contributions table: Date, Type, State, Amount, Notes
  • Individual Contributions table: Date, Individual Name, Type, State, Amount, Notes
  • Data accuracy: all contributions display correctly with matching amounts/dates
  • Dues PAC lines: appear in Company Contributions with correct type and state (if captured)
  • Manual corporate contribution: appears in Company Contributions
  • Manual individual contribution: appears in Individual Contributions (roll-up)
  • Total calculation: sum of all contributions (company + individuals) is correct
  • Company with no PAC contributions: tab shows empty or "no data" message
Chapter Settings & Defaults
  • Chapter-Defined Default: accessible in chapter configuration
  • Chapter-Defined Default: dropdown shows State and National options
  • Chapter-Defined Default: new contribution form pre-populates with selected default
  • Changing default: only affects new contributions, not existing
  • State Field Toggle: accessible in Chapter Settings > Additional Dues Settings
  • State Field Toggle: ON/OFF toggle works correctly
  • State Field Toggle OFF: dues PAC lines don't show state field
  • State Field Toggle ON: dues PAC lines show optional state field
  • State Field Toggle: changing from OFF to ON doesn't retroactively modify old data
  • State Field Toggle: changing from ON to OFF doesn't delete historical state values
  • State values from dues: correctly flow into contribution records (when state field is enabled)
Dues Integration
  • Dues invoice with PAC additional line: creates PAC contribution record
  • Dues PAC contribution: Type is always "State"
  • Dues PAC contribution: attributed to company, not individual
  • Dues PAC with state: state value flows from additional line to contribution
  • Dues PAC without state: state is null/empty in contribution
  • Dues PAC description: optional description from additional line appears in Notes field
  • Dues invoice processing: PAC contribution appears in history immediately after invoice is processed
  • Dues invoice voiding: verify PAC contribution is handled correctly (delete, mark inactive, or remain)
  • Multiple dues invoices: each with PAC line creates separate contribution record
  • Company profile PAC tab: dues contributions visible in Company Contributions subtable
National Summary
  • National PAC Summary menu option visible (if PAC permission granted)
  • National PAC Summary loads summary data
  • Summary shows total dollars collected nationally from chapter members
  • Summary view is read-only: no edit, add, delete buttons
  • Data integrity: importing national summary doesn't corrupt manual contributions
  • Data integrity: importing summary doesn't corrupt dues-based contributions
  • Totals: aggregated total (manual + dues + national) is accurate
  • Timestamp: last import date/time displayed (if applicable)
  • National summary doesn't show individual transaction detail (summary-only)
Permissions
  • User without PAC permission: PAC menu not visible in navigation
  • User without PAC permission: cannot navigate to PAC pages (redirect or error)
  • User with PAC permission: PAC menu visible and accessible
  • User with PAC permission: can view contribution history
  • User with PAC permission: can create new contributions
  • User with PAC permission: can view PAC tabs on individual/company profiles
  • User with PAC permission: can view chapter settings (state field toggle, default)
  • Portal users: PAC menu and data never visible (staff-only)
  • Permission revocation: removing PAC permission immediately hides menu
  • Permission restoration: re-adding PAC permission immediately shows menu
  • Permission verification: PAC-2723 bug fix confirmed (permission system in place)

Environment & Data Setup

Test environment preparation and data requirements for comprehensive PAC testing

🗂️ Required Test Data

Individuals with Companies — Create at least 5 test individuals, each linked to a company. Ensure mix includes: individuals with multiple companies in history (to test employment history), individuals with no company (to test edge case), individuals with special characters in name (to test search), inactive individuals (to test filtering).

Companies — Create at least 3 test companies: Member status, Prospect status, Inactive status. Include mix of company sizes and market segments (used for targeting in real scenarios). Companies should have multiple employees (to test roll-up calculations).

PAC-Enabled Permissions — Create test staff user with PAC module permission enabled. Create test staff user without PAC permission (to test permission blocking). Do not use admin accounts; test with limited-role staff accounts.

Chapter-Defined Defaults Configured — Set chapter-defined PAC contribution type default to "State" for initial testing. Later, change to "National" to test behavior change. Document baseline configuration for reset after testing.

Dues Invoices with PAC Additional Lines — Create test dues invoices with PAC additional lines configured. Test with state field toggle ON and OFF. Verify PAC lines create contribution records when invoices are processed.

State Field Setting Configured — Ensure chapter settings allow toggle of state field for dues additional lines. Test with setting OFF (default), then ON. Verify state values are captured and flow into contribution records.

⚙️ Configuration Checklist

Before Testing Begins:
  • Verify PAC module is visible in navigation menu
  • Verify "PAC Contributions" menu option is present
  • Verify "National PAC $ Summary" option is present (if national data is configured)
  • Verify individual and company profiles have PAC tabs
  • Verify chapter settings include PAC-related options (default type, state field toggle)
  • Verify at least one staff user has PAC permission
  • Verify at least one staff user lacks PAC permission (for permission testing)
  • Verify dues process can include PAC additional lines
  • Verify lookup tables are in place (all US states for state field dropdown)

📊 Data Validation

Once test data is created, validate using spot checks:

  • Individual search returns expected individuals with correct company affiliation
  • Company profiles load with correct individual associations
  • Employment history shows previous company moves (if applicable)
  • Chapter default setting is accessible and displays current value
  • State field toggle is accessible and in correct ON/OFF state
  • Dues invoice creation process includes PAC additional line option
  • State dropdown in dues additional lines includes all US states

🔄 Test Data Reset Procedure

After testing, clean up test data to avoid pollution of subsequent test runs:

Steps:
  • Delete all test PAC contributions (manually entered and from test dues invoices)
  • Delete or void all test dues invoices
  • Reset chapter-defined PAC default to baseline (usually "State")
  • Reset state field toggle to baseline (usually OFF)
  • Delete or deactivate test individuals and companies
  • Remove PAC permission from test staff user if needed
  • Verify PAC module state matches initial setup