import { tap, expect } from '@push.rocks/tapbundle'; import * as smartai from '../ts/index.js'; // Test research method stubs for providers without full implementation // These providers have research methods that throw "not yet supported" errors tap.test('Research Stubs: Perplexity provider should have research method', async () => { const perplexityProvider = new smartai.PerplexityProvider({ perplexityToken: 'test-token' }); // Perplexity has a basic implementation with Sonar models expect(typeof perplexityProvider.research).toEqual('function'); }); tap.test('Research Stubs: Groq provider should throw not supported error', async () => { const groqProvider = new smartai.GroqProvider({ groqToken: 'test-token' }); expect(typeof groqProvider.research).toEqual('function'); let errorCaught = false; try { await groqProvider.research({ query: 'test' }); } catch (error) { errorCaught = true; expect(error.message).toInclude('not yet supported'); } expect(errorCaught).toBeTrue(); }); tap.test('Research Stubs: Ollama provider should throw not supported error', async () => { const ollamaProvider = new smartai.OllamaProvider({}); expect(typeof ollamaProvider.research).toEqual('function'); let errorCaught = false; try { await ollamaProvider.research({ query: 'test' }); } catch (error) { errorCaught = true; expect(error.message).toInclude('not yet supported'); } expect(errorCaught).toBeTrue(); }); tap.test('Research Stubs: xAI provider should throw not supported error', async () => { const xaiProvider = new smartai.XAIProvider({ xaiToken: 'test-token' }); expect(typeof xaiProvider.research).toEqual('function'); let errorCaught = false; try { await xaiProvider.research({ query: 'test' }); } catch (error) { errorCaught = true; expect(error.message).toInclude('not yet supported'); } expect(errorCaught).toBeTrue(); }); tap.test('Research Stubs: Exo provider should throw not supported error', async () => { const exoProvider = new smartai.ExoProvider({}); expect(typeof exoProvider.research).toEqual('function'); let errorCaught = false; try { await exoProvider.research({ query: 'test' }); } catch (error) { errorCaught = true; expect(error.message).toInclude('not yet supported'); } expect(errorCaught).toBeTrue(); }); export default tap.start();