Spracherkennung für: .ts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
import { describe, expect, it } from "vitest";
import {
isSafeScpRemoteHost,
isSafeScpRemotePath,
normalizeScpRemoteHost,
normalizeScpRemotePath,
} from "./scp-host.js";
describe("scp remote host", () => {
it.each([
{ value: "gateway-host", expected: "gateway-host" },
{ value: " bot@gateway-host ", expected: "bot@gateway-host" },
{ value: "bot@192.168.64.3", expected: "bot@192.168.64.3" },
{ value: "bot@[fe80::1]", expected: "bot@[fe80::1]" },
])("normalizes safe hosts for %j", ({ value, expected }) => {
expect(normalizeScpRemoteHost(value)).toBe(expected);
});
it.each([
null,
undefined,
"",
" ",
"-oProxyCommand=whoami",
"bot@gateway-host -oStrictHostKeyChecking=no",
"bot@host:22",
"bot@/tmp/host",
"bot@@host",
"@host",
"bot@",
"bot@host\\name",
"bot@-gateway-host",
"bot@fe80::1",
"bot@[fe80::1%en0]",
"bot name@gateway-host",
])("rejects unsafe host tokens: %j", (value) => {
expect(normalizeScpRemoteHost(value)).toBeUndefined();
expect(isSafeScpRemoteHost(value)).toBe(false);
});
});
describe("scp remote path", () => {
it.each(
[
{
value: "/Users/demo/Library/Messages/Attachments/ab/cd/photo.jpg",
normalized: "/Users/demo/Library/Messages/Attachments/ab/cd/photo.jpg",
safe: true,
},
{
value: " /Users/demo/Library/Messages/Attachments/ab/cd/IMG 1234 (1).jpg ",
normalized: "/Users/demo/Library/Messages/Attachments/ab/cd/IMG 1234 (1).jpg",
safe: true,
},
null,
undefined,
"",
" ",
"relative/path.jpg",
"/Users/demo/Library/Messages/Attachments/ab/cd/bad$path.jpg",
"/Users/demo/Library/Messages/Attachments/ab/cd/bad`path`.jpg",
"/Users/demo/Library/Messages/Attachments/ab/cd/bad;path.jpg",
"/Users/demo/Library/Messages/Attachments/ab/cd/bad|path.jpg",
"/Users/demo/Library/Messages/Attachments/ab/cd/bad&path.jpg",
"/Users/demo/Library/Messages/Attachments/ab/cd/bad<path.jpg",
"/Users/demo/Library/Messages/Attachments/ab/cd/bad>path.jpg",
'/Users/demo/Library/Messages/Attachments/ab/cd/bad"path.jpg',
"/Users/demo/Library/Messages/Attachments/ab/cd/bad'path.jpg",
"/Users/demo/Library/Messages/Attachments/ab/cd/bad\\path.jpg",
].map((entry) =>
typeof entry === "object" && entry !== null && "value" in entry
? entry
: { value: entry, normalized: undefined, safe: false },
),
)("classifies path token %j", ({ value, normalized, safe }) => {
expect(normalizeScpRemotePath(value)).toBe(normalized);
expect(isSafeScpRemotePath(value)).toBe(safe);
});
});
¤ 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.0.9Bemerkung:
(vorverarbeitet am 2026-04-27)
¤
*Bot Zugriff
|
|