test/2_integrationTests/2_stream/1_stream.test.ts
import {expect} from 'chai'
import {Eventstore} from '../../../src'
describe('Stream tests', (): void => {
const es = new Eventstore({
uri: 'discover://restrictedUser:restrictedOnlyUserPassword@cluster1.escluster.net:2112',
clientId: 'ts-client-test',
useSSL: true
})
before(
async (): Promise<void> => {
await es.connect()
}
)
after(
async (): Promise<void> => {
await es.disconnect()
}
)
describe('Basic tests', async (): Promise<void> => {
it('returns a stream name', (): void => {
const stream = es.stream('hola')
expect(stream.name).not.to.be.undefined
expect(stream.name).not.to.be.null
})
it('returns a stream instance for function stream', (): void => {
const stream = es.stream('hola')
expect(stream).not.to.be.undefined
expect(stream).not.to.be.null
})
it('returns a stream instance for function fromStream', (): void => {
const stream = es.fromStream('hola')
expect(stream).not.to.be.undefined
expect(stream).not.to.be.null
})
it('returns a stream instance for function atStream', (): void => {
const stream = es.fromStream('hola')
expect(stream).not.to.be.undefined
expect(stream).not.to.be.null
})
it('returns same stream on requiresMaster', (): void => {
const stream = es.stream('hola')
const result = stream.requiresMaster()
expect(stream).to.be.equal(result)
})
it('returns same stream on withCredentials', (): void => {
const stream = es.stream('hola')
const result = stream.withCredentials({username: 'otheruser', password: 'otherpassword'})
expect(stream).to.be.equal(result)
})
it('returns same stream on resolveAllLinks', (): void => {
const stream = es.stream('hola')
const result = stream.resolveAllLinks()
expect(stream).to.be.equal(result)
})
it('can soft delete a stream', async (): Promise<void> => {
await es.stream('streamtosoftdelete-773f2fc6-ed4b-4f37-9b5b-4d737b181ac3').softDelete()
})
it('can soft delete a stream on master node', async (): Promise<void> => {
await es
.stream('streamtosoftdeletemaster-5784a6cc-0559-45b1-8432-31535707c140')
.requiresMaster()
.softDelete()
})
it('can hard delete a stream', async (): Promise<void> => {
await es.stream('streamtoharddelete-1d772e21-f670-4493-8d72-cb9ab1d03edb').hardDelete()
})
it('throws on delete metastream', async (): Promise<void> => {
try {
await es.stream('$$streamtosoftdelete').softDelete()
} catch (err) {
expect(err.name).to.be.equal('EventstoreBadRequestError')
}
})
})
})