mirror of
https://github.com/numexai/numex-sdk.git
synced 2026-09-25 13:32:15 +00:00
62 lines
2.8 KiB
JavaScript
62 lines
2.8 KiB
JavaScript
|
|
const assert = require('assert');
|
|||
|
|
const { Numex, NumexBridge } = require('../src/index');
|
|||
|
|
|
|||
|
|
async function runTests() {
|
|||
|
|
console.log('🧪 Numex SDK & CLI Bridge Testleri Başlatılıyor...\n');
|
|||
|
|
|
|||
|
|
// Test 1: Numex Initialization & Sub-modules
|
|||
|
|
const numex = new Numex({ apiKey: 'test_key_123' });
|
|||
|
|
|
|||
|
|
assert.ok(numex.chat, 'Chat modülü mevcut olmalı');
|
|||
|
|
assert.ok(numex.images, 'Images modülü mevcut olmalı');
|
|||
|
|
assert.ok(numex.embeddings, 'Embeddings modülü mevcut olmalı');
|
|||
|
|
assert.ok(numex.models, 'Models modülü mevcut olmalı');
|
|||
|
|
assert.ok(numex.search, 'Search modülü mevcut olmalı');
|
|||
|
|
assert.ok(numex.cli, 'CLI bridge nesnesi mevcut olmalı');
|
|||
|
|
assert.strictEqual(typeof numex.run, 'function', 'numex.run metodu fonksiyon olmalı');
|
|||
|
|
|
|||
|
|
console.log('✅ Test 1: Numex SDK başarıyla başlatıldı ve modüller doğrulandı.');
|
|||
|
|
|
|||
|
|
// Test 2: Numex.run metodu ve komut yapılandırma testi
|
|||
|
|
assert.strictEqual(typeof numex.run, 'function', 'numex.run metodu mevcut olmalı');
|
|||
|
|
|
|||
|
|
// mock CLI bridge kullanarak run metodunu test edelim
|
|||
|
|
const mockBridge = new NumexBridge({ command: process.execPath });
|
|||
|
|
const nodeVersionResult = await mockBridge.run(['-v']);
|
|||
|
|
assert.strictEqual(nodeVersionResult.success, true, 'Node -v komutu başarılı olmalı');
|
|||
|
|
assert.ok(nodeVersionResult.stdout.includes('v'), 'stdout Node sürümünü içermeli');
|
|||
|
|
|
|||
|
|
console.log('✅ Test 2: numex.run metodu ve NumexBridge programatik çalıştırma doğrulandı.');
|
|||
|
|
|
|||
|
|
// Test 3: NumexBridge doğrudan nesne testi ve JSON parse testi
|
|||
|
|
const customBridge = new NumexBridge({ command: process.execPath });
|
|||
|
|
const jsonTestResult = await customBridge.run([
|
|||
|
|
'-e',
|
|||
|
|
'console.log("some log"); console.log(JSON.stringify({ status: "ok", count: 42 }));'
|
|||
|
|
]);
|
|||
|
|
|
|||
|
|
assert.strictEqual(jsonTestResult.success, true, 'Custom bridge çalıştırma başarılı olmalı');
|
|||
|
|
assert.deepStrictEqual(jsonTestResult.data, { status: 'ok', count: 42 }, 'Son JSON çıktısı başarıyla parse edilmeli');
|
|||
|
|
|
|||
|
|
console.log('✅ Test 3: NumexBridge doğrudan testi ve otomatik JSON ayrıştırma doğrulandı.');
|
|||
|
|
|
|||
|
|
// Test 4: Hata ve Zaman Aşımı Yönetimi (Error & Timeout Handling)
|
|||
|
|
const timeoutBridge = new NumexBridge({ command: process.execPath });
|
|||
|
|
const timeoutResult = await timeoutBridge.run(
|
|||
|
|
['-e', 'setTimeout(() => {}, 10000);'],
|
|||
|
|
{ timeout: 300 }
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
assert.strictEqual(timeoutResult.success, false, 'Zaman aşımı sonrası success: false dönmeli');
|
|||
|
|
assert.ok(timeoutResult.error.includes('zaman aşımı'), 'Hata mesajı zaman aşımını belirtmeli');
|
|||
|
|
|
|||
|
|
console.log('✅ Test 4: Güvenli hata ve zaman aşımı (timeout) yönetimi doğrulandı.');
|
|||
|
|
|
|||
|
|
console.log('\n🎉 TÜM TESTLER BAŞARIYLA TAMAMLANDI!');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
runTests().catch((err) => {
|
|||
|
|
console.error('❌ Test başarısız:', err);
|
|||
|
|
process.exit(1);
|
|||
|
|
});
|