pacifica-balance.integration.test.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. /**
  2. * Integration test for Pacifica account balance query
  3. *
  4. * This test validates the complete flow of querying account balances from Pacifica
  5. * including authentication, request processing, and response handling.
  6. * Tests MUST FAIL until implementation is complete.
  7. */
  8. import { describe, test, expect, beforeEach, jest } from '@jest/globals'
  9. // Import types that will be implemented
  10. import type { IUniversalHttpClient, HttpClientRequest, HttpClientResponse } from '@/types/httpClientCore'
  11. describe('Pacifica Balance Query Integration', () => {
  12. let httpClient: IUniversalHttpClient
  13. beforeEach(async () => {
  14. // This will fail until IUniversalHttpClient is implemented
  15. // eslint-disable-next-line @typescript-eslint/no-require-imports
  16. const { HttpClientCore } = require('@/core/http-client/HttpClientCore')
  17. httpClient = new HttpClientCore()
  18. // Register Pacifica adapter
  19. // eslint-disable-next-line @typescript-eslint/no-require-imports
  20. const { PacificaHttpAdapter } = require('@/adapters/pacifica/PacificaHttpAdapter')
  21. const pacificaAdapter = new PacificaHttpAdapter({
  22. platform: 'pacifica',
  23. baseUrl: 'https://api.pacifica.fi',
  24. authConfig: { type: 'signature', algorithm: 'Ed25519' }
  25. })
  26. httpClient.registerPlatform('pacifica', pacificaAdapter)
  27. })
  28. test('should query account balances successfully', async () => {
  29. const request: HttpClientRequest = {
  30. platform: 'pacifica',
  31. accountId: 'integration-test-account',
  32. method: 'GET',
  33. url: '/api/v1/account/balances'
  34. }
  35. const response: HttpClientResponse = await httpClient.request(request)
  36. expect(response).toBeDefined()
  37. expect(response.ok).toBe(true)
  38. expect(response.data).toBeDefined()
  39. expect(response.data.balances).toBeDefined()
  40. expect(Array.isArray(response.data.balances)).toBe(true)
  41. expect(response.metadata.platform).toBe('pacifica')
  42. expect(response.metadata.authenticated).toBe(true)
  43. })
  44. test('should handle authentication with credential-manager', async () => {
  45. const request: HttpClientRequest = {
  46. platform: 'pacifica',
  47. accountId: 'credential-test-account',
  48. method: 'GET',
  49. url: '/api/v1/account/info'
  50. }
  51. const response: HttpClientResponse = await httpClient.request(request)
  52. expect(response).toBeDefined()
  53. expect(response.metadata.authenticated).toBe(true)
  54. expect(response.metadata.signatureAlgorithm).toBe('Ed25519')
  55. expect(response.metadata.credentialManagerUsed).toBe(true)
  56. })
  57. })