Integration Test Catalog
October 2, 2025 · View on GitHub
Complete catalog of integration tests using the IT-XXX naming taxonomy. This mirrors the MCP E2E Test Catalog but focuses on individual API operations and edge cases rather than complete workflows.
📋 Quick Reference
- Total Integration Tests: 8 suites (IT-XXX naming complete)
- ID Prefix:
IT-XXX(Integration Test) - Location:
test/integration/ - Execution:
npm run test:integration - Prerequisites:
ATTIO_API_KEYenvironment variable
🎯 IT-XXX Taxonomy
Note on ID Sequences: Gaps in test IDs (e.g., IT-102–IT-104) are intentional and reserved for future tests within that category. This maintains organized ID ranges while allowing test suite growth without renumbering.
IT-001–IT-099: Core Object CRUD Operations
| ID | Title | File Path | Environment | Owner | Status |
|---|---|---|---|---|---|
| IT-001 | Batch Company Operations | core/IT-001-batch-company-operations.integration.test.ts | shouldRunIntegrationTests() | Platform | ✅ Completed |
Description: Validates batch create, update, and delete operations for company records. Tests chunking behavior, error handling, and API response consistency.
Test Cases:
- IT-001.1: Updates multiple companies in a batch【F:test/integration/core/IT-001-batch-company-operations.integration.test.ts†L82-L117】
IT-100–IT-199: API Validation & Edge Cases
| ID | Title | File Path | Environment | Owner | Status |
|---|---|---|---|---|---|
| IT-101 | Advanced Search API | api/IT-101-advanced-search-api.integration.test.ts | shouldRunIntegrationTests() | API Team | ✅ Completed |
| IT-105 | Advanced Search Validation | api/IT-105-advanced-search-validation.integration.test.ts | shouldRunIntegrationTests() | API Team | ✅ Completed |
| IT-106 | Attribute Validation (Live API) | api/IT-106-attribute-validation.integration.test.ts | shouldRunIntegrationTests() | API Team | ✅ Completed |
| IT-107 | Industry Categories Mapping | api/IT-107-industry-categories-mapping.integration.test.ts | shouldRunIntegrationTests() + ENABLE_INDUSTRY_MAPPING_TESTS=true | API Team | ✅ Completed |
IT-101: Advanced Search API
- IT-101.1: Returns companies matching a simple name filter【F:test/integration/api/IT-101-advanced-search-api.integration.test.ts†L28-L47】
- IT-101.2: Handles OR logic with multiple conditions【F:test/integration/api/IT-101-advanced-search-api.integration.test.ts†L49-L67】
- IT-101.3: Handles company-specific attributes【F:test/integration/api/IT-101-advanced-search-api.integration.test.ts†L69-L83】
- IT-101.4: Reports invalid filter structures【F:test/integration/api/IT-101-advanced-search-api.integration.test.ts†L85-L94】
- IT-101.5: Reports invalid filter conditions【F:test/integration/api/IT-101-advanced-search-api.integration.test.ts†L95-L110】
- IT-101.6: Searches via the generic API helper【F:test/integration/api/IT-101-advanced-search-api.integration.test.ts†L112-L131】
- IT-101.7: Surfaces filter validation errors【F:test/integration/api/IT-101-advanced-search-api.integration.test.ts†L132-L146】
- IT-101.8: Rejects non-array filter collections【F:test/integration/api/IT-101-advanced-search-api.integration.test.ts†L148-L159】
IT-105: Advanced Search Validation
- IT-105.1: Rejects missing filters object【F:test/integration/api/IT-105-advanced-search-validation.integration.test.ts†L34-L38】
- IT-105.2: Rejects missing filters array【F:test/integration/api/IT-105-advanced-search-validation.integration.test.ts†L40-L44】
- IT-105.3: Rejects non-array filter collections【F:test/integration/api/IT-105-advanced-search-validation.integration.test.ts†L46-L54】
- IT-105.4: Rejects filter objects without attribute metadata【F:test/integration/api/IT-105-advanced-search-validation.integration.test.ts†L56-L69】
- IT-105.5: Rejects attribute definitions without slug【F:test/integration/api/IT-105-advanced-search-validation.integration.test.ts†L71-L85】
- IT-105.6: Rejects filters missing condition property【F:test/integration/api/IT-105-advanced-search-validation.integration.test.ts†L87-L100】
IT-106: Attribute Validation
- IT-106.1: Fetches live attribute metadata【F:test/integration/api/IT-106-attribute-validation.integration.test.ts†L60-L68】
- IT-106.2: Validates company creation with type coercion【F:test/integration/api/IT-106-attribute-validation.integration.test.ts†L71-L86】
- IT-106.3: Validates company updates with type coercion【F:test/integration/api/IT-106-attribute-validation.integration.test.ts†L89-L112】
- IT-106.4: Validates individual attribute updates【F:test/integration/api/IT-106-attribute-validation.integration.test.ts†L115-L134】
- IT-106.5: Rejects invalid attribute values【F:test/integration/api/IT-106-attribute-validation.integration.test.ts†L140-L153】
IT-107: Industry Categories Mapping
- IT-107.1: Maps industries to list-backed categories on create【F:test/integration/api/IT-107-industry-categories-mapping.integration.test.ts†L30-L69】
IT-200–IT-299: Platform Services
| ID | Title | File Path | Environment | Owner | Status |
|---|---|---|---|---|---|
| IT-201 | Rate Limiting (Deterministic) | services/IT-201-rate-limiting.integration.test.ts | shouldRunIntegrationTests({ allowDryRun: true }) | Platform | ✅ Completed |
IT-201: Rate Limiting
- IT-201.1: Triggers rate limit after exceeding threshold with headers【F:test/integration/services/IT-201-rate-limiting.integration.test.ts†L19-L55】
Note: This is a deterministic/unit-style test that doesn't require live API access. Consider moving to test/unit/ during migration.
IT-300–IT-399: Advanced Features
| ID | Title | File Path | Environment | Owner | Status |
|---|---|---|---|---|---|
| IT-301 | Relationship Filters | advanced/IT-301-relationship-filters.integration.test.ts | shouldRunIntegrationTests() | Platform | ✅ Completed |
| IT-302 | List Membership Operations | advanced/IT-302-list-membership-operations.integration.test.ts | shouldRunIntegrationTests() | Lists Team | ✅ Completed |
IT-301: Relationship Filters
- IT-301.1: Finds people who work at tech companies【F:test/integration/advanced/IT-301-relationship-filters.integration.test.ts†L35-L60】
- IT-301.2: Finds companies with executive roles【F:test/integration/advanced/IT-301-relationship-filters.integration.test.ts†L62-L83】
- IT-301.3: Finds people in a specific list【F:test/integration/advanced/IT-301-relationship-filters.integration.test.ts†L87-L102】
- IT-301.4: Finds companies in a specific list【F:test/integration/advanced/IT-301-relationship-filters.integration.test.ts†L102-L114】
- IT-301.5: Finds people via nested list relationships【F:test/integration/advanced/IT-301-relationship-filters.integration.test.ts†L115-L126】
- IT-301.6: Finds companies via nested list relationships【F:test/integration/advanced/IT-301-relationship-filters.integration.test.ts†L127-L144】
IT-302: List Membership Operations
- IT-302.0: Requires TEST_LIST_ID and TEST_COMPANY_ID configuration【F:test/integration/advanced/IT-302-list-membership-operations.integration.test.ts†L63-L104】
- IT-302.1: Adds list membership with required parameters【F:test/integration/advanced/IT-302-list-membership-operations.integration.test.ts†L121-L134】
- IT-302.2: Adds list membership with parent object context【F:test/integration/advanced/IT-302-list-membership-operations.integration.test.ts†L136-L153】
- IT-302.3: Adds list membership with entry values【F:test/integration/advanced/IT-302-list-membership-operations.integration.test.ts†L155-L169】
- IT-302.4: Adds list membership with all parameters【F:test/integration/advanced/IT-302-list-membership-operations.integration.test.ts†L171-L186】
- IT-302.5: Surfaces validation errors for missing record_id【F:test/integration/advanced/IT-302-list-membership-operations.integration.test.ts†L175-L183】
- IT-302.6: Surfaces validation errors for missing resource_type【F:test/integration/advanced/IT-302-list-membership-operations.integration.test.ts†L185-L194】
🔄 Integration vs E2E Comparison
| Aspect | Integration (IT-XXX) | E2E (TC-XXX) |
|---|---|---|
| Test Count | 8 suites | 38+ test cases |
| Scope | API operations, edge cases | Complete workflows |
| Catalog | This document | MCP README |
| Numbering | IT-001, IT-105, IT-201... | TC-001, TC-L01, TC-D01... |
| Environment | Live Attio API | Live Attio API + MCP protocol |
🚧 Migration Tracking
Current Status: Phase 3 Complete ✅
- ✅ Phase 1: Audit complete - Integration Test Naming Audit
- ✅ Phase 2: Convention documented in this catalog and test/integration/README.md
- ✅ Phase 3: File renaming and ID assignment (tracked in issue #834)
Migration Blockers
- ✅ Completed - Phase 3 merged via issue #834
Environment Variable Consolidation
All integration suites now rely on the shared shouldRunIntegrationTests() helper (with allowDryRun support for IT-201). Legacy guards such as RUN_INTEGRATION_TESTS and SKIP_TESTS have been removed.
📚 Related Documentation
- Integration Test README - Naming convention and quick start guide
- Integration Test Naming Audit - Detailed audit findings and migration strategy
- MCP E2E Test Catalog - TC-XXX taxonomy for E2E tests
- Testing Guide - Overall testing strategy
🔗 External References
- Issue #810: Integration test naming convention audit (Phases 1 & 2)
- Issue #834: Phase 3 migration implementation (file renaming)
- PR #827: Audit documentation and catalog creation
- PR #804: Test relocation that exposed naming inconsistencies