feat(core-realtime): scaffold realtime optional core
Generator-emitted scaffold (pnpm turbo gen core-package realtime) plus the story-00-precedent coverage repairs (coverage provider devDep, symbols.ts exclude + tested allowlist mirror) and three minimal tests covering generator-emitted realtime code the template suite misses. Squash of 31d85e0 + review-fix cf11b38. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
// packages/core-eslint/rules/no-realtime-handler-reexport.test.js
|
||||
import { RuleTester } from "eslint";
|
||||
import rule from "./no-realtime-handler-reexport.js";
|
||||
|
||||
const tester = new RuleTester({
|
||||
languageOptions: { ecmaVersion: 2022, sourceType: "module" },
|
||||
});
|
||||
|
||||
tester.run("no-realtime-handler-reexport", rule, {
|
||||
valid: [
|
||||
// Importing a handler from inside a feature's bind-* file is allowed.
|
||||
{
|
||||
code: 'import { onPingHandler } from "../realtime/handlers/on-ping.handler";',
|
||||
filename: "/repo/packages/blog/src/di/bind-production.ts",
|
||||
},
|
||||
// Re-exporting a channel descriptor is allowed.
|
||||
{
|
||||
code: 'export { presenceChannel } from "./realtime/presence.channel";',
|
||||
filename: "/repo/packages/blog/src/index.ts",
|
||||
},
|
||||
],
|
||||
invalid: [
|
||||
// Re-exporting a handler from any non-bind file is forbidden.
|
||||
{
|
||||
code: 'export { onPingHandler } from "./realtime/handlers/on-ping.handler";',
|
||||
filename: "/repo/packages/blog/src/index.ts",
|
||||
errors: [{ messageId: "noRealtimeHandlerReexport" }],
|
||||
},
|
||||
{
|
||||
code: 'export * from "./handlers/on-ping.handler";',
|
||||
filename: "/repo/packages/blog/src/realtime/index.ts",
|
||||
errors: [{ messageId: "noRealtimeHandlerReexport" }],
|
||||
},
|
||||
],
|
||||
});
|
||||
Reference in New Issue
Block a user