diff --git a/packages/components/page-header/__tests__/page-header.test.tsx b/packages/components/page-header/__tests__/page-header.test.tsx index 7d0cadd401..b921a28742 100644 --- a/packages/components/page-header/__tests__/page-header.test.tsx +++ b/packages/components/page-header/__tests__/page-header.test.tsx @@ -94,6 +94,44 @@ describe('PageHeader.vue', () => { expect(wrapper.find('.el-page-header__title').text()).toEqual(AXIOM) }) + test('conditional slots rendering', async () => { + const wrapper = mount( + (props: { + showDefault: boolean + showBreadcrumb: boolean + showExtra: boolean + }) => ( + AXIOM : undefined, + breadcrumb: props.showBreadcrumb ? () => AXIOM : undefined, + extra: props.showExtra ? () => AXIOM : undefined, + }} + /> + ), + { + props: { + showDefault: false, + showBreadcrumb: false, + showExtra: false, + }, + } + ) + expect(wrapper.classes()).not.toContain('is-contentful') + expect(wrapper.classes()).not.toContain('el-page-header--has-breadcrumb') + expect(wrapper.classes()).not.toContain('el-page-header--has-extra') + + await wrapper.setProps({ + showDefault: true, + showBreadcrumb: true, + showExtra: true, + }) + + expect(wrapper.classes()).toContain('is-contentful') + expect(wrapper.classes()).toContain('el-page-header--has-breadcrumb') + expect(wrapper.classes()).toContain('el-page-header--has-extra') + }) + test('event back', async () => { const wrapper = mount(() => ) const pageHeader = wrapper.findComponent(PageHeader) diff --git a/packages/components/page-header/src/page-header.vue b/packages/components/page-header/src/page-header.vue index adbceec068..d1aeed39fe 100644 --- a/packages/components/page-header/src/page-header.vue +++ b/packages/components/page-header/src/page-header.vue @@ -1,5 +1,14 @@