Skip to content

feat: run typed real resources in test kernels - #1565

Merged
kang-heewon merged 7 commits into
trunkfrom
feat/1484-typed-testing-resources
Jul 27, 2026
Merged

feat: run typed real resources in test kernels#1565
kang-heewon merged 7 commits into
trunkfrom
feat/1484-typed-testing-resources

Conversation

@kang-heewon

@kang-heewon kang-heewon commented Jul 26, 2026

Copy link
Copy Markdown
Member

Outcome

@croco/testing TestKernel can now start typed resources before production application bootstrap, inject their connections into kernel-scoped Croco DI, report structured fidelity and lifecycle evidence, reject rollback resources for commit-semantic obligations, and dispose resources exactly once after application shutdown.

A new optional @croco/testing-resources package owns digest-pinned PostgreSQL and Redis Testcontainers without adding Docker dependencies to @croco/testing. PostgreSQL supports rollback, commit, and migration modes with database-per-worker isolation; Redis uses prefix-per-test isolation. Startup, migration, health, provider registration, and cleanup failures retain bounded container logs and recovery metadata.

CI now runs a credential-free real-resource suite covering Drizzle rollback isolation, migration from empty, transactional outbox commit semantics, concurrent PostgreSQL/Redis isolation, and cleanup after provider registration failure.

Fixes #1484

Dependency

The production-parity TestKernel dependency from #1559 is merged. This branch is rebased directly onto the current trunk commit b07ae3a.

Verification

  • Pre-push workspace tests — 232/232 tasks passed
  • Pre-push workspace typecheck — 231/231 tasks passed
  • pnpm --filter @croco/testing-resources test:real — 5/5 passed after the rebase; the suite had also passed three consecutive runs during readiness hardening
  • @croco/testing focused suite — 109/109 passed, including 20 TestKernel cases
  • @croco/testing-resources unit suite — 9/9 passed
  • pnpm docs:api:check — 115/115 tasks; generated API docs matched
  • pnpm problem-registry:check — 510 codes matched 510 discoveries
  • pnpm public-api:check — 114 package snapshots matched
  • Dependency audit and first-success verification passed; package catalog, workflow command contract, formatting, diff integrity, and generated artifacts were synchronized after rebasing onto trunk

Review gates

  • Correctness and regression: PASS — startup/shutdown ordering, exactly-once disposal, rollback obligation rejection, real commit/outbox behavior, empty migrations, concurrent isolation, partial-start cleanup, and readiness retry behavior are covered.
  • API, security, compatibility, and release: PASS — Docker remains optional, provider creation is opaque and typed, default images are digest-pinned, override policy is explicit, Problems/logs are bounded, and public snapshots/docs/changesets are synchronized.
  • Maintainability and minimality: PASS — generic lifecycle contracts remain in @croco/testing; Docker clients and resource implementations stay in the optional package; CI commands are explicitly allowlisted.
  • Independent adversarial review: APPROVE after resolving provider-registration leaks, structured cleanup evidence loss, provider type erasure, direct cleanup verification, and Redis readiness flakiness.

Residual risk

Real-resource tests require a healthy Docker-compatible daemon and first-run image pulls. Custom image overrides and provider factories remain caller-controlled; unpinned images require an explicit local-only opt-out, and provider failures are surfaced as startup Problems after partial resources are closed.

Summary by CodeRabbit

  • 신규 기능
    • 테스트 커널에 테스트 리소스(선택적 PostgreSQL/Redis) 지원을 추가하고, evidence/obligations 및 구조화된 리소스 진단 문제를 제공합니다.
    • 리소스 모드(rollback/commit/migration), 격리, 헬스체크·마이그레이션·cleanup 단계별 동작과 문제 코드/증거를 정리했습니다.
  • 문서
    • testing-resources 및 테스트 리소스 관련 API/문제 문서를 확장했으며, 패키지 카탈로그 지표가 업데이트되었습니다.
  • 테스트/CI
    • CI validate 단계에서 실제 PostgreSQL·Redis 기반 test:real 검증을 추가했습니다.

@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

테스트 커널에 typed PostgreSQL/Redis 리소스의 시작, provider 등록, evidence 수집, 격리, 의무 검증 및 정리 기능이 추가되었습니다. 새 @croco/testing-resources 패키지, 실환경 테스트, 공개 API 문서와 CI 검증도 포함됩니다.

Changes

Typed test resources

Layer / File(s) Summary
TestKernel 리소스 계약과 수명주기
packages/testing/src/libs/TestKernel.ts, packages/testing/src/index.ts, packages/testing/src/tests/TestKernel.spec.ts
리소스 타입, evidence, obligations, typed connection 조회, bootstrap 전 시작, fidelity 검증 및 cleanup 통합이 추가되었습니다.
리소스 진단과 공통 기반
packages/testing-resources/src/libs/shared.ts, packages/testing-resources/src/libs/problems.ts, packages/testing-resources/src/libs/providers.ts
digest-pinned 이미지 검증, bounded logs, lifecycle 문제, cleanup failure evidence 및 typed provider 생성 기능이 추가되었습니다.
PostgreSQL/Redis 구현
packages/testing-resources/src/libs/PostgresResource.ts, packages/testing-resources/src/libs/RedisResource.ts, packages/testing-resources/src/index.ts
컨테이너 시작, health check, migration, rollback, key/database isolation, provider 등록 및 typed connection 반환이 구현되었습니다.
구성 및 실환경 검증
packages/testing-resources/src/tests/*, packages/testing-resources/README.md
이미지 정책, 진단, migration, rollback/commit 의미, outbox, worker/test 격리, provider 실패 cleanup을 검증하고 사용법과 복구 절차를 문서화했습니다.
공개 API와 문서
packages/testing/src/..., packages/docs/src/content/docs/api/*, public-api-surface.snapshot.json
새 타입, 문제 클래스, 리소스 팩토리, provider, 상수의 export와 Typedoc/API 문서가 추가되었습니다.
CI 및 카탈로그 통합
.github/workflows/ci.yml, scripts/*, README.md, docs/*, croco.arch.json, pnpm-workspace.yaml
real-resource 검증 명령, workflow allowlist, package catalog, problem registry, 문서 집계 및 workspace 설정이 갱신되었습니다.

Estimated code review effort: 4 (Complex) | ~60 minutes

Sequence Diagram(s)

sequenceDiagram
  participant TestKernel
  participant PostgreSQLRedisResources
  participant CrocoProviders
  participant Application
  participant Cleanup
  TestKernel->>PostgreSQLRedisResources: start containers and collect evidence
  PostgreSQLRedisResources->>CrocoProviders: register typed connections
  TestKernel->>Application: bootstrap after resource startup
  Application->>Cleanup: shutdown
  Cleanup->>PostgreSQLRedisResources: dispose clients and containers
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning pnpm-workspace.yaml의 archiver/readdir-glob 및 allowBuilds 조정은 typed test resources 목표와 직접 관련이 없습니다. 이 워크스페이스 의존성·빌드 정책 변경을 별도 PR로 분리하거나, 리소스 지원에 필수임을 명시해 범위를 정리하세요.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Linked Issues check ✅ Passed PostgreSQL/Redis 리소스, typed DI 연결, 롤백·커밋·마이그레이션 모드, 격리, 진단, CI 및 문서 요구가 반영되었습니다.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 제목이 TestKernel에 typed real resources를 실행하도록 추가한 핵심 변경을 정확하고 간결하게 요약합니다.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/1484-typed-testing-resources

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kang-heewon
kang-heewon force-pushed the fix/1482-production-parity-test-kernel branch from 03ef264 to 2641fee Compare July 27, 2026 07:39
Base automatically changed from fix/1482-production-parity-test-kernel to trunk July 27, 2026 08:45
@kang-heewon
kang-heewon force-pushed the feat/1484-typed-testing-resources branch from 0620e99 to 0c4cedf Compare July 27, 2026 08:53
@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown

📊 Benchmark Results

✅ All benchmarks passed

Benchmark p75 Threshold Baseline vs Baseline Status Notes
CrocoApp constructor 9.6μs 30.0ms 8.2μs +17.4% -
CrocoApp lambdaHandler (10 controllers) 281.1μs 50.0ms 258.4μs +8.7% -
Lambda cold-start simulation 433.0μs 80.0ms 418.1μs +3.6% -
Lambda cold-start with headers 381.3μs 80.0ms 369.7μs +3.1% -
Lambda cold-start with binary body 353.2μs 80.0ms 339.1μs +4.1% -
Lambda cold-start with query params 295.5μs 80.0ms 301.3μs -1.9% -
Lambda cold-start with authorizer context 293.3μs 80.0ms 299.8μs -2.2% -
Lambda cold-start realistic scenario 286.6μs 80.0ms 299.2μs -4.2% -
EventBusConfig.start (10 handlers) 1.8μs 10.0ms 1.4μs +24.4% -
EventPublisher.publishNow single event 2.0μs 2.0ms 1.7μs +21.4% -
DefaultHandlerResolver.resolve × 10 0.1μs 5.0ms 0.1μs +0.0% -
Container.get singleton (cold) 64.3μs 5.0ms 70.3μs -8.4% -
Container.register × 50 components 2.8ms 10.0ms 3.2ms -12.0% -
Container.validate (50 components) 3.7ms 20.0ms 3.4ms +8.7% -
Container.get singleton (warm) 1.7μs 500.0μs 1.6μs +1.2% -
TelemetryRuntime.init (lambda preset) 2.4μs 200.0ms 1.1ms -99.8% -
lambdaPreset config creation 1.4μs 2.0ms 1.4μs +0.7% -

Updated: 2026-07-27T13:41:29.519Z · Commit: 1c0b2db

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
packages/testing/src/libs/TestKernel.ts (1)

475-480: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick win

cleanupOperations 구성 로직이 성공 경로와 catch 경로에 중복됨.

두 블록이 bootstrapCleanup/registeredCleanups/dispose/resourceCleanups를 거의 동일한 순서로 조합하며, 이번 PR에서도 resourceCleanups 추가를 두 곳 모두에 반영해야 했다. 향후 한쪽만 수정하면 리소스(예: 실제 Postgres 컨테이너) dispose가 정리 시퀀스에서 누락되어 리소스 누수로 이어질 위험이 있다.

공통 헬퍼로 추출하는 것을 권장한다.

♻️ 제안하는 리팩터링
+  function buildCleanupOperations(
+    disposeApp: CrocoApp | undefined,
+  ): TestKernelCleanupOperation[] {
+    return [
+      ...(bootstrapCleanup ? [bootstrapCleanup] : []),
+      ...[...registeredCleanups].reverse(),
+      ...(disposeApp && options.dispose ? [() => options.dispose?.(disposeApp)] : []),
+      ...[...resourceCleanups].reverse(),
+    ];
+  }
   ...
-      const cleanupOperations = [
-        ...(bootstrapCleanup ? [bootstrapCleanup] : []),
-        ...[...registeredCleanups].reverse(),
-        ...(options.dispose ? [() => options.dispose?.(app as CrocoApp)] : []),
-        ...[...resourceCleanups].reverse(),
-      ];
+      const cleanupOperations = buildCleanupOperations(app);
   ...
-    const cleanupOperations = [
-      ...(bootstrapCleanup ? [bootstrapCleanup] : []),
-      ...[...registeredCleanups].reverse(),
-      ...(app && options.dispose ? [() => options.dispose?.(app as CrocoApp)] : []),
-      ...[...resourceCleanups].reverse(),
-    ];
+    const cleanupOperations = buildCleanupOperations(app);

Also applies to: 496-501

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/testing/src/libs/TestKernel.ts` around lines 475 - 480, Extract the
duplicated cleanupOperations assembly in the success and catch paths of
TestKernel into a shared helper, preserving the order of bootstrapCleanup,
reversed registeredCleanups, optional dispose, and reversed resourceCleanups.
Use the helper in both paths so future cleanup additions remain synchronized.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/testing-resources/src/libs/PostgresResource.ts`:
- Around line 173-207: Update the dispose cleanup flow to preserve every
rollback, pool shutdown, and container-stop failure with bounded logs and
recovery metadata. Add individual diagnostics for activeClient rollback and
activePool.end failures, while recognizing that stopContainer already records
its own cleanup diagnostic so it is not duplicated. When failures are reported,
retain the original failure information and avoid re-wrapping an existing
TestResourceLifecycleProblem; ensure multiple failures are not reduced to
failures[0].

In `@packages/testing-resources/src/libs/RedisResource.ts`:
- Line 169: Update the Redis resource helper around lastError so it returns a
typed failure result instead of throwing the unknown ioredis error directly. In
start, consume that result, add the relevant diagnostic context, and throw only
TestResourceLifecycleProblem; preserve successful startup behavior and ensure no
native Error or other generic value escapes the helper.

In `@packages/testing-resources/src/libs/shared.ts`:
- Around line 35-46: Update appendContainerLogs so the target buffer retains at
most the last 200 non-empty container log lines as each chunk is processed.
After appending lines, remove older entries from target while preserving the
newest 200 for passedDiagnostic and failedDiagnostic consumers.

In `@packages/testing-resources/src/tests/RealResources.spec.ts`:
- Around line 128-137: 정리: RealResources 테스트에서 Drizzle 타입 캐스팅을 제거하세요.
`DrizzleTransactionalEventStore` 구성 주변에서 `db as unknown as
DrizzleTransactionalEventStoreDb`와 `createDrizzleTxAdapter(db as never) as
unknown as ...` 우회를 삭제하고, 실제 `drizzle(connection.pool)` 반환값인 `db`를 직접 사용해 타입이
추론되도록 수정하세요.

In `@packages/testing-resources/src/tests/ResourceConfiguration.spec.ts`:
- Around line 1-15: Update the “testing resource configuration” describe block
in ResourceConfiguration.spec.ts to add a Vitest beforeEach hook that resets the
DI Container before every test. Import the required beforeEach hook and use the
existing Token-based container reset mechanism, ensuring each test starts with
isolated provider state.

In `@packages/testing/src/libs/TestKernel.ts`:
- Around line 406-442: Expose an optional static fidelity mode hint on the
TestResource contract and populate it for resources such as postgresResource and
redisResource. Extend the obligation validation loop before resource.start() to
reject rollback obligations when the hint already indicates rollback, preserving
the existing post-start fidelity check as a fallback. Use the existing
TestKernelResourceFidelityProblem for failures.

---

Outside diff comments:
In `@packages/testing/src/libs/TestKernel.ts`:
- Around line 475-480: Extract the duplicated cleanupOperations assembly in the
success and catch paths of TestKernel into a shared helper, preserving the order
of bootstrapCleanup, reversed registeredCleanups, optional dispose, and reversed
resourceCleanups. Use the helper in both paths so future cleanup additions
remain synchronized.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 011ce58a-9a64-4da3-b0c4-0a6723416039

📥 Commits

Reviewing files that changed from the base of the PR and between efb33f9 and 0c4cedf.

⛔ Files ignored due to path filters (2)
  • packages/problems-core/src/generated/problem-code-registry.ts is excluded by !**/generated/**
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (59)
  • .changeset/typed-test-resources.md
  • .github/workflows/ci.yml
  • README.md
  • croco.arch.json
  • docs/package-catalog.json
  • docs/package-docs-report.md
  • docs/problem-code-registry.json
  • packages/docs/astro.config.mjs
  • packages/docs/package.json
  • packages/docs/src/content/docs/api/problems-core/src/classes/Problem.md
  • packages/docs/src/content/docs/api/problems-core/src/variables/CROCO_PROBLEM_CODE_REGISTRY.md
  • packages/docs/src/content/docs/api/testing-resources/src/classes/TestResourceConfigurationProblem.md
  • packages/docs/src/content/docs/api/testing-resources/src/classes/TestResourceLifecycleProblem.md
  • packages/docs/src/content/docs/api/testing-resources/src/functions/postgresResource.md
  • packages/docs/src/content/docs/api/testing-resources/src/functions/redisResource.md
  • packages/docs/src/content/docs/api/testing-resources/src/functions/testResourceProvider.md
  • packages/docs/src/content/docs/api/testing-resources/src/type-aliases/PostgresResourceOptions.md
  • packages/docs/src/content/docs/api/testing-resources/src/type-aliases/PostgresTestConnection.md
  • packages/docs/src/content/docs/api/testing-resources/src/type-aliases/RedisResourceOptions.md
  • packages/docs/src/content/docs/api/testing-resources/src/type-aliases/RedisTestConnection.md
  • packages/docs/src/content/docs/api/testing-resources/src/type-aliases/ResourceImageOptions.md
  • packages/docs/src/content/docs/api/testing-resources/src/type-aliases/TestResourceProvider.md
  • packages/docs/src/content/docs/api/testing-resources/src/variables/DEFAULT_POSTGRES_IMAGE.md
  • packages/docs/src/content/docs/api/testing-resources/src/variables/DEFAULT_REDIS_IMAGE.md
  • packages/docs/src/content/docs/api/testing/src/classes/TestKernel.md
  • packages/docs/src/content/docs/api/testing/src/classes/TestKernelResourceFidelityProblem.md
  • packages/docs/src/content/docs/api/testing/src/classes/TestKernelResourceNotFoundProblem.md
  • packages/docs/src/content/docs/api/testing/src/classes/TestKernelResourceRegistrationProblem.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/StartedTestResource.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestKernelResourceEvidence.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestKernelResourceObligation.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestResource.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestResourceDiagnostic.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestResourceDiagnosticStage.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestResourceFidelity.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestResourceIsolation.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestResourceMode.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestResourceStartContext.md
  • packages/docs/src/content/docs/en/reference/problem-recovery-cookbook.md
  • packages/docs/tsconfig.typedoc.json
  • packages/testing-resources/README.md
  • packages/testing-resources/package.json
  • packages/testing-resources/src/index.ts
  • packages/testing-resources/src/libs/PostgresResource.ts
  • packages/testing-resources/src/libs/RedisResource.ts
  • packages/testing-resources/src/libs/problems.ts
  • packages/testing-resources/src/libs/providers.ts
  • packages/testing-resources/src/libs/shared.ts
  • packages/testing-resources/src/tests/RealResources.spec.ts
  • packages/testing-resources/src/tests/ResourceConfiguration.spec.ts
  • packages/testing-resources/tsconfig.json
  • packages/testing-resources/vitest.config.ts
  • packages/testing/src/index.ts
  • packages/testing/src/libs/TestKernel.ts
  • packages/testing/src/tests/TestKernel.spec.ts
  • pnpm-workspace.yaml
  • public-api-surface.snapshot.json
  • scripts/tests/ci-workflow.spec.ts
  • scripts/workflow-verification-contract.mts

Comment thread packages/testing-resources/src/libs/PostgresResource.ts Outdated
Comment thread packages/testing-resources/src/libs/RedisResource.ts Outdated
Comment thread packages/testing-resources/src/libs/shared.ts
Comment thread packages/testing-resources/src/tests/RealResources.spec.ts
Comment thread packages/testing-resources/src/tests/ResourceConfiguration.spec.ts Outdated
Comment thread packages/testing/src/libs/TestKernel.ts
@kang-heewon

Copy link
Copy Markdown
Member Author

Addressed the outside-diff cleanup assembly finding in 4a3ae7a: success and failure paths now share buildCleanupOperations, preserving bootstrap cleanup, reverse registered cleanup, optional app disposal, and reverse resource cleanup order. Focused @croco/testing tests (109), typecheck, and lint pass; pre-push also passed all 232 test tasks and 231 typecheck tasks.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@packages/testing-resources/src/tests/ResourceConfiguration.spec.ts`:
- Around line 1-3: Reorder the imports in ResourceConfiguration.spec.ts so the
external imports, including vitest and node:stream, appear before the internal
`@croco/framework-context` import; keep the imported symbols unchanged.
- Around line 101-115: Update the “preserves every cleanup failure as structured
evidence” test to use the repository’s asynchronous error-testing convention:
wrap the synchronous throwCleanupFailures invocation in
Promise.resolve().then(...), make the test async, and assert with
expect(...).rejects.toThrow while preserving the existing structured error
expectations.

In `@pnpm-workspace.yaml`:
- Line 49: pnpm-workspace.yaml의 testcontainers>archiver 오버라이드를 제거하거나 CommonJS를
지원하는 ^7.0.1로 변경하세요. testcontainers@12.0.4와 Jest의 tar 복사 경로가 archiver 8.0.0을 로드하지
않도록 유지하고, CVE 패치 목적이라면 호환되는 testcontainers 버전도 함께 조정하세요.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 94c24637-d680-4562-8f33-ac5b16caabc2

📥 Commits

Reviewing files that changed from the base of the PR and between 0c4cedf and 4dd6b8d.

⛔ Files ignored due to path filters (2)
  • packages/problems-core/src/generated/problem-code-registry.ts is excluded by !**/generated/**
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (16)
  • docs/problem-code-registry.json
  • packages/docs/src/content/docs/api/problems-core/src/variables/CROCO_PROBLEM_CODE_REGISTRY.md
  • packages/docs/src/content/docs/api/testing-resources/src/classes/TestResourceLifecycleProblem.md
  • packages/docs/src/content/docs/api/testing/src/type-aliases/TestResource.md
  • packages/docs/src/content/docs/en/guides/getting-started.mdx
  • packages/docs/src/content/docs/en/index.mdx
  • packages/docs/src/content/docs/en/reference/problem-recovery-cookbook.md
  • packages/testing-resources/src/libs/PostgresResource.ts
  • packages/testing-resources/src/libs/RedisResource.ts
  • packages/testing-resources/src/libs/problems.ts
  • packages/testing-resources/src/libs/shared.ts
  • packages/testing-resources/src/tests/RealResources.spec.ts
  • packages/testing-resources/src/tests/ResourceConfiguration.spec.ts
  • packages/testing/src/libs/TestKernel.ts
  • packages/testing/src/tests/TestKernel.spec.ts
  • pnpm-workspace.yaml

Comment thread packages/testing-resources/src/tests/ResourceConfiguration.spec.ts
Comment thread packages/testing-resources/src/tests/ResourceConfiguration.spec.ts Outdated
Comment thread pnpm-workspace.yaml Outdated
@kang-heewon
kang-heewon force-pushed the feat/1484-typed-testing-resources branch from eeca7c0 to 98ccf29 Compare July 27, 2026 13:32
@kang-heewon
kang-heewon merged commit 8a1dad8 into trunk Jul 27, 2026
9 checks passed
@kang-heewon
kang-heewon deleted the feat/1484-typed-testing-resources branch July 27, 2026 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[testing] Add typed test resources with explicit database isolation modes

1 participant