/**
* Test Infrastructure Exports
*
* This file exports all test utilities, mocks, and helpers for easy importing in test files.
*
* @example
* ```typescript
* import { createMockClient, mockDeal, assertValidDeal } from '../__tests__/index.js';
* ```
*/
// Mock exports
export {
createMockClient,
createMockPaginator,
createMockResponse,
createMockPaginatedResponse,
createMockErrorResponse,
setupMockClientWithDefaults,
createMockCacheOptions,
} from './mocks/client.mock.js';
export {
mockDeal,
mockDeals,
mockPerson,
mockPersons,
mockOrganization,
mockOrganizations,
mockActivity,
mockActivities,
mockPipeline,
mockPipelines,
mockStage,
mockStages,
mockUser,
mockUsers,
mockFile,
mockFiles,
mockNote,
mockNotes,
mockProduct,
mockProducts,
mockSearchResults,
mockPagination,
mockPaginationWithMore,
} from './mocks/data.mock.js';
export {
createSuccessResponse,
createErrorResponse,
mockDealResponse,
mockDealsResponse,
mockDealsResponseWithMore,
mockDealCreateResponse,
mockDealUpdateResponse,
mockDealDeleteResponse,
mockPersonResponse,
mockPersonsResponse,
mockPersonsResponseWithMore,
mockPersonCreateResponse,
mockPersonUpdateResponse,
mockPersonDeleteResponse,
mockOrganizationResponse,
mockOrganizationsResponse,
mockOrganizationsResponseWithMore,
mockOrganizationCreateResponse,
mockOrganizationUpdateResponse,
mockOrganizationDeleteResponse,
mockActivityResponse,
mockActivitiesResponse,
mockActivitiesResponseWithMore,
mockActivityCreateResponse,
mockActivityUpdateResponse,
mockActivityDeleteResponse,
mockActivityMarkDoneResponse,
mockPipelineResponse,
mockPipelinesResponse,
mockPipelineCreateResponse,
mockPipelineUpdateResponse,
mockPipelineDeleteResponse,
mockStageResponse,
mockStagesResponse,
mockStageCreateResponse,
mockStageUpdateResponse,
mockStageDeleteResponse,
mockUserResponse,
mockUsersResponse,
mockCurrentUserResponse,
mockFileResponse,
mockFilesResponse,
mockFileUploadResponse,
mockFileUpdateResponse,
mockFileDeleteResponse,
mockFileDownloadResponse,
mockNoteResponse,
mockNotesResponse,
mockNoteCreateResponse,
mockNoteUpdateResponse,
mockNoteDeleteResponse,
mockProductResponse,
mockProductsResponse,
mockProductCreateResponse,
mockProductUpdateResponse,
mockProductDeleteResponse,
mockSearchResponse,
mockEmptySearchResponse,
mockNotFoundResponse,
mockUnauthorizedResponse,
mockBadRequestResponse,
mockRateLimitResponse,
mockServerErrorResponse,
mockValidationErrorResponse,
mockHealthResponse,
mockMetricsResponse,
mockCurrenciesResponse,
mockFieldResponse,
mockFieldsResponse,
mockFollowerResponse,
mockFollowersResponse,
mockAddFollowerResponse,
mockRemoveFollowerResponse,
} from './mocks/responses.mock.js';
// Helper exports
export {
wait,
waitFor,
createSpy,
resetAllMocks,
mockTimers,
restoreTimers,
advanceTimersByTime,
runAllTimers,
DeferredPromise,
createDeferredPromise,
suppressConsoleError,
suppressConsoleWarn,
randomInt,
randomString,
randomEmail,
randomDate,
formatDate,
formatDateTime,
deepClone,
deepEqual,
createMockFetchResponse,
createMockFetchError,
mockFetch,
restoreFetch,
setTestEnv,
getTestEnv,
clearTestEnv,
clearAllTestEnv,
expectToThrow,
createMockConsole,
retry,
} from './helpers/test-utils.js';
// Assertion exports
export {
assertValidPipedriveResponse,
assertSuccessResponse,
assertHasPagination,
assertHasMoreItems,
assertNoMoreItems,
assertValidDeal,
assertValidPerson,
assertValidOrganization,
assertValidActivity,
assertValidPipeline,
assertValidUser,
assertValidFile,
assertValidNote,
assertValidProduct,
assertArrayOfValidEntities,
assertValidISODate,
assertValidDateString,
assertValidTimeString,
assertValidEmail,
assertValidPhone,
assertValidUrl,
assertValidId,
assertInRange,
assertHasTimestamps,
assertCalledWith,
assertCalledOnce,
assertNotCalled,
assertErrorHasProps,
assertPipedriveError,
assertNonEmptyString,
assertPositiveNumber,
assertNonNegativeNumber,
assertObjectContains,
assertArrayContains,
assertArraySortedAsc,
assertArraySortedDesc,
} from './helpers/assertions.js';
// Setup exports
export { restoreConsole, getConsoleCalls } from './setup.js';