File size: 1,011 Bytes
1477a90
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Code generated by @openmeter/typespec-typescript. DO NOT EDIT.

import fetchMock from '@fetch-mock/vitest'
import { beforeEach, describe, expect, it } from 'vitest'
import { OpenMeter } from '../src/index.js'

beforeEach(() => {
  fetchMock.mockReset()
})

const fetch = fetchMock.fetchHandler

function lastUrl(): string {
  return fetchMock.callHistory.lastCall()!.url
}

describe('nested sub-clients', () => {
  it('routes customers.charges.list() to the charges sub-resource', async () => {
    fetchMock.route('*', {
      body: { data: [], meta: { page: { number: 1, size: 10, total: 0 } } },
      headers: { 'Content-Type': 'application/json' },
    })
    const sdk = new OpenMeter({
      baseUrl: 'https://eu.api.konghq.com/v3',
      apiKey: 'k',
      fetch,
    })
    await sdk.customers.charges.list({
      customerId: '01ARZ3NDEKTSV4RRFFQ69G5FAV',
    })
    expect(lastUrl()).toBe(
      'https://eu.api.konghq.com/v3/openmeter/customers/01ARZ3NDEKTSV4RRFFQ69G5FAV/charges',
    )
  })
})