diff --git a/packages/ui/src/components/Breadcrumb/Breadcrumb.test.tsx b/packages/ui/src/components/Breadcrumb/Breadcrumb.test.tsx
new file mode 100644
index 00000000..489795eb
--- /dev/null
+++ b/packages/ui/src/components/Breadcrumb/Breadcrumb.test.tsx
@@ -0,0 +1,93 @@
+import { render, screen } from '@testing-library/react';
+import Link from 'next/link';
+import { Breadcrumbs } from './index';
+import '@testing-library/jest-dom';
+
+describe('Breadcrumb navigation', () => {
+ const props = {
+ label: 'Kruimelpad',
+ links: [
+ {
+ href: 'https://www.utrecht.nl/',
+ label: 'Home',
+ current: false,
+ rel: 'home',
+ },
+ {
+ href: '/',
+ label: 'Online loket',
+ current: true,
+ },
+ ],
+ backLink: {
+ href: '/',
+ label: 'Online loket',
+ current: false,
+ },
+ Link: Link,
+ };
+
+ it('renders a navigation landmark', () => {
+ render();
+
+ const navigation = screen.getByRole('navigation', { name: 'Kruimelpad' });
+
+ expect(navigation).toBeInTheDocument();
+ });
+
+ it('renders links', () => {
+ render();
+
+ const links = screen.getAllByRole('link');
+
+ expect(links.length).toBe(props.links.length);
+ });
+
+ it('renders a link', () => {
+ render();
+
+ const link = screen.getByRole('link', { name: 'Home' });
+
+ expect(link).toBeInTheDocument();
+ expect(link).toHaveAttribute('href', 'https://www.utrecht.nl/');
+ expect(link).toHaveAttribute('rel', 'home');
+ });
+
+ it('renders a current link', () => {
+ render();
+
+ const link = screen.getByRole('link', { name: 'Online loket', current: 'page' });
+
+ expect(link).toBeInTheDocument();
+ });
+
+ it('renders no separator for one link', () => {
+ const { container } = render();
+
+ const separator = container.querySelector('.utrecht-breadcrumb-nav__separator');
+
+ expect(separator).not.toBeInTheDocument();
+ });
+
+ it('renders separators between items', () => {
+ const { container } = render();
+
+ const separators = container.querySelectorAll(
+ '.utrecht-breadcrumb-nav__item + .utrecht-breadcrumb-nav__separator + .utrecht-breadcrumb-nav__item',
+ );
+
+ expect(separators.length).toBe(props.links.length - 1);
+ });
+
+ it('renders a custom Link component', () => {
+ const { container } = render(
+ } />,
+ );
+
+ const links = container.querySelectorAll('.custom-link');
+
+ expect(links.length).toBe(props.links.length);
+ });
+
+ // TODO: Test small screen breadcrumb
+});