@@ -6,6 +6,7 @@ import assert from 'node:assert/strict';
66import { execFileSync } from 'node:child_process' ;
77import fs from 'node:fs' ;
88import os from 'node:os' ;
9+ import { createRequire } from 'node:module' ;
910import path from 'node:path' ;
1011import { test } from 'node:test' ;
1112import { listSourceFiles } from './check.ts' ;
@@ -866,8 +867,9 @@ test('the real tree parses, declares, and passes R11', () => {
866867 'root must declare the ad-script workspace dependency' ,
867868 ) ;
868869 assert . ok (
869- rootWorkspaceDependencyNames ( repoRoot ) . has ( '@agent-device/ad-replay' ) ,
870- 'root must declare the ad-replay workspace dependency' ,
870+ ! rootWorkspaceDependencyNames ( repoRoot ) . has ( '@agent-device/ad-replay' ) &&
871+ ! rootWorkspaceDependencyNames ( repoRoot ) . has ( '@agent-device/replay-test' ) ,
872+ 'core must not depend on the optional native execution engines' ,
871873 ) ;
872874 assert . ok (
873875 rootWorkspaceDependencyNames ( repoRoot ) . has ( '@agent-device/selectors' ) ,
@@ -889,6 +891,7 @@ test('the real tree parses, declares, and passes R11', () => {
889891} ) ;
890892
891893test ( 'Node resolution enforces the exports map at runtime' , ( ) => {
894+ const replayPackageRequire = createRequire ( path . join ( repoRoot , 'packages/replay/package.json' ) ) ;
892895 // Real resolver, not the gate's model: a deep import is a resolution error,
893896 // and the legal subpath realpaths OUTSIDE node_modules (pnpm symlink), which
894897 // is what lets --experimental-strip-types load package sources in dev.
@@ -915,11 +918,15 @@ test('Node resolution enforces the exports map at runtime', () => {
915918 '@agent-device/ad-replay/testing' ,
916919 '@agent-device/ad-replay/internal/target-verification.ts' ,
917920 '@agent-device/ad-replay/src/index.ts' ,
921+ '@agent-device/replay-test/src/internal/session-test.ts' ,
918922 '@agent-device/selectors/internal/parse.ts' ,
919923 '@agent-device/selectors/src/index.ts' ,
920924 ] ) {
921925 assert . throws (
922- ( ) => import . meta. resolve ( deep ) ,
926+ ( ) =>
927+ deep . startsWith ( '@agent-device/ad-replay/' ) || deep . startsWith ( '@agent-device/replay-test/' )
928+ ? replayPackageRequire . resolve ( deep )
929+ : import . meta. resolve ( deep ) ,
923930 / E R R _ P A C K A G E _ P A T H _ N O T _ E X P O R T E D | P a c k a g e s u b p a t h | N o " e x p o r t s " m a i n / ,
924931 `${ deep } must not resolve` ,
925932 ) ;
@@ -952,7 +959,9 @@ test('Node resolution enforces the exports map at runtime', () => {
952959 assert . ok ( xmlResolved . endsWith ( 'packages/xml/src/index.ts' ) , xmlResolved ) ;
953960 const adScriptResolved = import . meta. resolve ( '@agent-device/ad-script' ) ;
954961 assert . ok ( adScriptResolved . endsWith ( 'packages/ad-script/src/index.ts' ) , adScriptResolved ) ;
955- const adReplayResolved = import . meta. resolve ( '@agent-device/ad-replay' ) ;
962+ const adReplayResolved = replayPackageRequire . resolve ( '@agent-device/ad-replay' ) ;
963+ const replayTestResolved = replayPackageRequire . resolve ( '@agent-device/replay-test' ) ;
964+ assert . ok ( replayTestResolved . endsWith ( 'packages/replay-test/src/index.ts' ) , replayTestResolved ) ;
956965 assert . ok ( adReplayResolved . endsWith ( 'packages/ad-replay/src/index.ts' ) , adReplayResolved ) ;
957966 const selectorsResolved = import . meta. resolve ( '@agent-device/selectors' ) ;
958967 assert . ok ( selectorsResolved . endsWith ( 'packages/selectors/src/index.ts' ) , selectorsResolved ) ;
0 commit comments