import { describe, expect, it } from "bun:test"; import { resolveNewsSymbols } from "../src/symbols"; describe("resolveNewsSymbols", () => { it("prefers provider symbols when present", () => { const result = resolveNewsSymbols(["tsla", "aapl"], "
No extra tickers here.
"); expect(result.provider_symbols).toEqual(["TSLA", "AAPL"]); expect(result.resolved_symbols).toEqual(["TSLA", "AAPL"]); expect(result.symbol_resolution).toBe("provider"); }); it("falls back to ticker anchors", () => { const result = resolveNewsSymbols([], 'TSLA'); expect(result.resolved_symbols).toEqual(["TSLA"]); expect(result.symbol_resolution).toBe("derived"); }); it("falls back to exchange and dollar patterns", () => { const result = resolveNewsSymbols([], "NASDAQ:TSLA met with $IBM executives.
"); expect(result.resolved_symbols).toEqual(["TSLA", "IBM"]); expect(result.symbol_resolution).toBe("derived"); }); it("dedupes and uppercases merged symbols", () => { const result = resolveNewsSymbols(["tsla"], "$TSLA and NASDAQ:TSLA
"); expect(result.provider_symbols).toEqual(["TSLA"]); expect(result.resolved_symbols).toEqual(["TSLA"]); expect(result.symbol_resolution).toBe("mixed"); }); });