@@ -55,7 +55,7 @@ beforeAll(() => {
}
}
- dom.window.customElements.define('box-component', BoxComponent);
+ dom.window.customElements.define('card-component', CardComponent);
dom.window.customElements.define('button-component', ButtonComponent);
});
@@ -68,19 +68,19 @@ beforeEach(() => {
describe('renderMarkdownWithComponents', () => {
describe('웹 컴포넌트 존재 확인', () => {
- it('단일 box-component가 DOM에 존재하는지 확인', async () => {
+ it('단일 card-component가 DOM에 존재하는지 확인', async () => {
// Arrange
const mdText =
- '';
+ '';
// Act
await renderMarkdownWithComponents(mdText, contentElement);
await new Promise((resolve) => setTimeout(resolve, 10));
// Assert
- const boxComponent = contentElement.querySelector('box-component');
- expect(boxComponent).toBeTruthy();
- expect(boxComponent?.tagName.toLowerCase()).toBe('box-component');
+ const cardComponent = contentElement.querySelector('card-component');
+ expect(cardComponent).toBeTruthy();
+ expect(cardComponent?.tagName.toLowerCase()).toBe('card-component');
});
it('단일 button-component가 DOM에 존재하는지 확인', async () => {
@@ -98,10 +98,10 @@ describe('renderMarkdownWithComponents', () => {
expect(buttonComponent?.tagName.toLowerCase()).toBe('button-component');
});
- it('box-component와 button-component가 모두 DOM에 존재하는지 확인', async () => {
+ it('card-component와 button-component가 모두 DOM에 존재하는지 확인', async () => {
// Arrange
const mdText = `
-
+
`;
@@ -110,37 +110,38 @@ describe('renderMarkdownWithComponents', () => {
await new Promise((resolve) => setTimeout(resolve, 10));
// Assert
- const boxComponent = contentElement.querySelector('box-component');
+ const cardComponent = contentElement.querySelector('card-component');
const buttonComponent = contentElement.querySelector('button-component');
- expect(boxComponent).toBeTruthy();
+ expect(cardComponent).toBeTruthy();
expect(buttonComponent).toBeTruthy();
expect(
- contentElement.querySelectorAll('box-component, button-component')
+ contentElement.querySelectorAll('card-component, button-component')
.length
).toBe(2);
});
});
describe('HTML 내용 검증', () => {
- it('box-component의 HTML 내용이 올바르게 렌더링되는지 확인', async () => {
+ it('card-component의 HTML 내용이 올바르게 렌더링되는지 확인', async () => {
// Arrange
const title = 'Docker 개요';
const description = 'Docker의 기본 개념';
- const mdText = ``;
+ const imgsrc = '/imgs/docker.svg';
+ const href = '/overview';
+ const mdText = ``;
// Act
await renderMarkdownWithComponents(mdText, contentElement);
await new Promise((resolve) => setTimeout(resolve, 10));
// Assert
- const boxComponent = contentElement.querySelector('box-component');
- const innerHTML = boxComponent?.innerHTML || '';
-
+ const cardComponent = contentElement.querySelector('card-component');
+ const innerHTML = cardComponent?.innerHTML || '';
expect(innerHTML).toContain(title);
expect(innerHTML).toContain(description);
- expect(innerHTML).toContain('shadow rounded bg-white');
- expect(innerHTML).toContain('href="/overview"');
+ expect(innerHTML).toContain('card');
+ expect(innerHTML).toContain(`href="${href}"`);
});
it('button-component의 HTML 내용이 올바르게 렌더링되는지 확인', async () => {
@@ -169,7 +170,7 @@ describe('renderMarkdownWithComponents', () => {
const boxDescription = 'Docker의 기본 개념';
const buttonTitle = '시작하기';
const mdText = `
-
+
`;
@@ -178,11 +179,11 @@ describe('renderMarkdownWithComponents', () => {
await new Promise((resolve) => setTimeout(resolve, 10));
// Assert
- const boxComponent = contentElement.querySelector('box-component');
+ const cardComponent = contentElement.querySelector('card-component');
const buttonComponent = contentElement.querySelector('button-component');
- expect(boxComponent?.innerHTML).toContain(boxTitle);
- expect(boxComponent?.innerHTML).toContain(boxDescription);
+ expect(cardComponent?.innerHTML).toContain(boxTitle);
+ expect(cardComponent?.innerHTML).toContain(boxDescription);
expect(buttonComponent?.innerHTML).toContain(buttonTitle);
const allContent = contentElement.innerHTML;
From b8e8626967501bab6a26ffa8972aed5c372ccd89 Mon Sep 17 00:00:00 2001
From: g1nya2 <105257807+g1nya2@users.noreply.github.com>
Date: Wed, 18 Jun 2025 00:43:11 +0900
Subject: [PATCH 10/11] Update tests/markdown.test.ts
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
tests/markdown.test.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/markdown.test.ts b/tests/markdown.test.ts
index dc4a76f..a778a7e 100644
--- a/tests/markdown.test.ts
+++ b/tests/markdown.test.ts
@@ -140,7 +140,7 @@ describe('renderMarkdownWithComponents', () => {
const innerHTML = cardComponent?.innerHTML || '';
expect(innerHTML).toContain(title);
expect(innerHTML).toContain(description);
- expect(innerHTML).toContain('card');
+ expect(cardComponent?.classList.contains('card')).toBe(true);
expect(innerHTML).toContain(`href="${href}"`);
});
From 4d2b354610cba9547beec24a7b59603a0ec6eaf8 Mon Sep 17 00:00:00 2001
From: g1nya2 <1227gh@naver.com>
Date: Wed, 18 Jun 2025 00:48:06 +0900
Subject: [PATCH 11/11] =?UTF-8?q?card-component=20=ED=85=8C=EC=8A=A4?=
=?UTF-8?q?=ED=8A=B8=EC=BD=94=EB=93=9C=20=EC=88=98=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tests/markdown.test.ts | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tests/markdown.test.ts b/tests/markdown.test.ts
index a778a7e..59c2cde 100644
--- a/tests/markdown.test.ts
+++ b/tests/markdown.test.ts
@@ -140,7 +140,8 @@ describe('renderMarkdownWithComponents', () => {
const innerHTML = cardComponent?.innerHTML || '';
expect(innerHTML).toContain(title);
expect(innerHTML).toContain(description);
- expect(cardComponent?.classList.contains('card')).toBe(true);
+ // card-component 자체가 아닌 내부에 .card 클래스를 가진 요소가 있는지 확인
+ expect(cardComponent?.querySelector('.card')).toBeTruthy();
expect(innerHTML).toContain(`href="${href}"`);
});