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.6 : 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" — 11 symboles.
Fonctions (2)#
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.
runBackplaneConformance#
function runBackplaneConformance(name: string, makePeer: BackplanePeerFactory, options: IBackplaneConformanceOptions): void
Déclare la suite de conformité d’un driver de backplane auprès du lanceur de tests de l’appelant.
Constantes (1)#
BACKPLANE_CONFORMANCE_CASES#
const BACKPLANE_CONFORMANCE_CASES: { readonly fanout: "diffusion : chaque pair reçoit TOUT, l'émetteur ne reçoit pas son écho"; readonly order: "ordre par émetteur : les publications d'un pair arrivent dans l'ordre"; readonly noReplay: "pas de rejeu : un pair démarré après une publication ne la reçoit pas"; readonly seal: "sceau : un message non scellé ou mal scellé est refusé"; readonly control: …
Noms des cas — stables : un test négatif les désigne.
Interfaces (6)#
IBackplaneConformanceOptions#
interface IBackplaneConformanceOptions extends IConformanceRunner
Réglages de runBackplaneConformance.
sealed?: boolean— Le driver scelle-t-il ses messages (sealBackplaneEnvelope) ?quietMs?: number— Silence attendu, en millisecondes, avant de conclure qu’un message n’arrivera PAS (refus, rejeu, écho).timeoutMs?: number— Délai maximal d’arrivée d’un message attendu, en millisecondes.
IConformanceRunner#
interface IConformanceRunner
Lanceur de tests de l’appelant — le sous-ensemble que la suite emploie.
describe(name: string, body: () => void): unknown— Ouvre un groupe de cas.it(name: string, body: () => Promise<void>): unknown— Déclare un cas asynchrone ; un rejet le fait échouer.
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).readonly admissions?: readonly IChannelAdmission[]— Les classes d’admission du controller (@RealtimeChannel(nom, { allow: MaClasse })), déjà construites avec leurs services.
Types (2)#
BackplanePeerFactory#
type BackplanePeerFactory = (secret: string | null) => IBackplane | Promise<IBackplane>
Fabrique d’un pair du driver, relié au MÊME bus que les autres pairs de la suite.
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.