feat: 优化剧集连续阅读布局与目录滚动联动

This commit is contained in:
GouJ
2026-09-01 17:02:39 +08:00
parent 3fe1b3f5c3
commit a35f5fe82d
7 changed files with 540 additions and 146 deletions
+30 -1
View File
@@ -1,4 +1,4 @@
import { computed, ref } from 'vue'
import { computed, nextTick, ref } from 'vue'
import { NScrollbar } from 'naive-ui'
import { createMemoryHistory, createRouter } from 'vue-router'
import { flushPromises, mount, type VueWrapper } from '@vue/test-utils'
@@ -1134,6 +1134,35 @@ describe('工作台页面交互', () => {
expect(provided.refresh).toHaveBeenCalledOnce()
})
it('切换剧本标签保留阅读容器和位置,执行记录按需展开', async () => {
wrapper = mount(CreateDramaPage, {
attachTo: document.body,
global: { provide: { [projectContextKey as symbol]: context() }, stubs: { RouterLink: true } }
})
const reader = wrapper.get<HTMLElement>('.reader-scroll .n-scrollbar-container').element
reader.scrollTop = 120
expect(wrapper.find('.history-panel').exists()).toBe(false)
await wrapper
.findAll('.n-tabs-tab')
.find(item => item.text() === '角色设定')!
.trigger('click')
expect(wrapper.get('.episode-reader').isVisible()).toBe(false)
await wrapper
.findAll('.n-tabs-tab')
.find(item => item.text().includes('剧集正文'))!
.trigger('click')
expect(wrapper.get('.episode-reader').isVisible()).toBe(true)
expect(wrapper.get('.reader-scroll .n-scrollbar-container').element).toBe(reader)
expect(reader.scrollTop).toBe(120)
button('执行记录').click()
await nextTick()
expect(wrapper.find('.history-panel').exists()).toBe(true)
expect(wrapper.get('.content-with-history').classes()).not.toContain('history-hidden')
button('收起执行记录').click()
await nextTick()
expect(wrapper.find('.history-panel').exists()).toBe(false)
})
it('剧本文本按纯文本显示,不执行模型输出的 HTML', () => {
wrapper = mount(CreateDramaPage, {
attachTo: document.body,