diff --git a/src/__tests__/App.spec.ts b/src/__tests__/App.spec.ts index 5d236dd..33254fd 100644 --- a/src/__tests__/App.spec.ts +++ b/src/__tests__/App.spec.ts @@ -137,7 +137,8 @@ describe('App', () => { }); expect(wrapper.find('.kt-blog__header-collapse').exists()).toBe(true); - expect(wrapper.find('.kt-blog__header-nav').exists()).toBe(true); + expect(wrapper.find('.kt-blog__header-nav--hover').exists()).toBe(false); + expect(wrapper.find('.kt-blog__header-nav--end').exists()).toBe(true); }); it('loads local blog theme config by default', async () => { diff --git a/src/__tests__/useBlogTheme.spec.ts b/src/__tests__/useBlogTheme.spec.ts index 63989f2..4173936 100644 --- a/src/__tests__/useBlogTheme.spec.ts +++ b/src/__tests__/useBlogTheme.spec.ts @@ -109,6 +109,7 @@ describe('useBlogTheme', () => { label: '首页', }, ], + headerMenuVisible: false, home: 'https://blog.kwitsukasa.top', sidebarMenu: [ { @@ -147,6 +148,55 @@ describe('useBlogTheme', () => { expect(document.querySelector('#kt-blog-theme-style')?.textContent).toContain("url('http://s3.kwitsukasa.top/images/avatar-tsukasa-1.jpg')"); }); + it('keeps toolbar menu hidden unless WordPress exposes an explicit visibility flag', async () => { + const { applyWordpressThemeConfig, siteConfig } = useBlogTheme(); + + applyWordpressThemeConfig({ + headerMenu: [ + { + href: 'https://blog.kwitsukasa.top', + label: '首页', + }, + ], + site: { + home: 'https://blog.kwitsukasa.top', + }, + }); + await nextTick(); + + expect(siteConfig.value.headerMenu).toEqual([ + { + external: false, + href: '/', + label: '首页', + }, + ]); + expect(siteConfig.value.headerMenuVisible).toBe(false); + + applyWordpressThemeConfig({ + headerMenu: [ + { + href: 'https://blog.kwitsukasa.top/archives', + label: '归档', + }, + ], + headerMenuVisible: 'true', + site: { + home: 'https://blog.kwitsukasa.top', + }, + }); + await nextTick(); + + expect(siteConfig.value.headerMenu).toEqual([ + { + external: false, + href: '/archives', + label: '归档', + }, + ]); + expect(siteConfig.value.headerMenuVisible).toBe(true); + }); + it('maps legacy Argon placeholder image config back to previous blog static assets', async () => { const { applyWordpressThemeConfig, siteConfig } = useBlogTheme(); diff --git a/src/components/blog/BlogHeader.tsx b/src/components/blog/BlogHeader.tsx index 0252758..be2a8f8 100644 --- a/src/components/blog/BlogHeader.tsx +++ b/src/components/blog/BlogHeader.tsx @@ -106,26 +106,28 @@ export default defineComponent({ -