Skip to main content
Glama
tool-helpers.test.ts4.57 kB
/** * Unit tests for tool helper functions * Tests warning and reminder message generation functions * Tests MUST FAIL until the helper functions are implemented */ import { describe, test, expect } from '@jest/globals'; import * as toolHelpers from '../../src/utils/tool-helpers.js'; describe('Tool Helper Functions', () => { /** * T015: Unit test - Warning helper function for recurring tasks */ describe('buildRecurringWarning', () => { test('should generate warning for recurring task with deadline', () => { // Check if function exists if (typeof toolHelpers.buildRecurringWarning === 'function') { const warning = toolHelpers.buildRecurringWarning(true); expect(warning).toBeDefined(); expect(typeof warning).toBe('string'); expect(warning).toContain('recurring task'); expect(warning).toContain('deadline'); expect(warning).toContain('will not recur'); } else { // Function doesn't exist yet - test should fail expect(toolHelpers.buildRecurringWarning).toBeDefined(); } }); test('should include static deadline clarification', () => { if (typeof toolHelpers.buildRecurringWarning === 'function') { const warning = toolHelpers.buildRecurringWarning(true); expect(warning).toContain('remain static'); } else { expect(toolHelpers.buildRecurringWarning).toBeDefined(); } }); test('should be consistent across calls', () => { if (typeof toolHelpers.buildRecurringWarning === 'function') { const warning1 = toolHelpers.buildRecurringWarning(true); const warning2 = toolHelpers.buildRecurringWarning(true); expect(warning1).toBe(warning2); } else { expect(toolHelpers.buildRecurringWarning).toBeDefined(); } }); }); /** * T016: Unit test - Reminder helper function for past dates */ describe('buildPastDeadlineReminder', () => { test('should generate reminder for past deadline', () => { const pastDate = '2025-01-15'; if (typeof toolHelpers.buildPastDeadlineReminder === 'function') { const reminder = toolHelpers.buildPastDeadlineReminder(pastDate); expect(reminder).toBeDefined(); expect(typeof reminder).toBe('string'); expect(reminder).toContain(pastDate); expect(reminder).toContain('past'); } else { expect(toolHelpers.buildPastDeadlineReminder).toBeDefined(); } }); test('should include the specific date in message', () => { const testDates = ['2025-01-15', '2024-12-31', '2023-06-20']; if (typeof toolHelpers.buildPastDeadlineReminder === 'function') { testDates.forEach(date => { const reminder = toolHelpers.buildPastDeadlineReminder(date); expect(reminder).toContain(date); }); } else { expect(toolHelpers.buildPastDeadlineReminder).toBeDefined(); } }); test('should use "in the past" phrasing', () => { const pastDate = '2025-01-15'; if (typeof toolHelpers.buildPastDeadlineReminder === 'function') { const reminder = toolHelpers.buildPastDeadlineReminder(pastDate); expect(reminder).toBeDefined(); if (reminder) { expect(reminder.toLowerCase()).toContain('in the past'); } } else { expect(toolHelpers.buildPastDeadlineReminder).toBeDefined(); } }); test('should generate different messages for different dates', () => { const date1 = '2025-01-15'; const date2 = '2024-12-31'; if (typeof toolHelpers.buildPastDeadlineReminder === 'function') { const reminder1 = toolHelpers.buildPastDeadlineReminder(date1); const reminder2 = toolHelpers.buildPastDeadlineReminder(date2); expect(reminder1).not.toBe(reminder2); expect(reminder1).toContain(date1); expect(reminder2).toContain(date2); } else { expect(toolHelpers.buildPastDeadlineReminder).toBeDefined(); } }); }); /** * Additional tests for helper function integration */ describe('Helper function availability', () => { test('should export buildRecurringWarning function', () => { // This test verifies the function is exported expect('buildRecurringWarning' in toolHelpers).toBe(true); }); test('should export buildPastDeadlineReminder function', () => { // This test verifies the function is exported expect('buildPastDeadlineReminder' in toolHelpers).toBe(true); }); }); });

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/shayonpal/mcp-todoist'

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