Close workbench P0 resource lifecycle gaps
This commit is contained in:
@@ -184,6 +184,7 @@ async function main() {
|
||||
return {
|
||||
guardAttr,
|
||||
hasGuardClass,
|
||||
noticeText: document.querySelector('[data-mnote-resource-close-guard="dirty"]')?.textContent || "",
|
||||
tabStillPresent: activeTab !== null,
|
||||
kind: activeTab?.getAttribute('data-mnote-tab-kind') || '',
|
||||
};
|
||||
@@ -191,6 +192,7 @@ async function main() {
|
||||
assert(blockedState.hasGuardClass, `dirty tab 应具有 is-close-guarded class: ${JSON.stringify(blockedState)}`);
|
||||
assert.equal(blockedState.guardAttr, 'dirty', `close-guard attribute 应为 dirty: ${JSON.stringify(blockedState)}`);
|
||||
assert.equal(blockedState.kind, 'markdown', `dirty tab 关闭阻止后应仍然激活: ${JSON.stringify(blockedState)}`);
|
||||
assert.match(blockedState.noticeText, /未保存|保存完成/, `dirty 关闭阻止应显示可见提示: ${JSON.stringify(blockedState)}`);
|
||||
|
||||
// 输入后的短保护窗口内再次关闭仍应被阻止,不应静默释放 resource editor。
|
||||
await closeBtn.click({ timeout: UI_TIMEOUT_MS });
|
||||
@@ -201,11 +203,13 @@ async function main() {
|
||||
kind: activeTab?.getAttribute('data-mnote-tab-kind') || 'none',
|
||||
resourceTabCount: document.querySelectorAll('.mnote-main-tab[data-mnote-tab-kind]:not([data-mnote-tab-kind="page"])').length,
|
||||
guardAttr: activeTab?.getAttribute('data-resource-tab-close-guarded') || '',
|
||||
noticeCount: document.querySelectorAll('[data-mnote-resource-close-guard="dirty"]').length,
|
||||
};
|
||||
});
|
||||
assert.equal(afterSecondCloseState.kind, 'markdown', `保护窗口内二次关闭后仍应停留在 resource tab: ${JSON.stringify(afterSecondCloseState)}`);
|
||||
assert.equal(afterSecondCloseState.resourceTabCount, 1, `保护窗口内 resource tab 不应被移除: ${JSON.stringify(afterSecondCloseState)}`);
|
||||
assert.equal(afterSecondCloseState.guardAttr, 'dirty', `保护窗口内应保留 dirty guard: ${JSON.stringify(afterSecondCloseState)}`);
|
||||
assert.equal(afterSecondCloseState.noticeCount, 1, `关闭提示不应重复堆叠: ${JSON.stringify(afterSecondCloseState)}`);
|
||||
|
||||
console.log(JSON.stringify({ ok: true, root, assetId: asset.id }, null, 2));
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user