From ebf9f7a1536e6a725e24dd3f5f130ee0c4808745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= Date: Fri, 19 Jun 2026 21:09:22 +0800 Subject: [PATCH] =?UTF-8?q?refactor(StorageCleaner):=20=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=20isRestrictedUrl=20=E5=87=BD=E6=95=B0=E5=88=B0=E7=8B=AC?= =?UTF-8?q?=E7=AB=8B=E6=A8=A1=E5=9D=97=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 isRestrictedUrl 函数从 storageCleaner 移动到 restrictedUrls 模块,优化代码结构。 - 更新相关文件以引用新的位置,移除冗余的测试用例。 --- .../StorageCleaner/__tests__/index.test.tsx | 1 - src/pages/StorageCleaner/useStorageCleaner.ts | 2 +- src/utils/__tests__/storageCleaner.test.ts | 48 +------------------ src/utils/storageCleaner.ts | 1 - 4 files changed, 2 insertions(+), 50 deletions(-) diff --git a/src/pages/StorageCleaner/__tests__/index.test.tsx b/src/pages/StorageCleaner/__tests__/index.test.tsx index bf5f345..4431570 100644 --- a/src/pages/StorageCleaner/__tests__/index.test.tsx +++ b/src/pages/StorageCleaner/__tests__/index.test.tsx @@ -12,7 +12,6 @@ vi.mock('@/utils/chromeStorage', () => ({ 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), diff --git a/src/pages/StorageCleaner/useStorageCleaner.ts b/src/pages/StorageCleaner/useStorageCleaner.ts index f4ef60c..5d5bd43 100644 --- a/src/pages/StorageCleaner/useStorageCleaner.ts +++ b/src/pages/StorageCleaner/useStorageCleaner.ts @@ -14,8 +14,8 @@ import { getOriginStorageEstimate, getServiceWorkerCount, getSessionStorageSize, - isRestrictedUrl, } from '@/utils/storageCleaner'; +import { isRestrictedUrl } from '@/utils/restrictedUrls'; import { toast } from 'sonner'; const DEFAULT_OPTIONS: StorageCleanerOptions = { diff --git a/src/utils/__tests__/storageCleaner.test.ts b/src/utils/__tests__/storageCleaner.test.ts index 9137a38..a4e9787 100644 --- a/src/utils/__tests__/storageCleaner.test.ts +++ b/src/utils/__tests__/storageCleaner.test.ts @@ -1,54 +1,8 @@ import { describe, expect, it } from 'vitest'; -import { clearCookies, isRestrictedUrl } from '@/utils/storageCleaner'; +import { clearCookies } from '@/utils/storageCleaner'; import { formatBytes } from '@/utils/format'; describe('storageCleaner utils', () => { - describe('isRestrictedUrl', () => { - it('should return true for chrome:// URLs', () => { - expect(isRestrictedUrl('chrome://settings')).toBe(true); - }); - - it('should return true for chrome-extension:// URLs', () => { - expect(isRestrictedUrl('chrome-extension://abc123/background.html')).toBe(true); - }); - - it('should return true for about:// URLs', () => { - expect(isRestrictedUrl('about:blank')).toBe(true); - }); - - it('should return true for edge:// URLs', () => { - expect(isRestrictedUrl('edge://settings')).toBe(true); - }); - - it('should return true for view-source:// URLs', () => { - expect(isRestrictedUrl('view-source:https://example.com')).toBe(true); - }); - - it('should return true for file:// URLs', () => { - expect(isRestrictedUrl('file:///path/to/file')).toBe(true); - }); - - it('should return true for data:// URLs', () => { - expect(isRestrictedUrl('data:text/html,

Hello

')).toBe(true); - }); - - it('should return false for http:// URLs', () => { - expect(isRestrictedUrl('http://example.com')).toBe(false); - }); - - it('should return false for https:// URLs', () => { - expect(isRestrictedUrl('https://example.com')).toBe(false); - }); - - it('should return true for undefined URL', () => { - expect(isRestrictedUrl(undefined)).toBe(true); - }); - - it('should return true for empty string', () => { - expect(isRestrictedUrl('')).toBe(true); - }); - }); - describe('formatBytes', () => { it('should return "0 B" for 0 bytes', () => { expect(formatBytes(0)).toBe('0 B'); diff --git a/src/utils/storageCleaner.ts b/src/utils/storageCleaner.ts index fecaf39..9c23099 100644 --- a/src/utils/storageCleaner.ts +++ b/src/utils/storageCleaner.ts @@ -1,6 +1,5 @@ import type { CleaningResult, StorageCleanerOptions, StorageCleanResult } from '@/types/storage'; import { CLEAN_OPTION_KEYS, OPTION_LABELS } from '@/pages/StorageCleaner/constants'; -export { isRestrictedUrl } from '@/utils/restrictedUrls'; export async function getCurrentTab() { // For popup pages, we need to get the active tab from the browser window that triggered the popup.