From f914ff8376dd91c4f6f8ca149e1cb6becb622d88 Mon Sep 17 00:00:00 2001
From: Armand Philippot <git@armandphilippot.com>
Date: Mon, 2 Oct 2023 18:45:30 +0200
Subject: refactor(components): rewrite Link component

* rename `external` prop to `isExternal`
* rename `download` prop to `isDownload`
* rewrite CSS to reduce code length and complexity
* move link styles in Sass placeholders to avoid repeats because of WordPress
articles
* move NavLink component to molecules
---
 .../molecules/nav/nav-link/nav-link.test.tsx       | 28 ++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 src/components/molecules/nav/nav-link/nav-link.test.tsx

(limited to 'src/components/molecules/nav/nav-link/nav-link.test.tsx')

diff --git a/src/components/molecules/nav/nav-link/nav-link.test.tsx b/src/components/molecules/nav/nav-link/nav-link.test.tsx
new file mode 100644
index 0000000..aa9b557
--- /dev/null
+++ b/src/components/molecules/nav/nav-link/nav-link.test.tsx
@@ -0,0 +1,28 @@
+import { describe, expect, it } from '@jest/globals';
+import { render, screen as rtlScreen } from '@testing-library/react';
+import { NavLink } from './nav-link';
+
+describe('NavLink', () => {
+  it('renders a link', () => {
+    const label = 'eius';
+    const target = '#harum';
+
+    render(<NavLink href={target} label={label} />);
+
+    expect(rtlScreen.getByRole('link', { name: label })).toHaveAttribute(
+      'href',
+      target
+    );
+  });
+
+  it('can render a nav link with inlined contents', () => {
+    const label = 'eius';
+    const target = '#harum';
+
+    render(<NavLink href={target} isInline label={label} />);
+
+    expect(rtlScreen.getByRole('link', { name: label })).toHaveClass(
+      'link--inline'
+    );
+  });
+});
-- 
cgit v1.2.3

