describe("pairing connect details", () => {
it("builds reason-specific pairing messages", () => {
expect(buildPairingConnectErrorMessage(ConnectPairingRequiredReasons.SCOPE_UPGRADE)).toBe( "pairing required: device is asking for more scopes than currently approved",
);
expect(describePairingConnectRequirement(ConnectPairingRequiredReasons.NOT_PAIRED)).toBe( "device is not approved yet",
);
});
it("builds structured pairing details with remediation", () => {
expect(
buildPairingConnectErrorDetails({
reason: ConnectPairingRequiredReasons.NOT_PAIRED,
requestId: "req-123",
}),
).toEqual({
code: "PAIRING_REQUIRED",
reason: "not-paired",
requestId: "req-123",
remediationHint: "Approve this device from the pending pairing requests.",
});
});
it("reads pairing details and backfills missing remediation hints", () => {
expect(
readPairingConnectErrorDetails({
code: "PAIRING_REQUIRED",
reason: "scope-upgrade",
requestId: "req-456",
}),
).toEqual({
code: "PAIRING_REQUIRED",
reason: "scope-upgrade",
requestId: "req-456",
remediationHint: "Review the requested scopes, then approve the pending upgrade.",
});
});
it("includes request ids in close reasons when available", () => {
expect(
buildPairingConnectCloseReason({
reason: ConnectPairingRequiredReasons.ROLE_UPGRADE,
requestId: "req-789",
}),
).toBe( "pairing required: device is asking for a higher role than currently approved (requestId: req-789)",
);
});
it("drops request ids that do not match the allowlist", () => {
expect(normalizePairingConnectRequestId("req-123")).toBe("req-123");
expect(normalizePairingConnectRequestId("req-123;rm -rf /")).toBeUndefined();
expect(
readPairingConnectErrorDetails({
code: "PAIRING_REQUIRED",
reason: "scope-upgrade",
requestId: "req-123;rm -rf /",
}),
).toEqual({
code: "PAIRING_REQUIRED",
reason: "scope-upgrade",
remediationHint: "Review the requested scopes, then approve the pending upgrade.",
});
});
it("reads pairing details as compact connect details", () => {
expect(
readConnectPairingRequiredDetails({
code: "PAIRING_REQUIRED",
requestId: "req-123",
reason: "scope-upgrade",
remediationHint: "Review the requested scopes, then approve the pending upgrade.",
}),
).toEqual({
requestId: "req-123",
reason: "scope-upgrade",
});
});
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.