|
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