|
1 | 1 | describe('DSSqlAdapter#update + transaction', function () { |
2 | 2 | it('commit should update a user in a Sql db', function* () { |
3 | | - var co = require('co'); |
4 | | - |
5 | 3 | var user = yield adapter.create(User, {name: 'John'}) |
6 | 4 | var id = user.id; |
7 | 5 | assert.equal(user.name, 'John'); |
8 | 6 | assert.isDefined(user.id); |
9 | 7 |
|
10 | | - var foundUser = yield adapter.find(User, user.id); |
11 | | - assert.equal(foundUser.name, 'John'); |
12 | | - assert.isDefined(foundUser.id); |
13 | | - assert.equalObjects(foundUser, {id: id, name: 'John', age: null, profileId: null}); |
14 | | - |
15 | 8 | yield adapter.query.transaction(co.wrap(function * (trx) { |
16 | | - var updatedUser = yield adapter.update(User, foundUser.id, {name: 'Johnny'}, {transaction: trx}); |
| 9 | + var updatedUser = yield adapter.update(User, id, {name: 'Johnny'}, {transaction: trx}); |
17 | 10 | assert.equal(updatedUser.name, 'Johnny'); |
18 | 11 | assert.isDefined(updatedUser.id); |
19 | 12 | assert.equalObjects(updatedUser, {id: id, name: 'Johnny', age: null, profileId: null}); |
| 13 | + })); |
20 | 14 |
|
21 | | - var foundUser2 = yield adapter.find(User, updatedUser.id, {transaction: trx}); |
22 | | - assert.equal(foundUser2.name, 'Johnny'); |
23 | | - assert.isDefined(foundUser2.id); |
24 | | - assert.equalObjects(foundUser2, {id: id, name: 'Johnny', age: null, profileId: null}); |
25 | | - |
26 | | - return foundUser2; |
27 | | - })).then( |
28 | | - function (user) { assert.isObject(user, 'transaction returned user object') }, |
29 | | - function (err) { throw new Error('transaction threw exception!') } |
30 | | - ); |
31 | | - |
32 | | - var foundUser3 = yield adapter.find(User, user.id); |
33 | | - assert.equal(foundUser3.name, 'Johnny'); |
34 | | - assert.isDefined(foundUser3.id); |
35 | | - assert.equalObjects(foundUser3, {id: id, name: 'Johnny', age: null, profileId: null}); |
36 | | - |
37 | | - var destroyUser = yield adapter.destroy(User, foundUser3.id); |
38 | | - assert.isFalse(!!destroyUser); |
39 | | - |
40 | | - try { |
41 | | - yield adapter.find(User, id); |
42 | | - throw new Error('Should not have reached here!'); |
43 | | - } catch (err) { |
44 | | - assert.equal(err.message, 'Not Found!'); |
45 | | - } |
| 15 | + var foundUser = yield adapter.find(User, id); |
| 16 | + assert.equal(foundUser.name, 'Johnny'); |
| 17 | + assert.isDefined(foundUser.id); |
| 18 | + assert.equalObjects(foundUser, {id: id, name: 'Johnny', age: null, profileId: null}); |
46 | 19 | }); |
47 | 20 |
|
48 | 21 | it('rollback should not update a user in a Sql db', function* () { |
49 | | - var co = require('co'); |
50 | | - |
51 | 22 | var user = yield adapter.create(User, {name: 'John'}) |
52 | 23 | var id = user.id; |
53 | 24 | assert.equal(user.name, 'John'); |
54 | 25 | assert.isDefined(user.id); |
55 | 26 |
|
56 | | - var foundUser = yield adapter.find(User, user.id); |
57 | | - assert.equal(foundUser.name, 'John'); |
58 | | - assert.isDefined(foundUser.id); |
59 | | - assert.equalObjects(foundUser, {id: id, name: 'John', age: null, profileId: null}); |
60 | | - |
61 | | - yield adapter.query.transaction(co.wrap(function * (trx) { |
62 | | - var updatedUser = yield adapter.update(User, foundUser.id, {name: 'Johnny'}, {transaction: trx}); |
63 | | - assert.equal(updatedUser.name, 'Johnny'); |
64 | | - assert.isDefined(updatedUser.id); |
65 | | - assert.equalObjects(updatedUser, {id: id, name: 'Johnny', age: null, profileId: null}); |
66 | | - |
67 | | - var foundUser2 = yield adapter.find(User, updatedUser.id, {transaction: trx}); |
68 | | - assert.equal(foundUser2.name, 'Johnny'); |
69 | | - assert.isDefined(foundUser2.id); |
70 | | - assert.equalObjects(foundUser2, {id: id, name: 'Johnny', age: null, profileId: null}); |
71 | | - |
72 | | - throw new Error('rollback'); |
73 | | - })).then( |
74 | | - function () { throw new Error('transaction did not throw exception!') }, |
75 | | - function (err) { assert.equal(err.message, 'rollback') } |
76 | | - ); |
77 | | - |
78 | | - var foundUser3 = yield adapter.find(User, user.id); |
79 | | - assert.equal(foundUser3.name, 'John'); |
80 | | - assert.isDefined(foundUser3.id); |
81 | | - assert.equalObjects(foundUser3, {id: id, name: 'John', age: null, profileId: null}); |
82 | | - |
83 | | - var destroyUser = yield adapter.destroy(User, foundUser3.id); |
84 | | - assert.isFalse(!!destroyUser); |
85 | | - |
86 | 27 | try { |
87 | | - yield adapter.find(User, id); |
88 | | - throw new Error('Should not have reached here!'); |
| 28 | + yield adapter.query.transaction(co.wrap(function * (trx) { |
| 29 | + var updatedUser = yield adapter.update(User, id, {name: 'Johnny'}, {transaction: trx}); |
| 30 | + assert.equal(updatedUser.name, 'Johnny'); |
| 31 | + assert.isDefined(updatedUser.id); |
| 32 | + assert.equalObjects(updatedUser, {id: id, name: 'Johnny', age: null, profileId: null}); |
| 33 | + |
| 34 | + throw new Error('rollback'); |
| 35 | + })); |
89 | 36 | } catch (err) { |
90 | | - assert.equal(err.message, 'Not Found!'); |
| 37 | + assert.equal(err.message, 'rollback'); |
91 | 38 | } |
| 39 | + |
| 40 | + var foundUser = yield adapter.find(User, id); |
| 41 | + assert.equal(foundUser.name, 'John'); |
| 42 | + assert.isDefined(foundUser.id); |
| 43 | + assert.equalObjects(foundUser, {id: id, name: 'John', age: null, profileId: null}); |
92 | 44 | }); |
93 | 45 | }); |
0 commit comments