Skip to content

Commit 75110ea

Browse files
authored
Merge pull request #5 from ali-ince/add-tests
Fix an issue on result streaming and add more tests
2 parents d4e9032 + 9d3a80c commit 75110ea

4 files changed

Lines changed: 359 additions & 24 deletions

File tree

integration-tests/bookmark_test.go

Lines changed: 71 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,22 @@ import (
2929
)
3030

3131
var _ = Describe("Bookmark", func() {
32-
getLastBookmark := func (driver Driver) string {
32+
createNodeInTx := func(driver Driver) string {
3333
session, err := driver.Session(AccessModeWrite)
3434
Expect(err).To(BeNil())
3535
defer session.Close()
3636

3737
_, err = session.WriteTransaction(func(tx *Transaction) (interface{}, error) {
38-
result, err := tx.Run("CREATE ()", nil)
39-
Expect(err).To(BeNil())
38+
result, err := tx.Run("CREATE ()", nil)
39+
Expect(err).To(BeNil())
4040

41-
summary, err := result.Consume()
42-
Expect(err).To(BeNil())
41+
summary, err := result.Consume()
42+
Expect(err).To(BeNil())
4343

44-
Expect(summary.Counters().NodesCreated()).To(Equal(1))
44+
Expect(summary.Counters().NodesCreated()).To(Equal(1))
4545

46-
return 0, nil
47-
})
46+
return 0, nil
47+
})
4848
Expect(err).To(BeNil())
4949

5050
return session.LastBookmark()
@@ -202,9 +202,9 @@ var _ = Describe("Bookmark", func() {
202202

203203
Context("session constructed with one bookmark", func() {
204204
var (
205-
err error
206-
driver Driver
207-
session *Session
205+
err error
206+
driver Driver
207+
session *Session
208208
bookmark string
209209
)
210210

@@ -214,7 +214,7 @@ var _ = Describe("Bookmark", func() {
214214
Expect(err).To(BeNil())
215215
}
216216

217-
bookmark = getLastBookmark(driver)
217+
bookmark = createNodeInTx(driver)
218218

219219
session, err = driver.Session(AccessModeWrite, bookmark)
220220
if err != nil {
@@ -239,13 +239,62 @@ var _ = Describe("Bookmark", func() {
239239

240240
Expect(session.LastBookmark()).To(Equal(bookmark))
241241
})
242+
243+
Specify("given bookmark should be accessible after ROLLBACK", func() {
244+
tx, err := session.BeginTransaction()
245+
Expect(err).To(BeNil())
246+
defer tx.Close()
247+
248+
_, err = tx.Run("CREATE ()", nil)
249+
Expect(err).To(BeNil())
250+
251+
err = tx.Rollback()
252+
Expect(err).To(BeNil())
253+
254+
Expect(session.LastBookmark()).To(Equal(bookmark))
255+
})
256+
257+
Specify("given bookmark should be accessible when transaction fails", func() {
258+
tx, err := session.BeginTransaction()
259+
Expect(err).To(BeNil())
260+
defer tx.Close()
261+
262+
_, err = tx.Run("RETURN", nil)
263+
Expect(err).To(BeNil())
264+
265+
err = tx.Close()
266+
Expect(err).To(BeSyntaxError())
267+
268+
Expect(session.LastBookmark()).To(Equal(bookmark))
269+
})
270+
271+
Specify("given bookmark should be accessible after run", func() {
272+
result, err := session.Run("RETURN 1", nil)
273+
Expect(err).To(BeNil())
274+
275+
_, err = result.Consume()
276+
Expect(err).To(BeNil())
277+
278+
Expect(session.LastBookmark()).To(Equal(bookmark))
279+
})
280+
281+
Specify("given bookmark should be accessible after failed run", func() {
282+
result, err := session.Run("RETURN", nil)
283+
Expect(err).To(BeNil())
284+
285+
_, err = result.Consume()
286+
Expect(err).To(BeSyntaxError())
287+
288+
Expect(session.LastBookmark()).To(Equal(bookmark))
289+
})
290+
242291
})
243292

244293
Context("session constructed with two bookmarks", func() {
245294
var (
246-
err error
247-
driver Driver
248-
session *Session
295+
err error
296+
driver Driver
297+
session *Session
249298
bookmark1 string
250299
bookmark2 string
251300
)
@@ -256,8 +305,8 @@ var _ = Describe("Bookmark", func() {
256305
Expect(err).To(BeNil())
257306
}
258307

259-
bookmark1 = getLastBookmark(driver)
260-
bookmark2 = getLastBookmark(driver)
308+
bookmark1 = createNodeInTx(driver)
309+
bookmark2 = createNodeInTx(driver)
261310
Expect(bookmark1).NotTo(Equal(bookmark2))
262311

263312
session, err = driver.Session(AccessModeWrite, bookmark1, bookmark2)
@@ -307,9 +356,9 @@ var _ = Describe("Bookmark", func() {
307356

308357
Context("session constructed with unreachable bookmark", func() {
309358
var (
310-
err error
311-
driver Driver
312-
session *Session
359+
err error
360+
driver Driver
361+
session *Session
313362
bookmark string
314363
)
315364

@@ -319,9 +368,9 @@ var _ = Describe("Bookmark", func() {
319368
Expect(err).To(BeNil())
320369
}
321370

322-
bookmark = getLastBookmark(driver)
371+
bookmark = createNodeInTx(driver)
323372

324-
session, err = driver.Session(AccessModeWrite, bookmark + "0")
373+
session, err = driver.Session(AccessModeWrite, bookmark+"0")
325374
if err != nil {
326375
Expect(err).To(BeNil())
327376
}
@@ -347,4 +396,3 @@ var _ = Describe("Bookmark", func() {
347396
})
348397

349398
})
350-

0 commit comments

Comments
 (0)