Skip to content

Commit 2b24a63

Browse files
committed
test(rsc-mf): cover side-effect import callback inference boundaries
1 parent f8adc5d commit 2b24a63

3 files changed

Lines changed: 41 additions & 0 deletions

File tree

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import './actions';
2+
3+
export const SIDE_EFFECT_ACTION_IMPORT_MARKER = 'side-effect-action-import';
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import './typeOnlyActionImport';
2+
3+
export const SIDE_EFFECT_TYPE_ONLY_BRIDGE_IMPORT_MARKER =
4+
'side-effect-type-only-bridge-import';

tests/integration/rsc-mf/tests/createRscExposeDefinitions.test.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,40 @@ describe('createRscExposeDefinitions', () => {
460460
});
461461
});
462462

463+
it('infers callback bootstrap from local side-effect imports of action modules', () => {
464+
const { createRscExposeDefinitions, CALLBACK_BOOTSTRAP_MODULE } =
465+
loadCreateRscExposeDefinitions();
466+
expect(
467+
createRscExposeDefinitions({
468+
'./customSideEffectActionImport':
469+
'./src/components/sideEffectActionImport.ts',
470+
}),
471+
).toEqual({
472+
'./customSideEffectActionImport': {
473+
import: [
474+
CALLBACK_BOOTSTRAP_MODULE,
475+
'./src/components/sideEffectActionImport.ts',
476+
],
477+
layer: 'react-server-components',
478+
},
479+
});
480+
});
481+
482+
it('does not infer callback bootstrap from side-effect imports without callback directives', () => {
483+
const { createRscExposeDefinitions } = loadCreateRscExposeDefinitions();
484+
expect(
485+
createRscExposeDefinitions({
486+
'./customSideEffectTypeOnlyBridgeImport':
487+
'./src/components/sideEffectTypeOnlyBridgeImport.ts',
488+
}),
489+
).toEqual({
490+
'./customSideEffectTypeOnlyBridgeImport': {
491+
import: ['./src/components/sideEffectTypeOnlyBridgeImport.ts'],
492+
layer: 'react-server-components',
493+
},
494+
});
495+
});
496+
463497
it('keeps non-callback source modules free of callback bootstrap import', () => {
464498
const { createRscExposeDefinitions } = loadCreateRscExposeDefinitions();
465499
expect(

0 commit comments

Comments
 (0)