test(#4793): tighten recycle reset regressions
This commit is contained in:
1 parent
004c9774d0
commit
a4f33f7687
2 files changed
+18
-15
No files matched your search
@@ -1783,6 +1783,9 @@ console.log(JSON.stringify({
|
||||
_extract_func_script(JS)
|
||||
+ """
|
||||
const fn = extractFunc('renderMessages');
|
||||
const resetAttrsStart = src.indexOf('const _recycleResetAttrs=');
|
||||
const resetAttrsEnd = src.indexOf('let _scrollbarDragActive=false;', resetAttrsStart);
|
||||
const resetAttrs = src.slice(resetAttrsStart, resetAttrsEnd);
|
||||
const assistantStart = fn.indexOf('if(!currentAssistantTurn){');
|
||||
const assistantEnd = fn.indexOf('const seg=document.createElement', assistantStart);
|
||||
const assistantBranch = fn.slice(assistantStart, assistantEnd);
|
||||
@@ -1796,7 +1799,7 @@ console.log(JSON.stringify({
|
||||
clears_transparent_collapse: assistantBranch.includes("""
|
||||
+ recycle_reset_loop_needle
|
||||
+ """),
|
||||
reset_list_contains_transparent_collapse: fn.includes("""
|
||||
reset_list_contains_transparent_collapse: resetAttrs.includes("""
|
||||
+ transparent_collapse_attr_needle
|
||||
+ """),
|
||||
}));
|
||||
|
||||
@@ -61,6 +61,8 @@ function extractBody(startMarker, endMarker, startFrom = 0) {{
|
||||
def test_recycled_assistant_turn_reuse_clears_live_anchor_attrs():
|
||||
script = _js_prefix() + """
|
||||
const recycleChunk = extractBetween("if(!currentAssistantTurn){", "const seg=document.createElement('div');");
|
||||
const resetListChunk = extractBetween("const _recycleResetAttrs=[", "let _scrollbarDragActive=false;")
|
||||
.replace("const _recycleResetAttrs=", "var _recycleResetAttrs=");
|
||||
const removedAttrs = [];
|
||||
const role = {
|
||||
replacement: null,
|
||||
@@ -73,13 +75,7 @@ const recycled = {
|
||||
removeAttribute(name) { removedAttrs.push(name); },
|
||||
querySelector(selector) { return selector === '.msg-role.assistant' ? role : null; },
|
||||
};
|
||||
const _recycleResetAttrs = [
|
||||
'data-transparent-turn-collapsed',
|
||||
'data-transparent-turn-toggle-bound',
|
||||
'data-anchor-scene-live-owner',
|
||||
'data-anchor-stream-id',
|
||||
'data-live-assistant-turn',
|
||||
];
|
||||
eval(resetListChunk);
|
||||
const _recycleStash = new Map([[7, recycled]]);
|
||||
const _msgNodeRecycleEnabled = true;
|
||||
let currentAssistantTurn = null;
|
||||
@@ -96,6 +92,7 @@ const _formatTurnTps = value => `tps:${value}`;
|
||||
eval(recycleChunk);
|
||||
console.log(JSON.stringify({
|
||||
removedAttrs,
|
||||
resetAttrs: _recycleResetAttrs,
|
||||
blocksInnerHTML: blocks.innerHTML,
|
||||
roleHtml: role.replacement,
|
||||
currentAssistantTurnIsRecycled: currentAssistantTurn === recycled,
|
||||
@@ -108,6 +105,13 @@ console.log(JSON.stringify({
|
||||
"""
|
||||
result = _run_node(script)
|
||||
|
||||
assert result["resetAttrs"] == [
|
||||
"data-transparent-turn-collapsed",
|
||||
"data-transparent-turn-toggle-bound",
|
||||
"data-anchor-scene-live-owner",
|
||||
"data-anchor-stream-id",
|
||||
"data-live-assistant-turn",
|
||||
]
|
||||
assert result["removedAttrs"] == [
|
||||
"data-transparent-turn-collapsed",
|
||||
"data-transparent-turn-toggle-bound",
|
||||
@@ -126,6 +130,8 @@ console.log(JSON.stringify({
|
||||
def test_recycled_assistant_turn_reuse_keeps_block_clear_and_role_refresh():
|
||||
script = _js_prefix() + """
|
||||
const recycleChunk = extractBetween("if(!currentAssistantTurn){", "const seg=document.createElement('div');");
|
||||
const resetListChunk = extractBetween("const _recycleResetAttrs=[", "let _scrollbarDragActive=false;")
|
||||
.replace("const _recycleResetAttrs=", "var _recycleResetAttrs=");
|
||||
const removedAttrs = [];
|
||||
const role = {
|
||||
replacement: null,
|
||||
@@ -138,13 +144,7 @@ const recycled = {
|
||||
removeAttribute(name) { removedAttrs.push(name); },
|
||||
querySelector(selector) { return selector === '.msg-role.assistant' ? role : null; },
|
||||
};
|
||||
const _recycleResetAttrs = [
|
||||
'data-transparent-turn-collapsed',
|
||||
'data-transparent-turn-toggle-bound',
|
||||
'data-anchor-scene-live-owner',
|
||||
'data-anchor-stream-id',
|
||||
'data-live-assistant-turn',
|
||||
];
|
||||
eval(resetListChunk);
|
||||
const _recycleStash = new Map([[7, recycled]]);
|
||||
const _msgNodeRecycleEnabled = true;
|
||||
let currentAssistantTurn = null;
|
||||
|
||||
Reference in new issue
Block a user