93 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { tap, expect } from '@push.rocks/tapbundle';
 | 
						|
import * as smartai from '../ts/index.js';
 | 
						|
 | 
						|
// Basic instantiation tests that don't require API tokens
 | 
						|
// These tests can run in CI/CD environments without credentials
 | 
						|
 | 
						|
tap.test('Basic: should create SmartAi instance', async () => {
 | 
						|
  const testSmartai = new smartai.SmartAi({
 | 
						|
    openaiToken: 'dummy-token-for-testing'
 | 
						|
  });
 | 
						|
  expect(testSmartai).toBeInstanceOf(smartai.SmartAi);
 | 
						|
  // Provider is only created after calling start()
 | 
						|
  expect(testSmartai.options.openaiToken).toEqual('dummy-token-for-testing');
 | 
						|
});
 | 
						|
 | 
						|
tap.test('Basic: should instantiate OpenAI provider', async () => {
 | 
						|
  const openaiProvider = new smartai.OpenAiProvider({
 | 
						|
    openaiToken: 'dummy-token'
 | 
						|
  });
 | 
						|
  expect(openaiProvider).toBeInstanceOf(smartai.OpenAiProvider);
 | 
						|
  expect(typeof openaiProvider.chat).toEqual('function');
 | 
						|
  expect(typeof openaiProvider.audio).toEqual('function');
 | 
						|
  expect(typeof openaiProvider.vision).toEqual('function');
 | 
						|
  expect(typeof openaiProvider.document).toEqual('function');
 | 
						|
  expect(typeof openaiProvider.research).toEqual('function');
 | 
						|
});
 | 
						|
 | 
						|
tap.test('Basic: should instantiate Anthropic provider', async () => {
 | 
						|
  const anthropicProvider = new smartai.AnthropicProvider({
 | 
						|
    anthropicToken: 'dummy-token'
 | 
						|
  });
 | 
						|
  expect(anthropicProvider).toBeInstanceOf(smartai.AnthropicProvider);
 | 
						|
  expect(typeof anthropicProvider.chat).toEqual('function');
 | 
						|
  expect(typeof anthropicProvider.audio).toEqual('function');
 | 
						|
  expect(typeof anthropicProvider.vision).toEqual('function');
 | 
						|
  expect(typeof anthropicProvider.document).toEqual('function');
 | 
						|
  expect(typeof anthropicProvider.research).toEqual('function');
 | 
						|
});
 | 
						|
 | 
						|
tap.test('Basic: should instantiate Perplexity provider', async () => {
 | 
						|
  const perplexityProvider = new smartai.PerplexityProvider({
 | 
						|
    perplexityToken: 'dummy-token'
 | 
						|
  });
 | 
						|
  expect(perplexityProvider).toBeInstanceOf(smartai.PerplexityProvider);
 | 
						|
  expect(typeof perplexityProvider.chat).toEqual('function');
 | 
						|
  expect(typeof perplexityProvider.research).toEqual('function');
 | 
						|
});
 | 
						|
 | 
						|
tap.test('Basic: should instantiate Groq provider', async () => {
 | 
						|
  const groqProvider = new smartai.GroqProvider({
 | 
						|
    groqToken: 'dummy-token'
 | 
						|
  });
 | 
						|
  expect(groqProvider).toBeInstanceOf(smartai.GroqProvider);
 | 
						|
  expect(typeof groqProvider.chat).toEqual('function');
 | 
						|
  expect(typeof groqProvider.research).toEqual('function');
 | 
						|
});
 | 
						|
 | 
						|
tap.test('Basic: should instantiate Ollama provider', async () => {
 | 
						|
  const ollamaProvider = new smartai.OllamaProvider({
 | 
						|
    baseUrl: 'http://localhost:11434'
 | 
						|
  });
 | 
						|
  expect(ollamaProvider).toBeInstanceOf(smartai.OllamaProvider);
 | 
						|
  expect(typeof ollamaProvider.chat).toEqual('function');
 | 
						|
  expect(typeof ollamaProvider.research).toEqual('function');
 | 
						|
});
 | 
						|
 | 
						|
tap.test('Basic: should instantiate xAI provider', async () => {
 | 
						|
  const xaiProvider = new smartai.XAIProvider({
 | 
						|
    xaiToken: 'dummy-token'
 | 
						|
  });
 | 
						|
  expect(xaiProvider).toBeInstanceOf(smartai.XAIProvider);
 | 
						|
  expect(typeof xaiProvider.chat).toEqual('function');
 | 
						|
  expect(typeof xaiProvider.research).toEqual('function');
 | 
						|
});
 | 
						|
 | 
						|
tap.test('Basic: should instantiate Exo provider', async () => {
 | 
						|
  const exoProvider = new smartai.ExoProvider({
 | 
						|
    exoBaseUrl: 'http://localhost:8000'
 | 
						|
  });
 | 
						|
  expect(exoProvider).toBeInstanceOf(smartai.ExoProvider);
 | 
						|
  expect(typeof exoProvider.chat).toEqual('function');
 | 
						|
  expect(typeof exoProvider.research).toEqual('function');
 | 
						|
});
 | 
						|
 | 
						|
tap.test('Basic: all providers should extend MultiModalModel', async () => {
 | 
						|
  const openai = new smartai.OpenAiProvider({ openaiToken: 'test' });
 | 
						|
  const anthropic = new smartai.AnthropicProvider({ anthropicToken: 'test' });
 | 
						|
 | 
						|
  expect(openai).toBeInstanceOf(smartai.MultiModalModel);
 | 
						|
  expect(anthropic).toBeInstanceOf(smartai.MultiModalModel);
 | 
						|
});
 | 
						|
 | 
						|
export default tap.start(); |