feat: restore legacy named playlist workflows

This commit is contained in:
2026-07-12 11:59:18 +09:00
parent a481c96c39
commit af80c36cde
52 changed files with 9261 additions and 83 deletions

View File

@@ -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 = {