Yuki Takei 1 год назад
Родитель
Сommit
80e9fdad4b
1 измененных файлов с 12 добавлено и 8 удалено
  1. 12 8
      apps/app/src/client/components/PageHeader/PageTitleHeader.spec.tsx

+ 12 - 8
apps/app/src/client/components/PageHeader/PageTitleHeader.spec.tsx

@@ -1,11 +1,13 @@
 import '@testing-library/jest-dom/vitest';
 import '@testing-library/jest-dom/vitest';
 
 
+import { faker } from '@faker-js/faker';
 import type { IPagePopulatedToShowRevision } from '@growi/core';
 import type { IPagePopulatedToShowRevision } from '@growi/core';
 import {
 import {
   fireEvent, render, screen, waitFor,
   fireEvent, render, screen, waitFor,
 } from '@testing-library/react';
 } from '@testing-library/react';
 import { mock } from 'vitest-mock-extended';
 import { mock } from 'vitest-mock-extended';
 
 
+
 import { EditorMode } from '~/stores-universal/ui';
 import { EditorMode } from '~/stores-universal/ui';
 
 
 import { PageTitleHeader } from './PageTitleHeader';
 import { PageTitleHeader } from './PageTitleHeader';
@@ -32,7 +34,7 @@ describe('PageTitleHeader Component with untitled page', () => {
   it('should render the textbox correctly', async() => {
   it('should render the textbox correctly', async() => {
     // arrange
     // arrange
     const currentPage = mock<IPagePopulatedToShowRevision>({
     const currentPage = mock<IPagePopulatedToShowRevision>({
-      _id: 'dummy-id',
+      _id: faker.database.mongodbObjectId(),
       path: '/path/to/page/Untitled-1',
       path: '/path/to/page/Untitled-1',
     });
     });
 
 
@@ -63,9 +65,10 @@ describe('PageTitleHeader Component', () => {
 
 
   it('should render the title correctly', async() => {
   it('should render the title correctly', async() => {
     // arrange
     // arrange
+    const pageTitle = faker.lorem.slug();
     const currentPage = mock<IPagePopulatedToShowRevision>({
     const currentPage = mock<IPagePopulatedToShowRevision>({
-      _id: 'dummy-id',
-      path: '/path/to/page/page-title',
+      _id: faker.database.mongodbObjectId(),
+      path: `/path/to/page/${pageTitle}`,
     });
     });
 
 
     // act
     // act
@@ -73,7 +76,7 @@ describe('PageTitleHeader Component', () => {
 
 
     // assert
     // assert
     // header should be rendered
     // header should be rendered
-    const headerElement = screen.getByText('page-title');
+    const headerElement = screen.getByText(pageTitle);
     await waitFor(() => {
     await waitFor(() => {
       expect(headerElement).toBeInTheDocument();
       expect(headerElement).toBeInTheDocument();
       expect(headerElement).not.toHaveClass('invisible');
       expect(headerElement).not.toHaveClass('invisible');
@@ -85,15 +88,16 @@ describe('PageTitleHeader Component', () => {
 
 
   it('should render text input after clicking', async() => {
   it('should render text input after clicking', async() => {
     // arrange
     // arrange
+    const pageTitle = faker.lorem.slug();
     const currentPage = mock<IPagePopulatedToShowRevision>({
     const currentPage = mock<IPagePopulatedToShowRevision>({
-      _id: 'dummy-id',
-      path: '/path/to/page/page-title',
+      _id: faker.database.mongodbObjectId(),
+      path: `/path/to/page/${pageTitle}`,
     });
     });
 
 
     // act
     // act
     render(<PageTitleHeader currentPage={currentPage} />);
     render(<PageTitleHeader currentPage={currentPage} />);
 
 
-    const headerElement = screen.getByText('page-title');
+    const headerElement = screen.getByText(pageTitle);
     await waitFor(() => expect(headerElement).toBeInTheDocument());
     await waitFor(() => expect(headerElement).toBeInTheDocument());
 
 
     // click
     // click
@@ -103,7 +107,7 @@ describe('PageTitleHeader Component', () => {
     const inputElement = screen.getByRole('textbox');
     const inputElement = screen.getByRole('textbox');
     await waitFor(() => {
     await waitFor(() => {
       expect(inputElement).toBeInTheDocument();
       expect(inputElement).toBeInTheDocument();
-      expect(inputElement).toHaveValue('page-title');
+      expect(inputElement).toHaveValue(pageTitle);
       expect(headerElement).toHaveClass('invisible');
       expect(headerElement).toHaveClass('invisible');
     });
     });
   });
   });