diff --git a/packages/components/button/__tests__/button.spec.ts b/packages/components/button/__tests__/button.spec.ts index 2dfa353276..0fc9d5842e 100644 --- a/packages/components/button/__tests__/button.spec.ts +++ b/packages/components/button/__tests__/button.spec.ts @@ -152,4 +152,23 @@ describe('Button Group', () => { wrapper.findAll('.el-button-group button.el-button--mini').length ).toBe(1) }) + + it('button group type', async () => { + const wrapper = mount({ + setup() { + return () => + h(ButtonGroup, { type: 'warning' }, () => [ + h(Button, { type: 'primary' }, () => 'Prev'), + h(Button, {}, () => 'Next'), + ]) + }, + }) + expect(wrapper.classes()).toContain('el-button-group') + expect( + wrapper.findAll('.el-button-group button.el-button--primary').length + ).toBe(1) + expect( + wrapper.findAll('.el-button-group button.el-button--warning').length + ).toBe(1) + }) }) diff --git a/packages/components/button/src/button-group.ts b/packages/components/button/src/button-group.ts new file mode 100644 index 0000000000..46f299058c --- /dev/null +++ b/packages/components/button/src/button-group.ts @@ -0,0 +1,9 @@ +import { buttonProps } from './button' + +import type { ExtractPropTypes } from 'vue' + +export const buttonGroupProps = { + size: buttonProps.size, + type: buttonProps.type, +} as const +export type ButtonGroupProps = ExtractPropTypes diff --git a/packages/components/button/src/button-group.vue b/packages/components/button/src/button-group.vue index e1ad4d0c26..c72960c9de 100644 --- a/packages/components/button/src/button-group.vue +++ b/packages/components/button/src/button-group.vue @@ -6,24 +6,18 @@