From 6c3da7769330c5899ed4d80adfa2569f3a6dcdf6 Mon Sep 17 00:00:00 2001 From: lyf <2514544224@qq.com> Date: Wed, 15 Jul 2026 01:35:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=B2=A4=E8=AF=AD=E9=9F=B3?= =?UTF-8?q?=E9=A2=91=E9=87=8D=E5=A4=8D=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/exhibit/detail.vue | 3 --- tests/unit/ExhibitDetailAudioFirst.spec.ts | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/src/pages/exhibit/detail.vue b/src/pages/exhibit/detail.vue index 07341f0..e65e01b 100644 --- a/src/pages/exhibit/detail.vue +++ b/src/pages/exhibit/detail.vue @@ -106,9 +106,6 @@ {{ detailLoadingMessage }} - - {{ audioAvailabilityMessage }} - diff --git a/tests/unit/ExhibitDetailAudioFirst.spec.ts b/tests/unit/ExhibitDetailAudioFirst.spec.ts index 60f40db..fe45994 100644 --- a/tests/unit/ExhibitDetailAudioFirst.spec.ts +++ b/tests/unit/ExhibitDetailAudioFirst.spec.ts @@ -144,4 +144,26 @@ describe('讲解详情音频优先布局', () => { language: 'en-US' }), expect.objectContaining({ displayMode: 'mini' })) }) + + it('音频不可用时只在音频控制区显示一次提示', async () => { + mocks.enterExplainDetail.mockResolvedValue({ + ...exhibit, + audioUrl: undefined, + audioDuration: undefined, + audioStatus: 'MISSING', + audioLanguage: 'yue-HK', + audioUnavailableReason: '当前语言暂无语音讲解。' + }) + + const wrapper = mount(ExhibitDetail, { + global: { stubs: { GuidePageFrame: GuidePageFrameStub } } + }) + + await mocks.onLoadHandler?.({ id: exhibit.id, lang: 'yue-HK', targetType: 'STOP', targetId: 'stop-1' }) + await flushPromises() + + expect(wrapper.find('.detail-audio-unavailable').text()).toBe('当前语言暂无语音讲解。') + expect(wrapper.find('.audio-status-hint').exists()).toBe(false) + expect(wrapper.findAll('.section-hint')).toHaveLength(0) + }) })