Skip to content

Commit

Permalink
Test scenario when error is emitted before async method
Browse files Browse the repository at this point in the history
  • Loading branch information
dex4er committed Feb 3, 2018
1 parent 7d80dbe commit 890eef1
Showing 1 changed file with 168 additions and 0 deletions.
168 changes: 168 additions & 0 deletions test/promise-readable.js
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,32 @@ Feature('Test promise-readable module with stream2 API', () => {
})
})

Scenario('Read stream with emitted error', () => {
let promise
let promiseReadable
let stream

Given('Readable object', () => {
stream = new MockStream()
})

And('PromiseReadable object', () => {
promiseReadable = new PromiseReadable(stream)
})

When('stream emitted an error event', () => {
stream.emit('error', new Error('boom'))
})

And('I call read method', () => {
promise = promiseReadable.read()
})

Then('promise is rejected', () => {
return promise.should.be.rejectedWith(Error, 'boom')
})
})

Scenario('Read all from stream', () => {
let promise
let promiseReadable
Expand Down Expand Up @@ -385,6 +411,36 @@ Feature('Test promise-readable module with stream2 API', () => {
})
})

Scenario('Read all from stream with emitted error', () => {
let promise
let promiseReadable
let stream

Given('Readable object', () => {
stream = new MockStream()
})

And('PromiseReadable object', () => {
promiseReadable = new PromiseReadable(stream)
})

And('error event is emitted', () => {
stream.emit('error', new Error('boom'))
})

When('I call readAll method', () => {
promise = promiseReadable.readAll()
})

And('data event is emitted', () => {
stream.emit('data', Buffer.from('chunk1'))
})

Then('promise is rejected', () => {
return promise.should.be.rejectedWith(Error, 'boom')
})
})

Scenario('Wait for open from stream', () => {
let promise
let promiseReadable
Expand Down Expand Up @@ -489,6 +545,32 @@ Feature('Test promise-readable module with stream2 API', () => {
})
})

Scenario('Wait for open from stream with emitted error', () => {
let promise
let promiseReadable
let stream

Given('Readable object', () => {
stream = new MockStream()
})

And('PromiseReadable object', () => {
promiseReadable = new PromiseReadable(stream)
})

And('error event is emitted', () => {
stream.emit('error', new Error('boom'))
})

When('I call open method', () => {
promise = promiseReadable.once('open')
})

Then('promise is rejected', () => {
return promise.should.be.rejectedWith(Error, 'boom')
})
})

Scenario('Wait for close from stream', () => {
let promise
let promiseReadable
Expand Down Expand Up @@ -541,6 +623,32 @@ Feature('Test promise-readable module with stream2 API', () => {
})
})

Scenario('Wait for close from stream with emitted error', () => {
let promise
let promiseReadable
let stream

Given('Readable object', () => {
stream = new MockStream()
})

And('PromiseReadable object', () => {
promiseReadable = new PromiseReadable(stream)
})

And('error event is emitted', () => {
stream.emit('error', new Error('boom'))
})

When('I call end method', () => {
promise = promiseReadable.once('close')
})

Then('promise is rejected', () => {
return promise.should.be.rejectedWith(Error, 'boom')
})
})

Scenario('Wait for end from stream', () => {
let promise
let promiseReadable
Expand Down Expand Up @@ -605,6 +713,36 @@ Feature('Test promise-readable module with stream2 API', () => {
})
})

Scenario('Wait for end from stream with emitted error', () => {
let promise
let promiseReadable
let stream

Given('Readable object', () => {
stream = new MockStream()
})

And('PromiseReadable object', () => {
promiseReadable = new PromiseReadable(stream)
})

And('data event is emitted', () => {
stream.emit('data', Buffer.from('chunk1'))
})

When('I call end method', () => {
promise = promiseReadable.once('end')
})

And('error event is emitted', () => {
stream.emit('error', new Error('boom'))
})

Then('promise is rejected', () => {
return promise.should.be.rejectedWith(Error, 'boom')
})
})

Scenario('Wait for error from stream without error', () => {
let promise
let promiseReadable
Expand Down Expand Up @@ -669,6 +807,36 @@ Feature('Test promise-readable module with stream2 API', () => {
})
})

Scenario('Wait for error from stream with emitted error', () => {
let promise
let promiseReadable
let stream

Given('Readable object', () => {
stream = new MockStream()
})

And('PromiseReadable object', () => {
promiseReadable = new PromiseReadable(stream)
})

And('data event is emitted', () => {
stream.emit('data', Buffer.from('chunk1'))
})

When('I call end method', () => {
promise = promiseReadable.once('error')
})

And('error event is emitted', () => {
stream.emit('error', new Error('boom'))
})

Then('promise is rejected', () => {
return promise.should.be.rejectedWith(Error, 'boom')
})
})

Scenario('Read non-Readable stream', () => {
let promise
let promiseReadable
Expand Down

0 comments on commit 890eef1

Please sign in to comment.