diff --git a/components/breadcrumb/__tests__/Breadcrumb.test.js b/components/breadcrumb/__tests__/Breadcrumb.test.js new file mode 100644 index 000000000..facd2489e --- /dev/null +++ b/components/breadcrumb/__tests__/Breadcrumb.test.js @@ -0,0 +1,70 @@ +import { mount } from '@vue/test-utils' +import Breadcrumb from '../index' + +describe('Breadcrumb', () => { + const errorSpy = jest.spyOn(console, 'error').mockImplementation(() => {}) + + afterEach(() => { + errorSpy.mockReset() + }) + + afterAll(() => { + errorSpy.mockRestore() + }) + + // // https://github.com/airbnb/enzyme/issues/875 + it('warns on non-Breadcrumb.Item children', () => { + mount( + { + render () { + return ( + +
foo
+
+ ) + }, + } + ) + expect(errorSpy.mock.calls).toHaveLength(1) + expect(errorSpy.mock.calls[0][0]).toMatch( + 'Breadcrumb only accepts Breadcrumb.Item as it\'s children' + ) + }) + + // https:// github.com/ant-design/ant-design/issues/5015 + it('should allow Breadcrumb.Item is null or undefined', () => { + const wrapper = mount( + { + render () { + return ( + + {null} + Home + {undefined} + + ) + }, + } + ) + expect(errorSpy).not.toHaveBeenCalled() + expect(wrapper.html()).toMatchSnapshot() + }) + + // https://github.com/ant-design/ant-design/issues/5542 + it('should not display Breadcrumb Item when its children is falsy', () => { + const wrapper = mount( + { + render () { + return ( + + + xxx + yyy + + ) + }, + } + ) + expect(wrapper.html()).toMatchSnapshot() + }) +}) diff --git a/components/breadcrumb/__tests__/__snapshots__/Breadcrumb.test.js.snap b/components/breadcrumb/__tests__/__snapshots__/Breadcrumb.test.js.snap new file mode 100644 index 000000000..194a88e5e --- /dev/null +++ b/components/breadcrumb/__tests__/__snapshots__/Breadcrumb.test.js.snap @@ -0,0 +1,12 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Breadcrumb should allow Breadcrumb.Item is null or undefined 1`] = ` +
Home/ +
+`; + +exports[`Breadcrumb should not display Breadcrumb Item when its children is falsy 1`] = ` +
+ xxx/yyy/ +
+`;