refactor(StorageCleaner): 规范化页面组件目录结构
- 将子组件移至 components/ 子目录(OptionItem、AutoRefreshToggle、CleaningResult、StorageCleanerConfirm、StorageOptionsGrid、ErrorDisplay) - 创建 __tests__/ 目录结构 - 更新所有相关导入路径 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||||
import { fireEvent, render, screen } from '@testing-library/react';
|
import { fireEvent, render, screen } from '@testing-library/react';
|
||||||
import { StorageCleanerConfirm } from '@/pages/StorageCleaner/StorageCleanerConfirm';
|
import { StorageCleanerConfirm } from '@/pages/StorageCleaner/components/StorageCleanerConfirm';
|
||||||
import type { StorageCleanerOptions } from '@/types/storage';
|
import type { StorageCleanerOptions } from '@/types/storage';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
import { render, screen } from '@testing-library/react';
|
||||||
|
import { describe, it, expect, vi } from 'vitest';
|
||||||
|
import Index from '../index';
|
||||||
|
|
||||||
|
// Mock the chrome APIs
|
||||||
|
vi.mock('@/utils/chromeStorage', () => ({
|
||||||
|
storageUtil: {
|
||||||
|
get: vi.fn().mockResolvedValue(null),
|
||||||
|
set: vi.fn().mockResolvedValue(undefined),
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
|
vi.mock('@/utils/storageCleaner', () => ({
|
||||||
|
getCurrentTab: vi.fn().mockResolvedValue({ id: 1, url: 'https://example.com' }),
|
||||||
|
isRestrictedUrl: vi.fn().mockReturnValue(false),
|
||||||
|
getCookieSize: vi.fn().mockResolvedValue(0),
|
||||||
|
getLocalStorageSize: vi.fn().mockResolvedValue(0),
|
||||||
|
getSessionStorageSize: vi.fn().mockResolvedValue(0),
|
||||||
|
getOriginStorageEstimate: vi.fn().mockResolvedValue(0),
|
||||||
|
getCacheStorageSize: vi.fn().mockResolvedValue(0),
|
||||||
|
getServiceWorkerCount: vi.fn().mockResolvedValue(0),
|
||||||
|
clearStorage: vi.fn().mockResolvedValue({ overallSuccess: true }),
|
||||||
|
formatCleaningResult: vi.fn().mockReturnValue('Cleaned successfully'),
|
||||||
|
}));
|
||||||
|
|
||||||
|
describe('StorageCleaner 页面', () => {
|
||||||
|
it('应该渲染初始化加载状态', () => {
|
||||||
|
render(<Index />);
|
||||||
|
expect(screen.getByText(/initializing/i)).toBeInTheDocument();
|
||||||
|
});
|
||||||
|
});
|
||||||
+1
-1
@@ -2,7 +2,7 @@ import React from 'react';
|
|||||||
import { formatBytes } from '@/utils/format';
|
import { formatBytes } from '@/utils/format';
|
||||||
import { useI18n } from '@/utils/chromeI18n';
|
import { useI18n } from '@/utils/chromeI18n';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import type { StorageSizeInfo } from './useStorageCleaner';
|
import type { StorageSizeInfo } from '../useStorageCleaner';
|
||||||
import { Checkbox } from '@/components/ui/checkbox';
|
import { Checkbox } from '@/components/ui/checkbox';
|
||||||
|
|
||||||
interface OptionItemProps extends React.HTMLAttributes<HTMLDivElement> {
|
interface OptionItemProps extends React.HTMLAttributes<HTMLDivElement> {
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import type { StorageCleanerOptions } from '@/types/storage';
|
import type { StorageCleanerOptions } from '@/types/storage';
|
||||||
import type { StorageSizeInfo } from './useStorageCleaner';
|
import type { StorageSizeInfo } from '../useStorageCleaner';
|
||||||
import OptionItem from './OptionItem';
|
import OptionItem from './OptionItem';
|
||||||
import { useI18n } from '@/utils/chromeI18n';
|
import { useI18n } from '@/utils/chromeI18n';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Loader2 } from 'lucide-react';
|
import { Loader2 } from 'lucide-react';
|
||||||
import { Button } from '@/components/ui/button';
|
import { Button } from '@/components/ui/button';
|
||||||
import StorageCleanerConfirm from './StorageCleanerConfirm';
|
import StorageCleanerConfirm from './components/StorageCleanerConfirm';
|
||||||
import { useStorageCleaner } from './useStorageCleaner';
|
import { useStorageCleaner } from './useStorageCleaner';
|
||||||
import StorageOptionsGrid from './StorageOptionsGrid';
|
import StorageOptionsGrid from './components/StorageOptionsGrid';
|
||||||
import AutoRefreshToggle from './AutoRefreshToggle';
|
import AutoRefreshToggle from './components/AutoRefreshToggle';
|
||||||
import ErrorDisplay from './ErrorDisplay';
|
import ErrorDisplay from './components/ErrorDisplay';
|
||||||
import CleaningResult from './CleaningResult';
|
import CleaningResult from './components/CleaningResult';
|
||||||
import { useI18n } from '@/utils/chromeI18n';
|
import { useI18n } from '@/utils/chromeI18n';
|
||||||
|
|
||||||
export default function Index() {
|
export default function Index() {
|
||||||
|
|||||||
Reference in New Issue
Block a user