feat: restore legacy named playlist workflows
This commit is contained in:
@@ -209,6 +209,25 @@ test("stock responses preserve US/TW identity and reject duplicate input-name lo
|
||||
})), null);
|
||||
});
|
||||
|
||||
test("provider symbols accept Unicode letters but keep serialized delimiters closed", () => {
|
||||
const unicode = workflow.normalizeStock({
|
||||
inputName: "Provider Unicode Symbol",
|
||||
symbol: "NAS@해외 종목1",
|
||||
nationCode: "US",
|
||||
fdtc: "1"
|
||||
});
|
||||
assert.ok(unicode);
|
||||
const entry = workflow.createOverseasStockPlaylistEntry(
|
||||
unicode,
|
||||
"stock-candle-5d",
|
||||
{ id: "unicode-symbol", fadeDuration: 6, ma5: true, ma20: false });
|
||||
assert.equal(entry.selection.dataCode, "NAS@해외 종목1|US|1");
|
||||
|
||||
for (const symbol of ["NAS|NVDA", "NAS^NVDA", " NAS@NVDA", "NAS@NVDA ", "NAS!NVDA", "NAS\nNVDA", "NAS😀NVDA"]) {
|
||||
assert.equal(workflow.normalizeStock({ ...unicode, symbol }), null, symbol);
|
||||
}
|
||||
});
|
||||
|
||||
test("bridge errors use exact payloads and reject stale request correlation", () => {
|
||||
const industryRequest = workflow.createIndustrySearchRequest("industry-error-1", "AI");
|
||||
const industryError = {
|
||||
|
||||
Reference in New Issue
Block a user