Skip to content

Commit 3b334cb

Browse files
authored
Merge pull request #2345 from ai16z-demirix/feature/solana-plugin-tests
feat: adding tests for plugin-solana
2 parents 446dd00 + 8132709 commit 3b334cb

File tree

4 files changed

+114
-1
lines changed

4 files changed

+114
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { describe, it, expect, vi } from 'vitest';
2+
3+
describe('Swap Action', () => {
4+
describe('validate', () => {
5+
it('should handle swap message validation', async () => {
6+
const mockMessage = {
7+
content: 'Swap 1 SOL to USDC',
8+
metadata: {
9+
fromToken: 'SOL',
10+
toToken: 'USDC',
11+
amount: '1'
12+
}
13+
};
14+
15+
// Basic test to ensure message structure
16+
expect(mockMessage.metadata).toBeDefined();
17+
expect(mockMessage.metadata.fromToken).toBe('SOL');
18+
expect(mockMessage.metadata.toToken).toBe('USDC');
19+
expect(mockMessage.metadata.amount).toBe('1');
20+
});
21+
});
22+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import { describe, it, expect, vi } from 'vitest';
2+
import { trustEvaluator } from '../../src/evaluators/trust';
3+
4+
// Mock the core module
5+
vi.mock('@elizaos/core', () => ({
6+
generateTrueOrFalse: vi.fn().mockResolvedValue(false),
7+
ModelClass: {
8+
SMALL: 'small'
9+
},
10+
settings: {
11+
MAIN_WALLET_ADDRESS: 'test-wallet-address'
12+
},
13+
booleanFooter: 'Answer with Yes or No.',
14+
elizaLogger: {
15+
log: vi.fn(),
16+
debug: vi.fn(),
17+
info: vi.fn(),
18+
error: vi.fn()
19+
},
20+
composeContext: vi.fn().mockReturnValue({
21+
state: {},
22+
template: ''
23+
})
24+
}));
25+
26+
describe('Trust Evaluator', () => {
27+
it('should handle non-trust messages', async () => {
28+
const mockRuntime = {
29+
getSetting: vi.fn(),
30+
composeState: vi.fn().mockResolvedValue({
31+
agentId: 'test-agent',
32+
roomId: 'test-room'
33+
}),
34+
getLogger: vi.fn().mockReturnValue({
35+
debug: vi.fn(),
36+
info: vi.fn(),
37+
log: vi.fn(),
38+
error: vi.fn()
39+
})
40+
};
41+
42+
const mockMessage = {
43+
content: 'Hello world',
44+
metadata: {}
45+
};
46+
47+
const mockState = {
48+
agentId: 'test-agent',
49+
roomId: 'test-room'
50+
};
51+
52+
const result = await trustEvaluator.handler(mockRuntime, mockMessage, mockState);
53+
expect(result).toBeDefined();
54+
});
55+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { describe, it, expect, vi } from 'vitest';
2+
import { TokenProvider } from '../../src/providers/token';
3+
import { WalletProvider } from '../../src/providers/wallet';
4+
import { ICacheManager } from '@elizaos/core';
5+
6+
describe('Token Security', () => {
7+
it('should handle empty security data gracefully', async () => {
8+
const mockCacheManager = {
9+
get: vi.fn().mockResolvedValue(null),
10+
set: vi.fn(),
11+
delete: vi.fn(),
12+
clear: vi.fn(),
13+
has: vi.fn(),
14+
};
15+
16+
const mockWalletProvider = new WalletProvider(mockCacheManager);
17+
const tokenProvider = new TokenProvider(
18+
'So11111111111111111111111111111111111111112',
19+
mockWalletProvider,
20+
mockCacheManager
21+
);
22+
23+
global.fetch = vi.fn().mockResolvedValueOnce({
24+
ok: true,
25+
json: () => Promise.resolve({
26+
success: true,
27+
data: {}
28+
})
29+
});
30+
31+
const result = await tokenProvider.fetchTokenSecurity();
32+
expect(result).toBeDefined();
33+
expect(result.ownerBalance).toBe(undefined);
34+
expect(result.creatorBalance).toBe(undefined);
35+
});
36+
});

packages/plugin-solana/src/tests/token.test.ts packages/plugin-solana/__tests__/token.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { describe, it, expect, beforeEach, vi, afterEach } from "vitest";
2-
import { TokenProvider } from "../providers/token.ts";
2+
import { TokenProvider } from "../src/providers/token.ts";
33

44
// Mock NodeCache
55
vi.mock("node-cache", () => {

0 commit comments

Comments
 (0)