20 lines
832 B
TypeScript
20 lines
832 B
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { normalizeSymbol } from "../src/agent/symbols";
|
|
|
|
describe("normalizeSymbol", () => {
|
|
it.each([
|
|
["600519", { symbol: "600519", market: "CN", display: "600519.SS" }],
|
|
["000001.SZ", { symbol: "000001", market: "CN", display: "000001.SZ" }],
|
|
["00700.hk", { symbol: "00700", market: "HK", display: "00700.HK" }],
|
|
["AAPL", { symbol: "AAPL", market: "US", display: "AAPL" }],
|
|
["msft.us", { symbol: "MSFT", market: "US", display: "MSFT" }]
|
|
])("normalizes %s", (input, expected) => {
|
|
expect(normalizeSymbol(input)).toEqual(expected);
|
|
});
|
|
|
|
it("rejects empty and unsupported symbols", () => {
|
|
expect(() => normalizeSymbol("")).toThrow("Stock symbol is required");
|
|
expect(() => normalizeSymbol("!!!")).toThrow("Unsupported stock symbol");
|
|
});
|
|
});
|