fix(web-search): derived duckduckgo lang from raw query
callDuckDuckGoHtml now parses params.query once when parsedQuery is absent and uses that structured view for both q and kl. Direct searchDuckDuckGo/DuckDuckGoProvider.search calls no longer strip lang: from q while defaulting kl to us-en. Fixes #7110
This commit is contained in:
@@ -39,7 +39,8 @@ describe("localeToKl", () => {
|
||||
describe("searchDuckDuckGo kl parameter (integration)", () => {
|
||||
const fakeAuthStorage = {} as unknown as AuthStorage;
|
||||
|
||||
async function effectiveForm(query: string): Promise<URLSearchParams> {
|
||||
async function effectiveForm(query: string, opts: { withParsedQuery?: boolean } = {}): Promise<URLSearchParams> {
|
||||
const withParsedQuery = opts.withParsedQuery ?? true;
|
||||
let body: string | undefined;
|
||||
const fetchMock: FetchImpl = async (_input, init) => {
|
||||
body = init?.body as string;
|
||||
@@ -50,7 +51,7 @@ describe("searchDuckDuckGo kl parameter (integration)", () => {
|
||||
};
|
||||
await searchDuckDuckGo({
|
||||
query,
|
||||
parsedQuery: parseSearchQuery(query),
|
||||
parsedQuery: withParsedQuery ? parseSearchQuery(query) : undefined,
|
||||
systemPrompt: "",
|
||||
authStorage: fakeAuthStorage,
|
||||
fetch: fetchMock,
|
||||
@@ -84,4 +85,10 @@ describe("searchDuckDuckGo kl parameter (integration)", () => {
|
||||
const form = await effectiveForm("weather lang:de");
|
||||
expect(form.get("kl")).toBe("us-en");
|
||||
});
|
||||
|
||||
it("parses lang: from the raw query when parsedQuery is omitted (direct call)", async () => {
|
||||
const form = await effectiveForm("weather lang:de-de", { withParsedQuery: false });
|
||||
expect(form.get("q")).toBe("weather");
|
||||
expect(form.get("kl")).toBe("de-de");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user