MCP Helius
by dcSpark
- tests
import { test, describe } from 'node:test';
import assert from 'node:assert';
import { PublicKey } from '@solana/web3.js';
// Mock PublicKey from @solana/web3.js
const originalPublicKey = PublicKey;
global.PublicKey = function(value) {
if (value === 'invalid-public-key' || value === 'invalid-token-address' || value === 'invalid-program-id') {
throw new Error('Invalid public key');
}
this.value = value;
this.toString = function() {
return this.value;
};
return this;
};
global.PublicKey.prototype = Object.create(originalPublicKey.prototype);
global.PublicKey.prototype.constructor = global.PublicKey;
// Set environment variables for testing
process.env.HELIUS_API_KEY = 'test-api-key';
process.env.TEST_MODE = 'true';
// Import all handlers using the namespace import
import * as helius from '../build/handlers/helius.js';
// Valid test values
const VALID_PUBLIC_KEY = 'GsbwXfJraMomNxBcjK7xK2xQx5MQgQx8Kb71Wkgwq1Bi';
const VALID_ASSET_ID = 'AssetR1cUu5tNubCzitKAoEKLCKmRjWxWZTp32JzNrNsA';
const VALID_TRANSACTION = 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDAQZzb2xhbmEBAgEEAQICAQwCAAAAAODjOwAAAAAA';
const VALID_INSTRUCTION = 'AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQMBBnNvbGFuYQECBQECAgEMAgAAAADg4zsAAAAAAA==';
describe('Helius RPC Handlers Tests', () => {
// Basic Methods Tests
describe('getBalanceHandler', () => {
test('should return error for invalid public key', async () => {
const result = await helius.getBalanceHandler({ publicKey: 'invalid-public-key' });
assert.strictEqual(result.content[0].type, 'text');
assert.strictEqual(result.isError, true);
assert.strictEqual(result.content[0].text.includes('Invalid public key'), true);
});
});
describe('executeJupiterSwapHandler', () => {
test('should execute Jupiter swap', async () => {
const result = await helius.executeJupiterSwapHandler({
inputMint: VALID_PUBLIC_KEY,
outputMint: VALID_PUBLIC_KEY,
amount: 1000000,
maxDynamicSlippageBps: 100,
signer: VALID_PUBLIC_KEY
});
assert.strictEqual(result.content[0].type, 'text');
assert.strictEqual(result.isError, false);
assert.strictEqual(result.content[0].text.includes('Jupiter swap executed:'), true);
});
test('should return error for invalid signer', async () => {
const result = await helius.executeJupiterSwapHandler({
inputMint: VALID_PUBLIC_KEY,
outputMint: VALID_PUBLIC_KEY,
amount: 1000000,
maxDynamicSlippageBps: 100,
signer: 'invalid-public-key'
});
assert.strictEqual(result.content[0].type, 'text');
assert.strictEqual(result.isError, true);
assert.strictEqual(result.content[0].text.includes('Invalid public key'), true);
});
});
});