From d0f7ca4b180febd8b7c20d53a041caade500d8a4 Mon Sep 17 00:00:00 2001 From: jumski <9126+jumski@users.noreply.github.com> Date: Wed, 3 Dec 2025 17:24:42 +0000 Subject: [PATCH] refactor: reorganize tests into unit and e2e directories (#491) # Reorganize Test Directory Structure for Better Separation of Unit and E2E Tests This PR reorganizes the test directory structure to clearly separate unit tests from end-to-end tests: - Moved all integration tests from `__tests__/integration/` to `__tests__/e2e/` - Relocated unit tests from the root `__tests__/` directory to `__tests__/unit/` - Updated import paths in test files to reflect the new directory structure - Created a separate Vitest configuration for E2E tests (`vitest.e2e.config.ts`) - Renamed `vitest.global-setup.ts` to `vitest.e2e.global-setup.ts` to clarify its purpose - Updated the project.json configuration to use the appropriate test commands for each test type This change improves the organization of our test suite and makes it clearer which tests are unit tests and which are end-to-end tests, while maintaining all existing test functionality. --- .../concurrent-operations.test.ts | 0 .../flow-lifecycle.test.ts | 0 .../full-stack-dsl.test.ts | 0 .../happy-path-e2e.test.ts | 0 .../input-validation.test.ts | 0 .../network-resilience.test.ts | 0 .../real-flow-execution.test.ts | 0 .../{integration => e2e}/realtime-send.test.ts | 0 .../{integration => e2e}/reconnection.test.ts | 0 .../regressions/step-failed-event-bug.test.ts | 0 .../supabase-setup.test.ts | 0 .../wait-for-status-failure.test.ts | 0 .../__tests__/{ => unit}/FlowRun.test.ts | 16 ++++++++-------- .../__tests__/{ => unit}/FlowStep.test.ts | 12 ++++++------ .../__tests__/{ => unit}/PgflowClient.test.ts | 10 +++++----- .../SupabaseBroadcastAdapter.simple.test.ts | 10 +++++----- ...roadcastAdapter.stabilization-delay.test.ts | 8 ++++---- .../SupabaseBroadcastAdapter.test.ts | 10 +++++----- .../__tests__/{ => unit}/browser.test.ts | 2 +- .../{ => unit}/concurrent-operations.test.ts | 10 +++++----- .../{ => unit}/data-validation.test.ts | 18 +++++++++--------- pkgs/client/__tests__/{ => unit}/dummy.test.ts | 0 .../{ => unit}/error-recovery.test.ts | 10 +++++----- .../{ => unit}/event-matchers.test.ts | 4 ++-- .../__tests__/{ => unit}/json-parsing.test.ts | 8 ++++---- .../__tests__/{ => unit}/reconnection.test.ts | 8 ++++---- .../__tests__/{ => unit}/type-guards.test.ts | 6 +++--- pkgs/client/project.json | 6 +++--- pkgs/client/vite.config.ts | 1 - pkgs/client/vitest.e2e.config.ts | 12 ++++++++++++ ...bal-setup.ts => vitest.e2e.global-setup.ts} | 0 31 files changed, 81 insertions(+), 70 deletions(-) rename pkgs/client/__tests__/{integration => e2e}/concurrent-operations.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/flow-lifecycle.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/full-stack-dsl.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/happy-path-e2e.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/input-validation.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/network-resilience.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/real-flow-execution.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/realtime-send.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/reconnection.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/regressions/step-failed-event-bug.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/supabase-setup.test.ts (100%) rename pkgs/client/__tests__/{integration => e2e}/wait-for-status-failure.test.ts (100%) rename pkgs/client/__tests__/{ => unit}/FlowRun.test.ts (98%) rename pkgs/client/__tests__/{ => unit}/FlowStep.test.ts (98%) rename pkgs/client/__tests__/{ => unit}/PgflowClient.test.ts (97%) rename pkgs/client/__tests__/{ => unit}/SupabaseBroadcastAdapter.simple.test.ts (95%) rename pkgs/client/__tests__/{ => unit}/SupabaseBroadcastAdapter.stabilization-delay.test.ts (95%) rename pkgs/client/__tests__/{ => unit}/SupabaseBroadcastAdapter.test.ts (98%) rename pkgs/client/__tests__/{ => unit}/browser.test.ts (93%) rename pkgs/client/__tests__/{ => unit}/concurrent-operations.test.ts (97%) rename pkgs/client/__tests__/{ => unit}/data-validation.test.ts (97%) rename pkgs/client/__tests__/{ => unit}/dummy.test.ts (100%) rename pkgs/client/__tests__/{ => unit}/error-recovery.test.ts (98%) rename pkgs/client/__tests__/{ => unit}/event-matchers.test.ts (98%) rename pkgs/client/__tests__/{ => unit}/json-parsing.test.ts (97%) rename pkgs/client/__tests__/{ => unit}/reconnection.test.ts (95%) rename pkgs/client/__tests__/{ => unit}/type-guards.test.ts (99%) create mode 100644 pkgs/client/vitest.e2e.config.ts rename pkgs/client/{vitest.global-setup.ts => vitest.e2e.global-setup.ts} (100%) diff --git a/pkgs/client/__tests__/integration/concurrent-operations.test.ts b/pkgs/client/__tests__/e2e/concurrent-operations.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/concurrent-operations.test.ts rename to pkgs/client/__tests__/e2e/concurrent-operations.test.ts diff --git a/pkgs/client/__tests__/integration/flow-lifecycle.test.ts b/pkgs/client/__tests__/e2e/flow-lifecycle.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/flow-lifecycle.test.ts rename to pkgs/client/__tests__/e2e/flow-lifecycle.test.ts diff --git a/pkgs/client/__tests__/integration/full-stack-dsl.test.ts b/pkgs/client/__tests__/e2e/full-stack-dsl.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/full-stack-dsl.test.ts rename to pkgs/client/__tests__/e2e/full-stack-dsl.test.ts diff --git a/pkgs/client/__tests__/integration/happy-path-e2e.test.ts b/pkgs/client/__tests__/e2e/happy-path-e2e.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/happy-path-e2e.test.ts rename to pkgs/client/__tests__/e2e/happy-path-e2e.test.ts diff --git a/pkgs/client/__tests__/integration/input-validation.test.ts b/pkgs/client/__tests__/e2e/input-validation.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/input-validation.test.ts rename to pkgs/client/__tests__/e2e/input-validation.test.ts diff --git a/pkgs/client/__tests__/integration/network-resilience.test.ts b/pkgs/client/__tests__/e2e/network-resilience.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/network-resilience.test.ts rename to pkgs/client/__tests__/e2e/network-resilience.test.ts diff --git a/pkgs/client/__tests__/integration/real-flow-execution.test.ts b/pkgs/client/__tests__/e2e/real-flow-execution.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/real-flow-execution.test.ts rename to pkgs/client/__tests__/e2e/real-flow-execution.test.ts diff --git a/pkgs/client/__tests__/integration/realtime-send.test.ts b/pkgs/client/__tests__/e2e/realtime-send.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/realtime-send.test.ts rename to pkgs/client/__tests__/e2e/realtime-send.test.ts diff --git a/pkgs/client/__tests__/integration/reconnection.test.ts b/pkgs/client/__tests__/e2e/reconnection.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/reconnection.test.ts rename to pkgs/client/__tests__/e2e/reconnection.test.ts diff --git a/pkgs/client/__tests__/integration/regressions/step-failed-event-bug.test.ts b/pkgs/client/__tests__/e2e/regressions/step-failed-event-bug.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/regressions/step-failed-event-bug.test.ts rename to pkgs/client/__tests__/e2e/regressions/step-failed-event-bug.test.ts diff --git a/pkgs/client/__tests__/integration/supabase-setup.test.ts b/pkgs/client/__tests__/e2e/supabase-setup.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/supabase-setup.test.ts rename to pkgs/client/__tests__/e2e/supabase-setup.test.ts diff --git a/pkgs/client/__tests__/integration/wait-for-status-failure.test.ts b/pkgs/client/__tests__/e2e/wait-for-status-failure.test.ts similarity index 100% rename from pkgs/client/__tests__/integration/wait-for-status-failure.test.ts rename to pkgs/client/__tests__/e2e/wait-for-status-failure.test.ts diff --git a/pkgs/client/__tests__/FlowRun.test.ts b/pkgs/client/__tests__/unit/FlowRun.test.ts similarity index 98% rename from pkgs/client/__tests__/FlowRun.test.ts rename to pkgs/client/__tests__/unit/FlowRun.test.ts index 8f0728ffa..b3aae01f1 100644 --- a/pkgs/client/__tests__/FlowRun.test.ts +++ b/pkgs/client/__tests__/unit/FlowRun.test.ts @@ -1,22 +1,22 @@ import { describe, test, expect, vi } from 'vitest'; -import { FlowRun } from '../src/lib/FlowRun'; -import { FlowStep } from '../src/lib/FlowStep'; -import { FlowRunStatus, FlowStepStatus } from '../src/lib/types'; -import { toTypedRunEvent, toTypedStepEvent } from '../src/lib/eventAdapters'; +import { FlowRun } from '../../src/lib/FlowRun'; +import { FlowStep } from '../../src/lib/FlowStep'; +import { FlowRunStatus, FlowStepStatus } from '../../src/lib/types'; +import { toTypedRunEvent, toTypedStepEvent } from '../../src/lib/eventAdapters'; import { setupTestEnvironment, advanceTimersAndFlush, createEventTracker, -} from './helpers/test-utils'; +} from '../helpers/test-utils'; import { createRunStartedEvent, createRunCompletedEvent, createRunFailedEvent, createStepStartedEvent, -} from './helpers/event-factories'; -import { createFlowRun } from './helpers/state-factories'; +} from '../helpers/event-factories'; +import { createFlowRun } from '../helpers/state-factories'; // Test scenarios have been inlined for clarity -import { RUN_ID, FLOW_SLUG, STEP_SLUG, ANOTHER_STEP_SLUG } from './fixtures'; +import { RUN_ID, FLOW_SLUG, STEP_SLUG, ANOTHER_STEP_SLUG } from '../fixtures'; describe('FlowRun', () => { setupTestEnvironment(); diff --git a/pkgs/client/__tests__/FlowStep.test.ts b/pkgs/client/__tests__/unit/FlowStep.test.ts similarity index 98% rename from pkgs/client/__tests__/FlowStep.test.ts rename to pkgs/client/__tests__/unit/FlowStep.test.ts index 83b6a1991..67a8db6e8 100644 --- a/pkgs/client/__tests__/FlowStep.test.ts +++ b/pkgs/client/__tests__/unit/FlowStep.test.ts @@ -1,19 +1,19 @@ import { describe, test, expect, vi } from 'vitest'; -import { FlowStep } from '../src/lib/FlowStep'; -import { FlowStepStatus } from '../src/lib/types'; +import { FlowStep } from '../../src/lib/FlowStep'; +import { FlowStepStatus } from '../../src/lib/types'; import { setupTestEnvironment, advanceTimersAndFlush, createEventTracker, -} from './helpers/test-utils'; +} from '../helpers/test-utils'; import { createStepStartedEvent, createStepCompletedEvent, createStepFailedEvent, -} from './helpers/event-factories'; -import { createFlowStep } from './helpers/state-factories'; +} from '../helpers/event-factories'; +import { createFlowStep } from '../helpers/state-factories'; // Test scenarios have been inlined for clarity -import { RUN_ID, STEP_SLUG, ANOTHER_STEP_SLUG } from './fixtures'; +import { RUN_ID, STEP_SLUG, ANOTHER_STEP_SLUG } from '../fixtures'; describe('FlowStep', () => { setupTestEnvironment(); diff --git a/pkgs/client/__tests__/PgflowClient.test.ts b/pkgs/client/__tests__/unit/PgflowClient.test.ts similarity index 97% rename from pkgs/client/__tests__/PgflowClient.test.ts rename to pkgs/client/__tests__/unit/PgflowClient.test.ts index 8574ab28a..f9334dfd7 100644 --- a/pkgs/client/__tests__/PgflowClient.test.ts +++ b/pkgs/client/__tests__/unit/PgflowClient.test.ts @@ -1,6 +1,6 @@ import { describe, test, expect, vi } from 'vitest'; -import { PgflowClient } from '../src/lib/PgflowClient'; -import { FlowRunStatus, FlowStepStatus } from '../src/lib/types'; +import { PgflowClient } from '../../src/lib/PgflowClient'; +import { FlowRunStatus, FlowStepStatus } from '../../src/lib/types'; import { setupTestEnvironment, createMockClient, @@ -8,12 +8,12 @@ import { mockRpcCall, emitBroadcastEvent, createSyncSchedule, -} from './helpers/test-utils'; +} from '../helpers/test-utils'; import { createRunCompletedEvent, createStepStartedEvent, -} from './helpers/event-factories'; -import { RUN_ID, FLOW_SLUG } from './fixtures'; +} from '../helpers/event-factories'; +import { RUN_ID, FLOW_SLUG } from '../fixtures'; // Mock uuid.v4 to return a predictable run ID for testing vi.mock('uuid', () => ({ diff --git a/pkgs/client/__tests__/SupabaseBroadcastAdapter.simple.test.ts b/pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.simple.test.ts similarity index 95% rename from pkgs/client/__tests__/SupabaseBroadcastAdapter.simple.test.ts rename to pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.simple.test.ts index 952614051..ec9ddb688 100644 --- a/pkgs/client/__tests__/SupabaseBroadcastAdapter.simple.test.ts +++ b/pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.simple.test.ts @@ -1,22 +1,22 @@ import { describe, test, expect, vi } from 'vitest'; -import { SupabaseBroadcastAdapter } from '../src/lib/SupabaseBroadcastAdapter'; +import { SupabaseBroadcastAdapter } from '../../src/lib/SupabaseBroadcastAdapter'; import { setupTestEnvironment, createMockClient, emitBroadcastEvent, -} from './helpers/test-utils'; +} from '../helpers/test-utils'; import { createRunStartedEvent, createStepStartedEvent, -} from './helpers/event-factories'; +} from '../helpers/event-factories'; import { RUN_ID, FLOW_SLUG, STEP_SLUG, startedRunSnapshot, startedStepState, -} from './fixtures'; -import { mockChannelSubscription } from './mocks'; +} from '../fixtures'; +import { mockChannelSubscription } from '../mocks'; /** * This is a simplified test that focuses on the core functionality diff --git a/pkgs/client/__tests__/SupabaseBroadcastAdapter.stabilization-delay.test.ts b/pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.stabilization-delay.test.ts similarity index 95% rename from pkgs/client/__tests__/SupabaseBroadcastAdapter.stabilization-delay.test.ts rename to pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.stabilization-delay.test.ts index a9ca9003f..84aca89ab 100644 --- a/pkgs/client/__tests__/SupabaseBroadcastAdapter.stabilization-delay.test.ts +++ b/pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.stabilization-delay.test.ts @@ -1,10 +1,10 @@ import { describe, test, expect, vi, beforeEach, afterEach } from 'vitest'; -import { SupabaseBroadcastAdapter } from '../src/lib/SupabaseBroadcastAdapter'; +import { SupabaseBroadcastAdapter } from '../../src/lib/SupabaseBroadcastAdapter'; import { createMockClient, -} from './helpers/test-utils'; -import { RUN_ID } from './fixtures'; -import { mockChannelSubscription } from './mocks'; +} from '../helpers/test-utils'; +import { RUN_ID } from '../fixtures'; +import { mockChannelSubscription } from '../mocks'; /** * Tests for configurable stabilization delay diff --git a/pkgs/client/__tests__/SupabaseBroadcastAdapter.test.ts b/pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.test.ts similarity index 98% rename from pkgs/client/__tests__/SupabaseBroadcastAdapter.test.ts rename to pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.test.ts index 01fe5f146..6d12526ee 100644 --- a/pkgs/client/__tests__/SupabaseBroadcastAdapter.test.ts +++ b/pkgs/client/__tests__/unit/SupabaseBroadcastAdapter.test.ts @@ -1,5 +1,5 @@ import { describe, test, expect, vi } from 'vitest'; -import { SupabaseBroadcastAdapter } from '../src/lib/SupabaseBroadcastAdapter'; +import { SupabaseBroadcastAdapter } from '../../src/lib/SupabaseBroadcastAdapter'; import { setupTestEnvironment, createMockClient, @@ -7,7 +7,7 @@ import { createEventTracker, createEventRoutingTest, createSyncSchedule, -} from './helpers/test-utils'; +} from '../helpers/test-utils'; import { createRunStartedEvent, createRunCompletedEvent, @@ -15,8 +15,8 @@ import { createStepStartedEvent, createStepCompletedEvent, createStepFailedEvent, -} from './helpers/event-factories'; -import { mockChannelSubscription } from './mocks'; +} from '../helpers/event-factories'; +import { mockChannelSubscription } from '../mocks'; import { RUN_ID, FLOW_SLUG, @@ -24,7 +24,7 @@ import { startedStepState, sampleFlowDefinition, sampleStepsDefinition, -} from './fixtures'; +} from '../fixtures'; describe('SupabaseBroadcastAdapter', () => { setupTestEnvironment(); diff --git a/pkgs/client/__tests__/browser.test.ts b/pkgs/client/__tests__/unit/browser.test.ts similarity index 93% rename from pkgs/client/__tests__/browser.test.ts rename to pkgs/client/__tests__/unit/browser.test.ts index a2a63e63c..ddf7d4912 100644 --- a/pkgs/client/__tests__/browser.test.ts +++ b/pkgs/client/__tests__/unit/browser.test.ts @@ -1,5 +1,5 @@ import { describe, it, expect, vi } from 'vitest'; -import { createClient, PgflowClient } from '../src/browser'; +import { createClient, PgflowClient } from '../../src/browser'; import type { SupabaseClient } from '@supabase/supabase-js'; describe('browser entry point', () => { diff --git a/pkgs/client/__tests__/concurrent-operations.test.ts b/pkgs/client/__tests__/unit/concurrent-operations.test.ts similarity index 97% rename from pkgs/client/__tests__/concurrent-operations.test.ts rename to pkgs/client/__tests__/unit/concurrent-operations.test.ts index d42aa07b9..ada431674 100644 --- a/pkgs/client/__tests__/concurrent-operations.test.ts +++ b/pkgs/client/__tests__/unit/concurrent-operations.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi } from 'vitest'; -import { PgflowClient } from '../src/lib/PgflowClient'; -import { FlowRunStatus, FlowStepStatus } from '../src/lib/types'; +import { PgflowClient } from '../../src/lib/PgflowClient'; +import { FlowRunStatus, FlowStepStatus } from '../../src/lib/types'; import { Flow } from '@pgflow/dsl'; import { setupTestEnvironment, @@ -12,13 +12,13 @@ import { setupConcurrentOperations, createEventTracker, createSyncSchedule, -} from './helpers/test-utils'; +} from '../helpers/test-utils'; import { createStepStartedEvent, createStepCompletedEvent, createRunCompletedEvent, -} from './helpers/event-factories'; -import { RUN_ID, FLOW_SLUG, STEP_SLUG, startedRunSnapshot, stepStatesSample } from './fixtures'; +} from '../helpers/event-factories'; +import { RUN_ID, FLOW_SLUG, STEP_SLUG, startedRunSnapshot, stepStatesSample } from '../fixtures'; // Create a test flow for proper typing const TestFlow = new Flow<{ test: string }>({ slug: 'test_flow' }).step( diff --git a/pkgs/client/__tests__/data-validation.test.ts b/pkgs/client/__tests__/unit/data-validation.test.ts similarity index 97% rename from pkgs/client/__tests__/data-validation.test.ts rename to pkgs/client/__tests__/unit/data-validation.test.ts index ddf2c596a..aec204855 100644 --- a/pkgs/client/__tests__/data-validation.test.ts +++ b/pkgs/client/__tests__/unit/data-validation.test.ts @@ -1,9 +1,9 @@ import { describe, it, expect, vi } from 'vitest'; -import { PgflowClient } from '../src/lib/PgflowClient'; -import { FlowRun } from '../src/lib/FlowRun'; -import { FlowStep } from '../src/lib/FlowStep'; -import { FlowRunStatus, FlowStepStatus } from '../src/lib/types'; -import { toTypedRunEvent, toTypedStepEvent } from '../src/lib/eventAdapters'; +import { PgflowClient } from '../../src/lib/PgflowClient'; +import { FlowRun } from '../../src/lib/FlowRun'; +import { FlowStep } from '../../src/lib/FlowStep'; +import { FlowRunStatus, FlowStepStatus } from '../../src/lib/types'; +import { toTypedRunEvent, toTypedStepEvent } from '../../src/lib/eventAdapters'; import { setupTestEnvironment, createMockClient, @@ -12,21 +12,21 @@ import { emitBroadcastEvent, advanceTimersAndFlush, createSyncSchedule, -} from './helpers/test-utils'; +} from '../helpers/test-utils'; import { createRunStartedEvent, createRunCompletedEvent, createStepStartedEvent, createStepCompletedEvent, -} from './helpers/event-factories'; -import { mockChannelSubscription } from './mocks'; +} from '../helpers/event-factories'; +import { mockChannelSubscription } from '../mocks'; import { RUN_ID, FLOW_SLUG, STEP_SLUG, startedRunSnapshot, stepStatesSample, -} from './fixtures'; +} from '../fixtures'; // Mock uuid.v4 to return predictable run ID for testing vi.mock('uuid', () => ({ diff --git a/pkgs/client/__tests__/dummy.test.ts b/pkgs/client/__tests__/unit/dummy.test.ts similarity index 100% rename from pkgs/client/__tests__/dummy.test.ts rename to pkgs/client/__tests__/unit/dummy.test.ts diff --git a/pkgs/client/__tests__/error-recovery.test.ts b/pkgs/client/__tests__/unit/error-recovery.test.ts similarity index 98% rename from pkgs/client/__tests__/error-recovery.test.ts rename to pkgs/client/__tests__/unit/error-recovery.test.ts index a31fc2502..cb870fbf8 100644 --- a/pkgs/client/__tests__/error-recovery.test.ts +++ b/pkgs/client/__tests__/unit/error-recovery.test.ts @@ -1,6 +1,6 @@ import { describe, it, expect, vi } from 'vitest'; -import { PgflowClient } from '../src/lib/PgflowClient'; -import { FlowRunStatus } from '../src/lib/types'; +import { PgflowClient } from '../../src/lib/PgflowClient'; +import { FlowRunStatus } from '../../src/lib/types'; import { setupTestEnvironment, createMockClient, @@ -8,14 +8,14 @@ import { createRunResponse, advanceTimersAndFlush, createSyncSchedule, -} from './helpers/test-utils'; -import { mockChannelSubscription } from './mocks'; +} from '../helpers/test-utils'; +import { mockChannelSubscription } from '../mocks'; import { RUN_ID, FLOW_SLUG, startedRunSnapshot, stepStatesSample, -} from './fixtures'; +} from '../fixtures'; // Mock uuid.v4 to return predictable run ID for testing vi.mock('uuid', () => ({ diff --git a/pkgs/client/__tests__/event-matchers.test.ts b/pkgs/client/__tests__/unit/event-matchers.test.ts similarity index 98% rename from pkgs/client/__tests__/event-matchers.test.ts rename to pkgs/client/__tests__/unit/event-matchers.test.ts index 4d6700da0..6d9abd3e3 100644 --- a/pkgs/client/__tests__/event-matchers.test.ts +++ b/pkgs/client/__tests__/unit/event-matchers.test.ts @@ -1,6 +1,6 @@ import { describe, test, expect } from 'vitest'; -import { createEventTracker } from './helpers/test-utils'; -import type { BroadcastRunEvent, BroadcastStepEvent } from '../src/lib/types'; +import { createEventTracker } from '../helpers/test-utils'; +import type { BroadcastRunEvent, BroadcastStepEvent } from '../../src/lib/types'; /** * Tests demonstrating the new event matcher patterns diff --git a/pkgs/client/__tests__/json-parsing.test.ts b/pkgs/client/__tests__/unit/json-parsing.test.ts similarity index 97% rename from pkgs/client/__tests__/json-parsing.test.ts rename to pkgs/client/__tests__/unit/json-parsing.test.ts index bd895b543..09833d8c8 100644 --- a/pkgs/client/__tests__/json-parsing.test.ts +++ b/pkgs/client/__tests__/unit/json-parsing.test.ts @@ -1,13 +1,13 @@ import { describe, it, expect, vi } from 'vitest'; -import { SupabaseBroadcastAdapter } from '../src/lib/SupabaseBroadcastAdapter'; -import type { BroadcastStepEvent, BroadcastRunEvent } from '../src/lib/types'; +import { SupabaseBroadcastAdapter } from '../../src/lib/SupabaseBroadcastAdapter'; +import type { BroadcastStepEvent, BroadcastRunEvent } from '../../src/lib/types'; import { setupTestEnvironment, createMockClient, emitBroadcastEvent, createSyncSchedule, -} from './helpers/test-utils'; -import { mockChannelSubscription } from './mocks'; +} from '../helpers/test-utils'; +import { mockChannelSubscription } from '../mocks'; describe('JSON Parsing in Broadcasts', () => { setupTestEnvironment(); diff --git a/pkgs/client/__tests__/reconnection.test.ts b/pkgs/client/__tests__/unit/reconnection.test.ts similarity index 95% rename from pkgs/client/__tests__/reconnection.test.ts rename to pkgs/client/__tests__/unit/reconnection.test.ts index ea1139ebc..badbdc2c6 100644 --- a/pkgs/client/__tests__/reconnection.test.ts +++ b/pkgs/client/__tests__/unit/reconnection.test.ts @@ -1,16 +1,16 @@ import { describe, it, expect, vi } from 'vitest'; -import { SupabaseBroadcastAdapter } from '../src/lib/SupabaseBroadcastAdapter'; +import { SupabaseBroadcastAdapter } from '../../src/lib/SupabaseBroadcastAdapter'; import { setupTestEnvironment, createMockClient, mockRpcCall, createRunResponse, createSyncSchedule, -} from './helpers/test-utils'; +} from '../helpers/test-utils'; import { createMockSchedule, -} from './mocks'; -import { RUN_ID, startedRunSnapshot, stepStatesSample } from './fixtures'; +} from '../mocks'; +import { RUN_ID, startedRunSnapshot, stepStatesSample } from '../fixtures'; describe('Reconnection Logic', () => { setupTestEnvironment(); diff --git a/pkgs/client/__tests__/type-guards.test.ts b/pkgs/client/__tests__/unit/type-guards.test.ts similarity index 99% rename from pkgs/client/__tests__/type-guards.test.ts rename to pkgs/client/__tests__/unit/type-guards.test.ts index 06e5fcd61..d6a1a98f7 100644 --- a/pkgs/client/__tests__/type-guards.test.ts +++ b/pkgs/client/__tests__/unit/type-guards.test.ts @@ -9,7 +9,7 @@ import { FlowStepStatus, type BroadcastRunStartedEvent, type BroadcastStepStartedEvent, -} from '../src/lib/types'; +} from '../../src/lib/types'; import { createRunStartedEvent, createRunCompletedEvent, @@ -17,11 +17,11 @@ import { createStepStartedEvent, createStepCompletedEvent, createStepFailedEvent, -} from './helpers/event-factories'; +} from '../helpers/event-factories'; import { RUN_ID, STEP_SLUG, -} from './fixtures'; +} from '../fixtures'; // Create test events const broadcastRunStarted = createRunStartedEvent({ run_id: RUN_ID }); diff --git a/pkgs/client/project.json b/pkgs/client/project.json index 445bf4a10..1fe610f5e 100644 --- a/pkgs/client/project.json +++ b/pkgs/client/project.json @@ -149,7 +149,7 @@ "commands": [ "../../scripts/supabase-start-locked.sh .", "psql 'postgresql://postgres:postgres@localhost:50522/postgres' -c 'SELECT pgflow_tests.reset_db()'", - "vitest run __tests__/integration/ --poolOptions.threads.singleThread" + "vitest run __tests__/e2e/ --config vitest.e2e.config.ts --poolOptions.threads.singleThread" ], "parallel": false } @@ -160,7 +160,7 @@ "inputs": ["default", "^production"], "options": { "cwd": "{projectRoot}", - "commands": ["vitest run __tests__/ --exclude __tests__/integration/"], + "commands": ["vitest run __tests__/unit/"], "parallel": false } }, @@ -174,7 +174,7 @@ "commands": [ "../../scripts/supabase-start-locked.sh .", "psql 'postgresql://postgres:postgres@localhost:50522/postgres' -c 'SELECT pgflow_tests.reset_db()'", - "vitest run __tests__/ --poolOptions.threads.singleThread" + "vitest run __tests__/ --config vitest.e2e.config.ts --poolOptions.threads.singleThread" ], "parallel": false } diff --git a/pkgs/client/vite.config.ts b/pkgs/client/vite.config.ts index 5cb83e03b..1d9bcda8b 100644 --- a/pkgs/client/vite.config.ts +++ b/pkgs/client/vite.config.ts @@ -55,7 +55,6 @@ export default defineConfig({ '__tests__/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}' ], setupFiles: ['__tests__/setup.ts'], - globalSetup: './vitest.global-setup.ts', reporters: ['default'], coverage: { reportsDirectory: '../../coverage/pkgs/client', diff --git a/pkgs/client/vitest.e2e.config.ts b/pkgs/client/vitest.e2e.config.ts new file mode 100644 index 000000000..42442b166 --- /dev/null +++ b/pkgs/client/vitest.e2e.config.ts @@ -0,0 +1,12 @@ +/// +import { defineConfig, mergeConfig } from 'vitest/config'; +import baseConfig from './vite.config'; + +export default mergeConfig( + baseConfig, + defineConfig({ + test: { + globalSetup: './vitest.e2e.global-setup.ts', + }, + }) +); diff --git a/pkgs/client/vitest.global-setup.ts b/pkgs/client/vitest.e2e.global-setup.ts similarity index 100% rename from pkgs/client/vitest.global-setup.ts rename to pkgs/client/vitest.e2e.global-setup.ts