Home Reference Source Test

test/2_integrationTests/1_eventstore/walkEventsByCorrelationId.test.ts

/* eslint-disable @typescript-eslint/no-explicit-any */
import * as assert from 'assert'
import {Eventstore} from '../../../src'

describe('walkEventsByCorrelationId', (): void => {
  const es = new Eventstore({
    uri: 'discover://admin:changeit@cluster1.escluster.net:2112',
    clientId: 'ts-client-test',
    useSSL: true
  })

  const validateIdArray = [
    '6072f9ce-1235-44ec-998d-7f4869dafaa4',
    '1227f490-9921-498d-a6fc-3d14195a40eb',
    '66fbbc77-6e6f-4d16-a208-871efdb4a4bb',
    'd8ae42b1-6ffb-494e-a40c-d463a73f03e4'
  ]

  before(
    async (): Promise<void> => {
      await es.connect()
    }
  )

  after(
    async (): Promise<void> => {
      await es.disconnect()
    }
  )

  it('returns all resolved events for given uuid', async (): Promise<void> => {
    let walker
    try {
      walker = await es.walkEventsByCorrelationId('b9599c37-ce20-415a-bbb5-6d8a1da97cec')
      const result = await walker.toArray()
      assert.ok('ok')
      assert.strictEqual(result.length, 4)
      assert.strictEqual(result[0].name, 'CommandEvent')
      assert.strictEqual(result[1].name, 'CausedEvent1')
      assert.strictEqual(result[2].name, 'CausedEvent2')
      assert.strictEqual(result[3].name, 'CausedEvent3')
    } catch (err) {
      assert.fail(err)
    }
  })

  it('returns all linked events for given uuid', async (): Promise<void> => {
    let walker
    try {
      walker = await es.walkEventsByCorrelationId('b9599c37-ce20-415a-bbb5-6d8a1da97cec', 0, false)
      const result = await walker.toArray()
      assert.ok('ok')
      assert.strictEqual(result.length, 4)
      assert.strictEqual(result[1].metadata.$causedBy, validateIdArray[1])
      assert.strictEqual(result[2].metadata.$causedBy, validateIdArray[2])
      assert.strictEqual(result[3].metadata.$causedBy, validateIdArray[3])
    } catch (err) {
      assert.fail(err)
    }
  })
})