get-current-time.prompt.spec.tsβ’2.56 kB
import { describe, it, expect, beforeEach } from 'vitest'
import { GetCurrentTimePrompt } from './get-current-time.prompt'
describe('GetCurrentTimePrompt', () => {
let prompt: GetCurrentTimePrompt
beforeEach(() => {
prompt = new GetCurrentTimePrompt()
})
describe('execute', () => {
it('should return a prompt with description and messages', async () => {
const result = await prompt.execute({ timezone: 'America/New_York' })
expect(result).toHaveProperty('description')
expect(result).toHaveProperty('messages')
expect(result.messages).toBeInstanceOf(Array)
})
it('should have user and assistant messages', async () => {
const result = await prompt.execute({ timezone: 'Europe/London' })
expect(result.messages).toHaveLength(2)
expect(result.messages[0]).toHaveProperty('role', 'user')
expect(result.messages[1]).toHaveProperty('role', 'assistant')
})
it('should have text content in messages', async () => {
const result = await prompt.execute({ timezone: 'Asia/Tokyo' })
expect(result.messages[0].content).toHaveProperty('type', 'text')
expect(result.messages[0].content).toHaveProperty('text')
expect(result.messages[1].content).toHaveProperty('type', 'text')
expect(result.messages[1].content).toHaveProperty('text')
})
it('should include the specified timezone in the description', async () => {
const timezone = 'America/New_York'
const result = await prompt.execute({ timezone })
expect(result.description).toContain(timezone)
})
it('should include the specified timezone in messages', async () => {
const timezone = 'Europe/Paris'
const result = await prompt.execute({ timezone })
const userMessage = result.messages[0].content.text
const assistantMessage = result.messages[1].content.text
expect(userMessage).toContain(timezone)
expect(assistantMessage).toContain(timezone)
})
it('should reference the get_timezone_info tool in assistant message', async () => {
const result = await prompt.execute({ timezone: 'Asia/Singapore' })
const assistantMessage = result.messages[1].content.text
expect(assistantMessage).toContain('get_timezone_info')
})
it('should mention time components in user message', async () => {
const result = await prompt.execute({ timezone: 'America/Chicago' })
const userMessage = result.messages[0].content.text.toLowerCase()
expect(userMessage).toContain('time')
})
})
})