Skip to content

Commit 22a61ec

Browse files
committed
Do not change the behaviour of 'then'
1 parent b98a26a commit 22a61ec

File tree

3 files changed

+50
-44
lines changed

3 files changed

+50
-44
lines changed

packages/core/src/result.ts

-3
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,6 @@ class Result implements Promise<QueryResult> {
209209
* @return {Promise} new Promise.
210210
*/
211211
private _getOrCreatePromise(): Promise<QueryResult> {
212-
if (!this.isOpen()) {
213-
return Promise.reject(newError('Result is already consumed'))
214-
}
215212
if (!this._p) {
216213
this._p = new Promise((resolve, reject) => {
217214
const records: Record[] = []

packages/core/test/result.test.ts

-16
Original file line numberDiff line numberDiff line change
@@ -451,22 +451,6 @@ describe('Result', () => {
451451
result.catch(() => { }).finally(done)
452452
})
453453

454-
it.each([
455-
['success', async (stream: any) => stream.onCompleted({})],
456-
['error', async (stream: any) => stream.onError(new Error('error'))],
457-
])('should throw when iterating over consumed result [%s]', async(_, completeStream) => {
458-
completeStream(streamObserverMock)
459-
460-
await result.summary().catch(() => {})
461-
462-
try {
463-
await result
464-
expect('not to finish iteration over consumed result').toBe(true)
465-
} catch (e) {
466-
expect(e).toEqual(newError('Result is already consumed'))
467-
}
468-
})
469-
470454
describe.each([
471455
['query', {}, { query: 'query', parameters: {} }],
472456
['query', { a: 1 }, { query: 'query', parameters: { a: 1 } }],

packages/neo4j-driver/test/rx/navigation.test.js

+50-25
Original file line numberDiff line numberDiff line change
@@ -170,14 +170,19 @@ describe('#integration-rx navigation', () => {
170170
60000
171171
)
172172

173-
it(
174-
'should fail on result when closed',
175-
() =>
176-
shouldFailOnResultWhenClosed(protocolVersion, session, () =>
177-
session.close()
178-
),
179-
60000
180-
)
173+
getObservableSelectors().forEach(([observableName, observableSelector]) => {
174+
it(
175+
`${observableName} should fail on result when closed`,
176+
() =>
177+
shouldFailOnResultWhenClosed(
178+
protocolVersion,
179+
session,
180+
observableSelector,
181+
() => session.close()
182+
),
183+
60000
184+
)
185+
})
181186
})
182187

183188
describe('transaction', () => {
@@ -340,21 +345,33 @@ describe('#integration-rx navigation', () => {
340345
60000
341346
)
342347

343-
it(
344-
'should fail on result when committed',
345-
() =>
346-
shouldFailOnResultWhenClosed(protocolVersion, txc, () => txc.commit()),
347-
60000
348-
)
348+
getObservableSelectors().forEach(([observableName, observableSelector]) => {
349+
it(
350+
`${observableName} should fail on result when committed`,
351+
() =>
352+
shouldFailOnResultWhenClosed(
353+
protocolVersion,
354+
txc,
355+
observableSelector,
356+
() => txc.commit()
357+
),
358+
60000
359+
)
360+
})
349361

350-
it(
351-
'should fail on result when rolled back',
352-
() =>
353-
shouldFailOnResultWhenClosed(protocolVersion, txc, () =>
354-
txc.rollback()
355-
),
356-
60000
357-
)
362+
getObservableSelectors().forEach(([observableName, observableSelector]) => {
363+
it(
364+
`${observableName}should fail on result when rolled back`,
365+
() =>
366+
shouldFailOnResultWhenClosed(
367+
protocolVersion,
368+
txc,
369+
observableSelector,
370+
() => txc.rollback()
371+
),
372+
60000
373+
)
374+
})
358375
})
359376

360377
/**
@@ -762,14 +779,24 @@ describe('#integration-rx navigation', () => {
762779
await collectAndAssertError(result.consume(), expectedError)
763780
}
764781

782+
function getObservableSelectors () {
783+
return [
784+
['consume', r => r.consume()],
785+
['keys', r => r.keys()],
786+
['records', r => r.records()]
787+
]
788+
}
789+
765790
/**
766791
* @param {number} protocolVersion
767792
* @param {RxSession|RxTransaction} runnable
793+
* @param {function(RxSession|RxTransaction):Observable<any>} selectObservable
768794
* @param {function(): Observable} closeFunc
769795
*/
770796
async function shouldFailOnResultWhenClosed (
771797
protocolVersion,
772798
runnable,
799+
selectObservable,
773800
closeFunc
774801
) {
775802
if (protocolVersion < 4.0) {
@@ -782,9 +809,7 @@ describe('#integration-rx navigation', () => {
782809
const expectedError = jasmine.objectContaining({
783810
message: jasmine.stringMatching(/Cannot run query/)
784811
})
785-
await collectAndAssertError(result.keys(), expectedError)
786-
await collectAndAssertError(result.records(), expectedError)
787-
await collectAndAssertError(result.consume(), expectedError)
812+
await collectAndAssertError(selectObservable(result), expectedError)
788813
}
789814

790815
async function collectAndAssertKeys (result) {

0 commit comments

Comments
 (0)