From ad46b91b3bca605ccd1559aeb2668b543750519e Mon Sep 17 00:00:00 2001 From: Chesterkxng Date: Wed, 10 Jul 2024 16:49:55 +0000 Subject: [PATCH] toUppercase tool, testCases and updated index file --- src/pages/string/index.ts | 1 + src/pages/string/uppercase/index.tsx | 11 ++++++ src/pages/string/uppercase/meta.ts | 13 +++++++ src/pages/string/uppercase/service.ts | 3 ++ .../uppercase/uppercase.service.test.ts | 34 +++++++++++++++++++ 5 files changed, 62 insertions(+) create mode 100644 src/pages/string/uppercase/index.tsx create mode 100644 src/pages/string/uppercase/meta.ts create mode 100644 src/pages/string/uppercase/service.ts create mode 100644 src/pages/string/uppercase/uppercase.service.test.ts diff --git a/src/pages/string/index.ts b/src/pages/string/index.ts index 1ea0627..bc988ea 100644 --- a/src/pages/string/index.ts +++ b/src/pages/string/index.ts @@ -1,3 +1,4 @@ +import { tool as stringUppercase } from './uppercase/meta'; import { tool as stringExtractSubstring } from './extract-substring/meta'; import { tool as stringCreatePalindrome } from './create-palindrome/meta'; import { tool as stringPalindrome } from './palindrome/meta'; diff --git a/src/pages/string/uppercase/index.tsx b/src/pages/string/uppercase/index.tsx new file mode 100644 index 0000000..727cc03 --- /dev/null +++ b/src/pages/string/uppercase/index.tsx @@ -0,0 +1,11 @@ +import { Box } from '@mui/material'; +import React from 'react'; +import * as Yup from 'yup'; + +const initialValues = {}; +const validationSchema = Yup.object({ + // splitSeparator: Yup.string().required('The separator is required') +}); +export default function Uppercase() { + return Lorem ipsum; +} \ No newline at end of file diff --git a/src/pages/string/uppercase/meta.ts b/src/pages/string/uppercase/meta.ts new file mode 100644 index 0000000..014f2cd --- /dev/null +++ b/src/pages/string/uppercase/meta.ts @@ -0,0 +1,13 @@ +import { defineTool } from '@tools/defineTool'; +import { lazy } from 'react'; +// import image from '@assets/text.png'; + +export const tool = defineTool('string', { + name: 'Uppercase', + path: 'uppercase', + // image, + description: '', + shortDescription: '', + keywords: ['uppercase'], + component: lazy(() => import('./index')) +}); \ No newline at end of file diff --git a/src/pages/string/uppercase/service.ts b/src/pages/string/uppercase/service.ts new file mode 100644 index 0000000..3bfecff --- /dev/null +++ b/src/pages/string/uppercase/service.ts @@ -0,0 +1,3 @@ +export function toUppercase(input: string): string { + return input.toUpperCase(); +} \ No newline at end of file diff --git a/src/pages/string/uppercase/uppercase.service.test.ts b/src/pages/string/uppercase/uppercase.service.test.ts new file mode 100644 index 0000000..4392ca6 --- /dev/null +++ b/src/pages/string/uppercase/uppercase.service.test.ts @@ -0,0 +1,34 @@ +import { expect, describe, it } from 'vitest'; +import { toUppercase } from './service'; + +describe('toUppercase', () => { + test('should convert a lowercase string to uppercase', () => { + const input = 'hello'; + const result = toUppercase(input); + expect(result).toBe('HELLO'); + }); + + test('should convert a mixed case string to uppercase', () => { + const input = 'HeLLo WoRLd'; + const result = toUppercase(input); + expect(result).toBe('HELLO WORLD'); + }); + + test('should convert an already uppercase string to uppercase', () => { + const input = 'HELLO'; + const result = toUppercase(input); + expect(result).toBe('HELLO'); + }); + + test('should handle an empty string', () => { + const input = ''; + const result = toUppercase(input); + expect(result).toBe(''); + }); + + test('should handle a string with numbers and symbols', () => { + const input = '123 hello! @world'; + const result = toUppercase(input); + expect(result).toBe('123 HELLO! @WORLD'); + }); +}); \ No newline at end of file