@noves/noves-sdk
Version:
Noves Developer Kit
75 lines (64 loc) • 3.65 kB
text/typescript
/**
* 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();