explore-timezones.prompt.spec.tsβ’1.92 kB
import { describe, it, expect, beforeEach } from 'vitest'
import { ExploreTimezonesPrompt } from './explore-timezones.prompt'
describe('ExploreTimezonesPrompt', () => {
let prompt: ExploreTimezonesPrompt
beforeEach(() => {
prompt = new ExploreTimezonesPrompt()
})
describe('execute', () => {
it('should return a prompt with description and messages', async () => {
const result = await prompt.execute()
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()
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()
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 mention exploring timezones in the user message', async () => {
const result = await prompt.execute()
const userMessage = result.messages[0].content.text
expect(userMessage.toLowerCase()).toContain('explore')
expect(userMessage.toLowerCase()).toContain('timezone')
})
it('should reference the get_regions and get_cities tools in assistant message', async () => {
const result = await prompt.execute()
const assistantMessage = result.messages[1].content.text
expect(assistantMessage).toContain('get_regions')
expect(assistantMessage).toContain('get_cities')
})
})
})