You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by en...@apache.org on 2025/03/28 20:48:30 UTC
(superset) 01/01: feat(Breadcrumb): add wrapper for Breadcrumb component, with test and story
This is an automated email from the ASF dual-hosted git repository.
enzomartellucci pushed a commit to branch enxdev/refactor/migrate-Breadcrumb-to-antd5
in repository https://gitbox.apache.org/repos/asf/superset.git
commit 9dc809a9df810a03415de02dab5c0df300e0fb2b
Author: Enzo Martellucci <en...@gmail.com>
AuthorDate: Fri Mar 28 21:07:45 2025 +0100
feat(Breadcrumb): add wrapper for Breadcrumb component, with test and story
---
.../components/Breadcrumb/Breadcrumb.stories.tsx | 57 ++++++++++++++++++++++
.../src/components/Breadcrumb/Breadcrumb.test.tsx | 37 ++++++++++++++
.../src/components/Breadcrumb/index.tsx | 21 ++++++++
3 files changed, 115 insertions(+)
diff --git a/superset-frontend/src/components/Breadcrumb/Breadcrumb.stories.tsx b/superset-frontend/src/components/Breadcrumb/Breadcrumb.stories.tsx
new file mode 100644
index 0000000000..d0fdd2f481
--- /dev/null
+++ b/superset-frontend/src/components/Breadcrumb/Breadcrumb.stories.tsx
@@ -0,0 +1,57 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import type { Meta, StoryObj } from '@storybook/react';
+import { Breadcrumb } from '.';
+
+const meta: Meta<typeof Breadcrumb> = {
+ title: 'Breadcrumb',
+ component: Breadcrumb,
+ tags: ['autodocs'],
+ argTypes: {
+ separator: {
+ control: 'text',
+ description: 'Custom separator between items',
+ defaultValue: '/',
+ },
+ items: {
+ control: 'object',
+ description: 'List of breadcrumb items',
+ defaultValue: [
+ { title: 'Home', href: '/' },
+ { title: 'Library', href: '/library' },
+ { title: 'Data' },
+ ],
+ },
+ },
+};
+
+export default meta;
+type Story = StoryObj<typeof Breadcrumb>;
+
+export const Default: Story = {
+ args: {
+ separator: '/',
+ items: [
+ { title: 'Home', href: '/' },
+ { title: 'Library', href: '/library' },
+ { title: 'Data' },
+ ],
+ },
+ render: args => <Breadcrumb {...args} />,
+};
diff --git a/superset-frontend/src/components/Breadcrumb/Breadcrumb.test.tsx b/superset-frontend/src/components/Breadcrumb/Breadcrumb.test.tsx
new file mode 100644
index 0000000000..4907ff209e
--- /dev/null
+++ b/superset-frontend/src/components/Breadcrumb/Breadcrumb.test.tsx
@@ -0,0 +1,37 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { render, screen } from '@testing-library/react';
+import '@testing-library/jest-dom';
+import { Breadcrumb } from '.';
+
+describe('Breadcrumb Component', () => {
+ test('renders breadcrumb items correctly', () => {
+ render(
+ <Breadcrumb>
+ <Breadcrumb.Item>Home</Breadcrumb.Item>
+ <Breadcrumb.Item>Library</Breadcrumb.Item>
+ <Breadcrumb.Item>Data</Breadcrumb.Item>
+ </Breadcrumb>,
+ );
+
+ expect(screen.getByText('Home')).toBeInTheDocument();
+ expect(screen.getByText('Library')).toBeInTheDocument();
+ expect(screen.getByText('Data')).toBeInTheDocument();
+ });
+});
diff --git a/superset-frontend/src/components/Breadcrumb/index.tsx b/superset-frontend/src/components/Breadcrumb/index.tsx
new file mode 100644
index 0000000000..db91a23f95
--- /dev/null
+++ b/superset-frontend/src/components/Breadcrumb/index.tsx
@@ -0,0 +1,21 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { Breadcrumb as antdBreadcrumb } from 'antd-v5';
+
+export const Breadcrumb = antdBreadcrumb;