From 355a94d116ae7ea0e3822f8f2ba1a48edc9dd90b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E9=9C=96=E9=93=83?= Date: Wed, 10 Jun 2026 00:32:29 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=86=20formatFileSize=20?= =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=E4=B8=BA=20formatBytes=20=E5=B9=B6?= =?UTF-8?q?=E7=A7=BB=E8=87=B3=E9=80=9A=E7=94=A8=E5=B7=A5=E5=85=B7=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/DecodeResultPaper.tsx | 4 ++-- .../__tests__/DecodeResultPaper.test.tsx | 2 +- .../Base64ConverterSection.tsx | 9 ++++---- src/utils/__tests__/base64Converter.test.ts | 21 ------------------- 4 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/components/DecodeResultPaper.tsx b/src/components/DecodeResultPaper.tsx index 3984b0f..9240e76 100644 --- a/src/components/DecodeResultPaper.tsx +++ b/src/components/DecodeResultPaper.tsx @@ -9,7 +9,7 @@ */ import { Download } from 'lucide-react'; import { Button } from '@/components/ui/button'; -import { formatFileSize } from '@/utils/base64Converter'; +import { formatBytes } from '@/utils/format'; import { useI18n } from '@/utils/chromeI18n'; interface DecodeResultPaperProps { @@ -54,7 +54,7 @@ export default function DecodeResultPaper({ {t('inferredMimeType')}: {mimeType} - {t('decodedSize')}: {formatFileSize(blobSize)} + {t('decodedSize')}: {formatBytes(blobSize)} diff --git a/src/components/__tests__/DecodeResultPaper.test.tsx b/src/components/__tests__/DecodeResultPaper.test.tsx index 5d089e3..7815226 100644 --- a/src/components/__tests__/DecodeResultPaper.test.tsx +++ b/src/components/__tests__/DecodeResultPaper.test.tsx @@ -27,7 +27,7 @@ describe('DecodeResultPaper 组件', () => { expect(screen.getByText(/image\/png/)).toBeInTheDocument(); }); - it('应通过 formatFileSize 渲染文件大小', () => { + it('应通过 formatBytes 渲染文件大小', () => { render(); expect(screen.getByText(/1\.5 KB/)).toBeInTheDocument(); }); diff --git a/src/pages/Base64Converter/Base64ConverterSection.tsx b/src/pages/Base64Converter/Base64ConverterSection.tsx index 469d949..a6f4d96 100644 --- a/src/pages/Base64Converter/Base64ConverterSection.tsx +++ b/src/pages/Base64Converter/Base64ConverterSection.tsx @@ -4,7 +4,8 @@ import { useI18n } from '@/utils/chromeI18n'; import { CopyButton } from '@/components/CopyButton'; import DecodeResultPaper from '@/components/DecodeResultPaper'; import { Button } from '@/components/ui/button'; -import { downloadBlob, formatFileSize } from '@/utils/base64Converter'; +import { downloadBlob } from '@/utils/base64Converter'; +import { formatBytes } from '@/utils/format'; import { useStorageState } from '@/utils/useStorageState'; import type { Base64ConvertDirection } from '@/types/storage'; import SwitchButtonGroup from '@/components/SwitchButtonGroup'; @@ -122,7 +123,7 @@ export default function Base64ConverterSection({ mode }: Base64ConverterSectionP {info.name} - {formatFileSize(info.size)} · {info.type} + {formatBytes(info.size)} · {info.type} {t('clickOrDropToReplace')} @@ -190,14 +191,14 @@ export default function Base64ConverterSection({ mode }: Base64ConverterSectionP {t('originalSize')}:{' '} - {formatFileSize(result.originalBytes)} + {formatBytes(result.originalBytes)} | {t('encodedSize')}:{' '} - {formatFileSize(result.outputBytes)} + {formatBytes(result.outputBytes)} diff --git a/src/utils/__tests__/base64Converter.test.ts b/src/utils/__tests__/base64Converter.test.ts index b252238..95ff976 100644 --- a/src/utils/__tests__/base64Converter.test.ts +++ b/src/utils/__tests__/base64Converter.test.ts @@ -7,7 +7,6 @@ import { isSupportedImageType, isSupportedImageExtension, extractMimeTypeFromDataUri, - formatFileSize, base64ToBytes, sniffMimeFromBytes, base64ToBlob, @@ -185,26 +184,6 @@ describe('extractMimeTypeFromDataUri', () => { }); }); -describe('formatFileSize', () => { - it('应该格式化字节', () => { - expect(formatFileSize(0)).toBe('0 B'); - expect(formatFileSize(512)).toBe('512 B'); - }); - - it('应该格式化 KB', () => { - expect(formatFileSize(1024)).toBe('1.0 KB'); - expect(formatFileSize(1536)).toBe('1.5 KB'); - }); - - it('应该格式化 MB', () => { - expect(formatFileSize(1048576)).toBe('1.00 MB'); - }); - - it('应该格式化 GB', () => { - expect(formatFileSize(1073741824)).toBe('1.00 GB'); - }); -}); - describe('base64ToBytes', () => { it('应该解码标准 ASCII Base64 为字节序列', () => { const bytes = base64ToBytes('aGVsbG8=');