lundi 3 août 2020

How to mock influxdb. mockedGetWriteApi.writePoint is not a function

I am trying to write a unit test case using ava. But it keeps on giving mockedGetWriteApi.writePoint is not a function

import * as influxDB from '@influxdata/influxdb-client'
import test from 'ava'
import { anything, instance, mock, verify, when } from 'ts-mockito'

const clientOptions: influxDB.ClientOptions = {
    url: 'http://fake:9999',
    token: 'a',
  }

  const values: IInfluxDBValues = {
    org: 'testOrg',
    host: 'testHost',
  }

  const influxDBClient = new influxDB.InfluxDB(clientOptions)
  const writeApi: WriteApi = influxDBClient.getWriteApi(values.org, 'testBucket')
  const mockedInfluxDBClient = mock(influxDB.InfluxDB)
  const mockedGetWriteApi: WriteApi = mock(mockedInfluxDBClient.getWriteApi(anything(), anything()))
  const influxdbProvider = new InfluxDBProvider(values, instance(mockedInfluxDBClient))

  await influxdbProvider.write(points)
  when(mockedInfluxDBClient.getWriteApi(anything(), anything())).thenReturn(writeApi)
  verify(mockedInfluxDBClient.getWriteApi(values.org, anything())).once()
  verify(mockedGetWriteApi.writePoint(anything())).once()
  t.pass()

How can I resolve mockedGetWriteApi.writePoint is not a function. Or is there a better way to mock it.

Aucun commentaire:

Enregistrer un commentaire