From 59a2df6c2a5fa99c1447eb8c98664303da9260ab Mon Sep 17 00:00:00 2001 From: steven-yn Date: Wed, 8 Nov 2023 02:03:15 +0900 Subject: [PATCH] =?UTF-8?q?add:=20iconResourceSrcFormat=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/composable/Icon/Icon.test.tsx | 2 +- src/composable/Icon/Icon.tsx | 2 +- .../{ => string}/iconResourceSrcFormat.ts | 2 +- src/utils/string/string.test.ts | 21 +++++++++++++++++++ 4 files changed, 24 insertions(+), 3 deletions(-) rename src/utils/{ => string}/iconResourceSrcFormat.ts (85%) diff --git a/src/composable/Icon/Icon.test.tsx b/src/composable/Icon/Icon.test.tsx index 048b035..c78ddae 100644 --- a/src/composable/Icon/Icon.test.tsx +++ b/src/composable/Icon/Icon.test.tsx @@ -6,9 +6,9 @@ import { iconCompanyTokens, iconStateTokens, } from '@/mock/iconTokens.mock'; -import iconResourceSrcFormat from '@/utils/iconResourceSrcFormat'; import { randomIndex, randomOneNumber } from '@/utils/number/random'; import capitalizeFirstLetter from '@/utils/string/capitalizeFirstLetter'; +import iconResourceSrcFormat from '@/utils/string/iconResourceSrcFormat'; import Icon from './Icon'; describe('Icon 컴포넌트', () => { diff --git a/src/composable/Icon/Icon.tsx b/src/composable/Icon/Icon.tsx index 307a065..6273985 100644 --- a/src/composable/Icon/Icon.tsx +++ b/src/composable/Icon/Icon.tsx @@ -1,7 +1,7 @@ import Image, { ImageProps } from 'next/image'; import React from 'react'; import { ASSET_ENDPOINT } from '@/const/endpoint'; -import iconResourceSrcFormat from '@/utils/iconResourceSrcFormat'; +import iconResourceSrcFormat from '@/utils/string/iconResourceSrcFormat'; type ModifiedImageProps = Omit; type Props = ODSIconTokenInterface & diff --git a/src/utils/iconResourceSrcFormat.ts b/src/utils/string/iconResourceSrcFormat.ts similarity index 85% rename from src/utils/iconResourceSrcFormat.ts rename to src/utils/string/iconResourceSrcFormat.ts index 4813c16..1fa851c 100644 --- a/src/utils/iconResourceSrcFormat.ts +++ b/src/utils/string/iconResourceSrcFormat.ts @@ -1,4 +1,4 @@ -import capitalizeFirstLetter from './string/capitalizeFirstLetter'; +import capitalizeFirstLetter from './capitalizeFirstLetter'; const iconResourceSrcFormat = ({ company, diff --git a/src/utils/string/string.test.ts b/src/utils/string/string.test.ts index e540163..47da6ba 100644 --- a/src/utils/string/string.test.ts +++ b/src/utils/string/string.test.ts @@ -1,4 +1,5 @@ import capitalizeFirstLetter from './capitalizeFirstLetter'; +import iconResourceSrcFormat from './iconResourceSrcFormat'; import replaceAll from './replaceAll'; describe('string', () => { @@ -101,4 +102,24 @@ describe('string', () => { expect(replaceAll(original, 'dog', 'cat')).toBe(replaced); }); }); + + describe('iconResourceSrcFormat', () => { + it('should format the icon resource source correctly', () => { + const mockIconToken: ODSIconTokenInterface = { + company: 'GOOGLE', + color: 'BRAND', + background: 'CIRCULAR', + state: 'HOVER', + }; + + const expectedOutput = encodeURIComponent( + 'Company=Google, Color=Brand, Background=Circular, State=Hover', + ); + + const result = iconResourceSrcFormat(mockIconToken); + expect(result).toBe(expectedOutput); + }); + + // You can add more tests to cover other cases, such as different capitalizations, empty strings, etc. + }); });