import { describe, expect, it } from "vitest" ;
import { extractInlineSimpleCommand, stripInlineStatus } from "./reply-inline.js" ;
describe("stripInlineStatus" , () => {
it("strips /status directive from message" , () => {
const result = stripInlineStatus("/status hello world" );
expect(result.cleaned).toBe("hello world" );
expect(result.didStrip).toBe(true );
});
it("preserves newlines in multi-line messages" , () => {
const result = stripInlineStatus("first line\nsecond line\nthird line" );
expect(result.cleaned).toBe("first line\nsecond line\nthird line" );
expect(result.didStrip).toBe(false );
});
it("preserves newlines when stripping /status" , () => {
const result = stripInlineStatus("/status\nfirst paragraph\n\nsecond paragraph" );
expect(result.cleaned).toBe("first paragraph\n\nsecond paragraph" );
expect(result.didStrip).toBe(true );
});
it("collapses horizontal whitespace but keeps newlines" , () => {
const result = stripInlineStatus("hello world\n indented line" );
expect(result.cleaned).toBe("hello world\n indented line" );
// didStrip is true because whitespace normalization changed the string
expect(result.didStrip).toBe(true );
});
it("returns empty string for whitespace-only input" , () => {
const result = stripInlineStatus(" " );
expect(result.cleaned).toBe("" );
expect(result.didStrip).toBe(false );
});
});
describe("extractInlineSimpleCommand" , () => {
it("extracts /help command" , () => {
const result = extractInlineSimpleCommand("/help some question" );
expect(result?.command).toBe("/help" );
expect(result?.cleaned).toBe("some question" );
});
it("preserves newlines after extracting command" , () => {
const result = extractInlineSimpleCommand("/help first line\nsecond line" );
expect(result?.command).toBe("/help" );
expect(result?.cleaned).toBe("first line\nsecond line" );
});
it("returns null for empty body" , () => {
expect(extractInlineSimpleCommand("" )).toBeNull();
expect(extractInlineSimpleCommand(undefined)).toBeNull();
});
});
Messung V0.5 in Prozent C=96 H=97 G=96
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland