Référence d'API — @nodefony/realtime/testing
stable
Documentation › Référence d’API › @nodefony/realtime › testing
Générée depuis les déclarations de types publiées de
@nodefony/realtime10.0.0-beta.5 : exactement ce que reçoit une application qui l’installe. Cette page n’existe dans aucun dépôt — pour la corriger, on corrige le TSDoc du code.
@nodefony/realtime/testing#
import { … } from "@nodefony/realtime/testing" — 6 symboles.
Fonctions (1)#
createRealtimeHarness#
function createRealtimeHarness<C extends RealtimeController>(create: (context: ContextType) => C, options?: IRealtimeHarnessOptions): IRealtimeHarness<C>
Monte un controller temps réel sur une fausse connexion et rend de quoi le piloter.
Interfaces (4)#
IHarnessClose#
interface IHarnessClose
Fermeture demandée par le serveur (code RFC 6455 + raison).
readonly code?: numberreadonly reason?: string
IRealtimeFrame#
interface IRealtimeFrame
Frame JSON-RPC 2.0 telle qu’elle circule sur la socket, dans les deux sens.
readonly jsonrpc?: stringreadonly id?: number | stringreadonly method?: stringreadonly params?: unknownreadonly result?: unknownreadonly error?: { code: number; message: string; data?: unknown; }
IRealtimeHarness#
interface IRealtimeHarness<C extends RealtimeController>
Vue de test d’un controller temps réel connecté : ce qu’il a reçu, ce qu’il a émis, et de quoi le piloter frame par frame.
readonly controller: C— L’instance éprouvée, du type rendu par la fabrique.readonly hub: RealtimeHub— Le hub du process — pour poser une politique de canal ou lire une sonde.readonly received: readonly IRealtimeFrame[]— Toutes les frames sorties, dans l’ordre d’émission.readonly closes: readonly IHarnessClose[]— Les fermetures demandées par le serveur (un refus d’Origin y laisse 4003).readonly notices: readonly string[]— Les avertissements de plateforme émis DEPUIS le handshake — dont celui qui dit qu’un canal servi dynamiquement ne porte aucune politique.connect(): Promise<IRealtimeFrame>— Ouvre la socket (messagenull→realtime:welcome).subscribe(channel: string): Promise<void>— Demande un canal, comme le ferait un client, et attend la réponse du serveur (acquittementrealtime:subscribedou refusrealtime:denied).unsubscribe(channel: string): Promise<void>— Rend un canal — le provider est disposé au dernier abonné.call<T = unknown>(method: string, params?: unknown): Promise<T>— Appelle une action (requête → réponse), appariée par identifiant.notify(method: string, params?: unknown): Promise<void>— Envoie une notification cliente (plein-duplex entrant).send(frame: Record<string, unknown>): Promise<void>— Injecte une frame brute — pour éprouver un protocole malformé.messages(channel: string): readonly unknown[]— Les charges utiles reçues sur un canal, dans l’ordre.denials(): readonly IHarnessDenied[]— Les refus d’abonnement notifiés (realtime:denied).subscriptions(): readonly string[]— Les canaux dont l’abonnement a été acquitté (realtime:subscribed), dans l’ordre.close(): void— Ferme la socket côté client : la base dispose alors tous ses providers.dispose(): void—close()puis remise à zéro du hub.
IRealtimeHarnessOptions#
interface IRealtimeHarnessOptions
Écart au décor par défaut du harnais.
readonly url?: string— URL de la connexion, telle que la verraient les matchers d’authenticator (seam #3).readonly origin?: string—Origindu handshake — ce que juge la politique CSRF (seam #4).readonly headers?: Record<string, string>— En-têtes de la requête d’upgrade.readonly cookies?: Record<string, { value: string; }>— Cookies de la requête d’upgrade, à la forme du contexte HTTP.readonly identity?: IRealtimeToken— Identité posée au handshake (seam #2).readonly frameAuthorizer?: FrameAuthorizer— Verrou de frame (seam #1).readonly resetHub?: boolean— Remet le hub à zéro à la création (défauttrue).
Types (1)#
IHarnessDenied#
type IHarnessDenied = Readonly<IRealtimeDenied>
Refus d’abonnement notifié au client (realtime:denied) — le contrat de protocole lui-même, en lecture seule. Le recopier ici le ferait diverger : un motif ajouté au protocole doit apparaître dans le banc sans qu’on y pense.