Skip to main content
Glama
pshempel

MCP Time Server Node

by pshempel
addTime-formatting.test.ts4.99 kB
import { formatAddTimeResult } from '../../src/tools/addTime'; import type { AddTimeParams } from '../../src/types'; describe('addTime result formatting helper', () => { describe('formatAddTimeResult', () => { const baseDate = new Date('2021-01-01T00:00:00.000Z'); const resultDate = new Date('2021-01-02T00:00:00.000Z'); it('should format Unix timestamp without timezone parameter', () => { const params: AddTimeParams = { time: '1609459200', amount: 1, unit: 'days' }; const parseInfo = { date: baseDate, displayTimezone: 'UTC', hasExplicitOffset: false, explicitOffset: '', }; const result = formatAddTimeResult(baseDate, resultDate, '1609459200', params, parseInfo); expect(result.original).toBe('2021-01-01T00:00:00.000Z'); expect(result.result).toBe('2021-01-02T00:00:00.000Z'); }); it('should format Unix timestamp with timezone parameter', () => { const params: AddTimeParams = { time: '1609459200', amount: 1, unit: 'days', timezone: 'America/New_York', }; const parseInfo = { date: baseDate, displayTimezone: 'America/New_York', hasExplicitOffset: false, explicitOffset: '', }; const result = formatAddTimeResult(baseDate, resultDate, '1609459200', params, parseInfo); expect(result.original).toContain('2020-12-31'); expect(result.original).toContain('19:00:00'); expect(result.result).toContain('2021-01-01'); expect(result.result).toContain('19:00:00'); }); it('should format ISO string with Z suffix', () => { const params: AddTimeParams = { time: '2021-01-01T00:00:00.000Z', amount: 1, unit: 'days', }; const parseInfo = { date: baseDate, displayTimezone: 'UTC', hasExplicitOffset: false, explicitOffset: '', }; const result = formatAddTimeResult( baseDate, resultDate, '2021-01-01T00:00:00.000Z', params, parseInfo ); expect(result.original).toBe('2021-01-01T00:00:00.000Z'); expect(result.result).toBe('2021-01-02T00:00:00.000Z'); }); it('should format string with explicit offset', () => { const params: AddTimeParams = { time: '2021-01-01T00:00:00.000+05:00', amount: 1, unit: 'days', }; const parseInfo = { date: new Date('2020-12-31T19:00:00.000Z'), displayTimezone: 'America/New_York', hasExplicitOffset: true, explicitOffset: '+05:00', }; const result = formatAddTimeResult( new Date('2020-12-31T19:00:00.000Z'), new Date('2021-01-01T19:00:00.000Z'), '2021-01-01T00:00:00.000+05:00', params, parseInfo ); expect(result.original).toBe('2021-01-01T00:00:00.000+05:00'); expect(result.result).toBe('2021-01-02T00:00:00.000+05:00'); }); it('should format local time string', () => { const params: AddTimeParams = { time: '2021-01-01T00:00:00', amount: 1, unit: 'days', timezone: 'America/New_York', }; const parseInfo = { date: new Date('2021-01-01T05:00:00.000Z'), displayTimezone: 'America/New_York', hasExplicitOffset: false, explicitOffset: '', }; const result = formatAddTimeResult( new Date('2021-01-01T05:00:00.000Z'), new Date('2021-01-02T05:00:00.000Z'), '2021-01-01T00:00:00', params, parseInfo ); expect(result.original).toContain('2021-01-01T00:00:00'); expect(result.result).toContain('2021-01-02T00:00:00'); }); it('should include Unix timestamps in result', () => { const params: AddTimeParams = { time: '2021-01-01T00:00:00.000Z', amount: 1, unit: 'days', }; const parseInfo = { date: baseDate, displayTimezone: 'UTC', hasExplicitOffset: false, explicitOffset: '', }; const result = formatAddTimeResult( baseDate, resultDate, '2021-01-01T00:00:00.000Z', params, parseInfo ); expect(result.unix_original).toBe(1609459200); expect(result.unix_result).toBe(1609545600); }); describe('Debug logging', () => { it('should log formatting attempts', () => { const params: AddTimeParams = { time: '2021-01-01T00:00:00.000Z', amount: 1, unit: 'days', }; const parseInfo = { date: baseDate, displayTimezone: 'UTC', hasExplicitOffset: false, explicitOffset: '', }; const result = formatAddTimeResult( baseDate, resultDate, '2021-01-01T00:00:00.000Z', params, parseInfo ); expect(result).toBeDefined(); }); }); }); });

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/pshempel/mcp-time-server-node'

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