Home Reference Source Test

test/1_unitTests/1_eventstore/getConnectionInfo.test.ts

import {
  getIpListFromDns,
  fetchgossipJson,
  getIpAndPort
} from '../../../src/eventstore/getConnectInfo'
import * as assert from 'assert'
import * as bunyan from 'bunyan'
import {setConnectionSettings} from '../../../src/eventstore/EventstoreSettings'

describe('Gossip connection info', (): void => {
  const log = bunyan.createLogger({name: 'unittest'})

  it('returns empty array on dns error', async (): Promise<void> => {
    const result = await getIpListFromDns('unknown', log)
    assert.strictEqual(JSON.stringify(result), JSON.stringify([]))
  })

  it('returns null on error', async (): Promise<void> => {
    const result = await fetchgossipJson('unknown', 80, true, 100, log)
    assert.strictEqual(result, null)
  })

  it('returns same settings', async (): Promise<void> => {
    const originalSettings = setConnectionSettings({
      uri: '',
      host: '',
      port: 0,
      gossipSeeds: [],
      clusterDns: ''
    })
    const result = await getIpAndPort({...originalSettings}, log)
    assert.strictEqual(JSON.stringify(result), JSON.stringify(originalSettings))
  })
})