Skip to main content
Glama
createLocale.test.ts3.77 kB
import { describe, it, expect } from 'vitest'; import { mockArgs, testLocale, mockLocaleCreate } from './mockClient.js'; import { createLocaleTool } from './createLocale.js'; import { createToolClient } from '../../utils/tools.js'; import { formatResponse } from '../../utils/formatters.js'; import { createMockConfig } from '../../test-helpers/mockConfig.js'; describe('createLocale', () => { const mockConfig = createMockConfig(); it('should create a locale successfully with default values', async () => { const testArgs = { ...mockArgs, name: 'Test Loc2ale', code: 'en-US', fallbackCode: null, contentDeliveryApi: true, contentManagementApi: true, default: false, optional: false, }; mockLocaleCreate.mockResolvedValue(testLocale); const tool = createLocaleTool(mockConfig); const result = await tool(testArgs); expect(createToolClient).toHaveBeenCalledWith(mockConfig, testArgs); expect(mockLocaleCreate).toHaveBeenCalledWith( { spaceId: testArgs.spaceId, environmentId: testArgs.environmentId, }, { name: testArgs.name, code: testArgs.code, fallbackCode: testArgs.fallbackCode, contentDeliveryApi: true, contentManagementApi: true, optional: false, }, ); const expectedResponse = formatResponse('Locale created successfully', { newLocale: testLocale, }); expect(result).toEqual({ content: [ { type: 'text', text: expectedResponse, }, ], }); }); it('should create a locale successfully with all parameters', async () => { const testArgs = { ...mockArgs, name: 'German (Germany)', code: 'de-DE', fallbackCode: 'en-US', contentDeliveryApi: false, contentManagementApi: false, default: true, optional: true, }; const mockCreatedLocale = { ...testLocale, name: testArgs.name, code: testArgs.code, fallbackCode: testArgs.fallbackCode, default: testArgs.default, optional: testArgs.optional, }; mockLocaleCreate.mockResolvedValue(mockCreatedLocale); const tool = createLocaleTool(mockConfig); const result = await tool(testArgs); expect(createToolClient).toHaveBeenCalledWith(mockConfig, testArgs); expect(mockLocaleCreate).toHaveBeenCalledWith( { spaceId: testArgs.spaceId, environmentId: testArgs.environmentId, }, { name: testArgs.name, code: testArgs.code, fallbackCode: testArgs.fallbackCode, contentDeliveryApi: testArgs.contentDeliveryApi, contentManagementApi: testArgs.contentManagementApi, optional: testArgs.optional, }, ); const expectedResponse = formatResponse('Locale created successfully', { newLocale: mockCreatedLocale, }); expect(result).toEqual({ content: [ { type: 'text', text: expectedResponse, }, ], }); }); it('should handle errors when locale creation fails', async () => { const testArgs = { ...mockArgs, name: 'Invalid Locale', code: 'invalid-code', fallbackCode: null, contentDeliveryApi: true, contentManagementApi: true, default: false, optional: false, }; const error = new Error('Validation error'); mockLocaleCreate.mockRejectedValue(error); const tool = createLocaleTool(mockConfig); const result = await tool(testArgs); expect(result).toEqual({ isError: true, content: [ { type: 'text', text: 'Error creating locale: Validation error', }, ], }); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/contentful/contentful-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server