UNPKG

@reown/appkit-siwx

Version:

The chain agnostic tool to enable authentication for AppKit applications.

58 lines 2.1 kB
import { describe, expect, test } from 'vitest'; import {} from '@reown/appkit-controllers'; import { mockSession } from '@reown/appkit-controllers/testing'; import { SolanaVerifier } from '../../src/verifiers/SolanaVerifier.js'; const cases = [ { reason: 'valid session', session: mockSession({ data: { accountAddress: '2VqKhjZ766ZN3uBtBpb7Ls3cN4HrocP1rzxzekhVEgpU' }, signature: '2ZpgpUKF6RtmbrE8uBmPwRiBqRnsCKiBKkjsPSpf6c64r4XdDoevjhjNX35X7GeuSwwRhmbB2Ro4NfHWAeXWNhDL' }), expected: true }, { reason: 'invalid session with an invalid signature', session: mockSession({ data: { accountAddress: '2VqKhjZ766ZN3uBtBpb7Ls3cN4HrocP1rzxzekhVEgpU' }, signature: '3ErkFZkvhSJVR7E1uakGwj8icgfxvRSS6AwW5bq4CZsXPZ83XrT1H9xcCWLvhsYCLYzFc7WSMQEJxGgpZvtgqbdE' }), expected: false }, { reason: 'invalid session with an invalid account address', session: mockSession({ data: { accountAddress: 'C6ydkvKcRdXz3ZTEYy6uWAAyZgyUF49qP4XPdaDB2nqS' }, signature: '2ZpgpUKF6RtmbrE8uBmPwRiBqRnsCKiBKkjsPSpf6c64r4XdDoevjhjNX35X7GeuSwwRhmbB2Ro4NfHWAeXWNhDL' }), expected: false } ]; describe('SolanaVerifier', () => { const verifier = new SolanaVerifier(); test('should have solana as the chain namespace', () => { expect(verifier.chainNamespace).toBe('solana'); }); test('should verify only solana chain id', () => { expect(verifier.shouldVerify(mockSession({ data: { chainId: 'solana:mainnet' } }))).toBe(true); expect(verifier.shouldVerify(mockSession({ data: { chainId: 'eip155:1' } }))).toBe(false); }); test.each(cases)(`should verify $reason`, async ({ session, expected }) => { expect(await verifier.verify(session)).toBe(expected); }); }); //# sourceMappingURL=SolanaVerifier.test.js.map