UNPKG

@noves/noves-sdk

Version:
75 lines (64 loc) 3.65 kB
/** * Noves SDK v1.5.0 — Pre-Release Validation Suite * * Runs all integration tests against LIVE APIs using the built SDK (dist/) * to simulate the experience of an external user. * * Usage: * NOVES_API_KEY=<key> npx ts-node release-tests/run-all.ts * * What's tested: * * NEW in 1.5.0: * - Move Translate API (getChains, getTransactionTypes, getTransaction, getTransactions) * - UTXO v5 Format Support (v5Format in getTransactions, txTypeVersion in getTransaction) * - TVM viewAsAccountAddress (getTransaction with perspective parameter) * - FetchConfig (timeout, AbortSignal, custom headers, combined usage) * * Regression (core existing features): * - Translate APIs: EVM, SVM, UTXO, Cosmos, TVM, Polkadot, XRPL * - Pricing APIs: EVM, SVM, UTXO, Move, Cosmos * - Foresight API: getChains, describe * - Pagination: next, previous, async iteration, cursor roundtrip * - Retry mechanism: presets, builder, recommendations, factory integration * - Exports: types, classes, enums, utilities */ import { testMoveTranslate } from './test-new-move-translate'; import { testUTXOv5Format } from './test-new-utxo-v5'; import { testTVMViewAs } from './test-new-tvm-viewas'; import { testFetchConfig } from './test-new-fetchconfig'; import { testCoreTranslate } from './test-core-translate'; import { testCorePricing } from './test-core-pricing'; import { testCoreForesight } from './test-core-foresight'; import { testCorePagination } from './test-core-pagination'; import { testCoreRetry } from './test-core-retry'; import { summary } from './helpers'; async function main() { console.log('\n'); console.log('╔══════════════════════════════════════════════════════════╗'); console.log('║ Noves SDK v1.5.0 — Pre-Release Validation ║'); console.log('║ Testing against LIVE APIs as external user ║'); console.log('╚══════════════════════════════════════════════════════════╝'); if (!process.env.NOVES_API_KEY) { console.error('\n ERROR: NOVES_API_KEY environment variable is required.'); console.error(' Usage: NOVES_API_KEY=<key> npx ts-node release-tests/run-all.ts\n'); process.exit(1); } const startTime = Date.now(); // ---- NEW 1.5.0 features ---- try { await testMoveTranslate(); } catch (e) { console.error(' SUITE ERROR (Move Translate):', e); } try { await testUTXOv5Format(); } catch (e) { console.error(' SUITE ERROR (UTXO v5):', e); } try { await testTVMViewAs(); } catch (e) { console.error(' SUITE ERROR (TVM viewAs):', e); } try { await testFetchConfig(); } catch (e) { console.error(' SUITE ERROR (FetchConfig):', e); } // ---- Regression: core features ---- try { await testCoreTranslate(); } catch (e) { console.error(' SUITE ERROR (Core Translate):', e); } try { await testCorePricing(); } catch (e) { console.error(' SUITE ERROR (Core Pricing):', e); } try { await testCoreForesight(); } catch (e) { console.error(' SUITE ERROR (Core Foresight):', e); } try { await testCorePagination(); } catch (e) { console.error(' SUITE ERROR (Core Pagination):', e); } try { await testCoreRetry(); } catch (e) { console.error(' SUITE ERROR (Core Retry):', e); } const elapsed = ((Date.now() - startTime) / 1000).toFixed(1); console.log(`\n Total time: ${elapsed}s`); const failures = summary(); process.exit(failures > 0 ? 1 : 0); } main();