import { describe, expect, test } from "bun:test"; import { matchesNegativeKeyword, matchesKeepGoingKeyword, } from "../userPromptKeywords"; describe("matchesNegativeKeyword", () => { test("matches 'wtf'", () => { expect(matchesNegativeKeyword("wtf is going on")).toBe(true); }); test("matches 'shit'", () => { expect(matchesNegativeKeyword("this is shit")).toBe(true); }); test("matches 'fucking broken'", () => { expect(matchesNegativeKeyword("this is fucking broken")).toBe(true); }); test("does not match normal input like 'fix the bug'", () => { expect(matchesNegativeKeyword("fix the bug")).toBe(false); }); test("is case-insensitive", () => { expect(matchesNegativeKeyword("WTF is this")).toBe(true); expect(matchesNegativeKeyword("This Sucks")).toBe(true); }); test("matches partial word in sentence", () => { expect(matchesNegativeKeyword("please help, damn it")).toBe(true); }); }); describe("matchesKeepGoingKeyword", () => { test("matches exact 'continue'", () => { expect(matchesKeepGoingKeyword("continue")).toBe(true); }); test("matches 'keep going'", () => { expect(matchesKeepGoingKeyword("keep going")).toBe(true); }); test("matches 'go on'", () => { expect(matchesKeepGoingKeyword("go on")).toBe(true); }); test("does not match 'cont'", () => { expect(matchesKeepGoingKeyword("cont")).toBe(false); }); test("does not match empty string", () => { expect(matchesKeepGoingKeyword("")).toBe(false); }); test("matches within larger sentence 'please continue'", () => { // 'continue' must be the entire prompt (lowercased), not a substring expect(matchesKeepGoingKeyword("please continue")).toBe(false); }); test("matches 'keep going' in sentence", () => { expect(matchesKeepGoingKeyword("please keep going")).toBe(true); }); test("matches 'go on' in sentence", () => { expect(matchesKeepGoingKeyword("yes, go on")).toBe(true); }); test("is case-insensitive for 'continue'", () => { expect(matchesKeepGoingKeyword("Continue")).toBe(true); expect(matchesKeepGoingKeyword("CONTINUE")).toBe(true); }); test("is case-insensitive for 'keep going'", () => { expect(matchesKeepGoingKeyword("Keep Going")).toBe(true); }); });