/**
 * @sim/testing - Shared testing utilities for Sim
 *
 * This package provides a comprehensive set of tools for writing tests:
 * - Factories: Create mock data with sensible defaults
 * - Builders: Fluent APIs for complex test scenarios
 * - Mocks: Reusable mock implementations
 * - Assertions: Semantic test assertions
 *
 * @example
 * ```ts
 * import {
 *   // Factories
 *   createBlock,
 *   createStarterBlock,
 *   createLinearWorkflow,
 *   createExecutionContext,
 *
 *   // Builders
 *   WorkflowBuilder,
 *   ExecutionContextBuilder,
 *
 *   // Assertions
 *   expectBlockExists,
 *   expectEdgeConnects,
 *   expectBlockExecuted,
 * } from '@sim/testing'
 *
 * describe('MyFeature', () => {
 *   it('should work with a linear workflow', () => {
 *     const workflow = createLinearWorkflow(3)
 *     expectBlockExists(workflow.blocks, 'block-0', 'starter')
 *     expectEdgeConnects(workflow.edges, 'block-0', 'block-1')
 *   })
 *
 *   it('should work with a complex workflow', () => {
 *     const workflow = WorkflowBuilder.branching().build()
 *     expectBlockCount(workflow, 5)
 *   })
 * })
 * ```
 */

export * from './assertions'
export * from './builders'
export * from './factories'
export {
  createEnvMock,
  createMockDb,
  createMockFetch,
  createMockFormDataRequest,
  createMockGetEnv,
  createMockLogger,
  createMockRequest,
  createMockResponse,
  createMockSocket,
  createMockStorage,
  databaseMock,
  defaultMockEnv,
  defaultMockUser,
  drizzleOrmMock,
  envMock,
  loggerMock,
  type MockAuthResult,
  type MockFetchResponse,
  type MockUser,
  mockAuth,
  mockCommonSchemas,
  mockConsoleLogger,
  mockCryptoUuid,
  mockDrizzleOrm,
  mockKnowledgeSchemas,
  mockUuid,
  setupCommonApiMocks,
  setupGlobalFetchMock,
  setupGlobalStorageMocks,
} from './mocks'
export * from './types'
