Skip to content

Commit 0a699d2

Browse files
committed
more reverts
1 parent f50e2a0 commit 0a699d2

File tree

1 file changed

+84
-69
lines changed

1 file changed

+84
-69
lines changed

spec/batch.spec.js

Lines changed: 84 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,10 @@ describe('batch', () => {
111111
expect(internalURL).toEqual('/classes/Object');
112112
});
113113

114-
it('should handle a batch request without transaction', async () => {
114+
it('should handle a batch request without transaction', async done => {
115115
spyOn(databaseAdapter, 'createObject').and.callThrough();
116116

117-
const response = await request({
117+
request({
118118
method: 'POST',
119119
headers: headers,
120120
url: 'http://localhost:8378/1/batch',
@@ -132,25 +132,28 @@ describe('batch', () => {
132132
},
133133
],
134134
}),
135+
}).then(response => {
136+
expect(response.data.length).toEqual(2);
137+
expect(response.data[0].success.objectId).toBeDefined();
138+
expect(response.data[0].success.createdAt).toBeDefined();
139+
expect(response.data[1].success.objectId).toBeDefined();
140+
expect(response.data[1].success.createdAt).toBeDefined();
141+
const query = new Parse.Query('MyObject');
142+
query.find().then(results => {
143+
expect(databaseAdapter.createObject.calls.count()).toBe(2);
144+
expect(databaseAdapter.createObject.calls.argsFor(0)[3]).toEqual(null);
145+
expect(databaseAdapter.createObject.calls.argsFor(1)[3]).toEqual(null);
146+
expect(results.map(result => result.get('key')).sort()).toEqual(['value1', 'value2']);
147+
done();
148+
});
135149
});
136-
137-
expect(response.data.length).toEqual(2);
138-
expect(response.data[0].success.objectId).toBeDefined();
139-
expect(response.data[0].success.createdAt).toBeDefined();
140-
expect(response.data[1].success.objectId).toBeDefined();
141-
expect(response.data[1].success.createdAt).toBeDefined();
142-
const query = new Parse.Query('MyObject');
143-
const results = await query.find();
144-
expect(databaseAdapter.createObject.calls.count()).toBe(2);
145-
expect(databaseAdapter.createObject.calls.argsFor(0)[3]).toEqual(null);
146-
expect(databaseAdapter.createObject.calls.argsFor(1)[3]).toEqual(null);
147-
expect(results.map(result => result.get('key')).sort()).toEqual(['value1', 'value2']);
148150
});
149151

150-
it('should handle a batch request with transaction = false', async () => {
152+
it('should handle a batch request with transaction = false', async done => {
153+
await reconfigureServer();
151154
spyOn(databaseAdapter, 'createObject').and.callThrough();
152155

153-
const response = await request({
156+
request({
154157
method: 'POST',
155158
headers: headers,
156159
url: 'http://localhost:8378/1/batch',
@@ -169,18 +172,21 @@ describe('batch', () => {
169172
],
170173
transaction: false,
171174
}),
175+
}).then(response => {
176+
expect(response.data.length).toEqual(2);
177+
expect(response.data[0].success.objectId).toBeDefined();
178+
expect(response.data[0].success.createdAt).toBeDefined();
179+
expect(response.data[1].success.objectId).toBeDefined();
180+
expect(response.data[1].success.createdAt).toBeDefined();
181+
const query = new Parse.Query('MyObject');
182+
query.find().then(results => {
183+
expect(databaseAdapter.createObject.calls.count()).toBe(2);
184+
expect(databaseAdapter.createObject.calls.argsFor(0)[3]).toEqual(null);
185+
expect(databaseAdapter.createObject.calls.argsFor(1)[3]).toEqual(null);
186+
expect(results.map(result => result.get('key')).sort()).toEqual(['value1', 'value2']);
187+
done();
188+
});
172189
});
173-
expect(response.data.length).toEqual(2);
174-
expect(response.data[0].success.objectId).toBeDefined();
175-
expect(response.data[0].success.createdAt).toBeDefined();
176-
expect(response.data[1].success.objectId).toBeDefined();
177-
expect(response.data[1].success.createdAt).toBeDefined();
178-
const query = new Parse.Query('MyObject');
179-
const results = await query.find();
180-
expect(databaseAdapter.createObject.calls.count()).toBe(2);
181-
expect(databaseAdapter.createObject.calls.argsFor(0)[3]).toEqual(null);
182-
expect(databaseAdapter.createObject.calls.argsFor(1)[3]).toEqual(null);
183-
expect(results.map(result => result.get('key')).sort()).toEqual(['value1', 'value2']);
184190
});
185191

186192
if (
@@ -207,48 +213,58 @@ describe('batch', () => {
207213
}
208214
});
209215

210-
it('should handle a batch request with transaction = true', async () => {
216+
it('should handle a batch request with transaction = true', async done => {
217+
await reconfigureServer();
211218
const myObject = new Parse.Object('MyObject'); // This is important because transaction only works on pre-existing collections
212-
await myObject.save();
213-
await myObject.destroy();
214-
spyOn(databaseAdapter, 'createObject').and.callThrough();
215-
const response = await request({
216-
method: 'POST',
217-
headers: headers,
218-
url: 'http://localhost:8378/1/batch',
219-
body: JSON.stringify({
220-
requests: [
221-
{
222-
method: 'POST',
223-
path: '/1/classes/MyObject',
224-
body: { key: 'value1' },
225-
},
226-
{
227-
method: 'POST',
228-
path: '/1/classes/MyObject',
229-
body: { key: 'value2' },
230-
},
231-
],
232-
transaction: true,
233-
}),
234-
});
235-
expect(response.data.length).toEqual(2);
236-
expect(response.data[0].success.objectId).toBeDefined();
237-
expect(response.data[0].success.createdAt).toBeDefined();
238-
expect(response.data[1].success.objectId).toBeDefined();
239-
expect(response.data[1].success.createdAt).toBeDefined();
240-
const query = new Parse.Query('MyObject');
241-
const results = await query.find();
242-
expect(databaseAdapter.createObject.calls.count() % 2).toBe(0);
243-
for (let i = 0; i + 1 < databaseAdapter.createObject.calls.length; i = i + 2) {
244-
expect(databaseAdapter.createObject.calls.argsFor(i)[3]).toBe(
245-
databaseAdapter.createObject.calls.argsFor(i + 1)[3]
246-
);
247-
}
248-
expect(results.map(result => result.get('key')).sort()).toEqual([
249-
'value1',
250-
'value2',
251-
]);
219+
myObject
220+
.save()
221+
.then(() => {
222+
return myObject.destroy();
223+
})
224+
.then(() => {
225+
spyOn(databaseAdapter, 'createObject').and.callThrough();
226+
227+
request({
228+
method: 'POST',
229+
headers: headers,
230+
url: 'http://localhost:8378/1/batch',
231+
body: JSON.stringify({
232+
requests: [
233+
{
234+
method: 'POST',
235+
path: '/1/classes/MyObject',
236+
body: { key: 'value1' },
237+
},
238+
{
239+
method: 'POST',
240+
path: '/1/classes/MyObject',
241+
body: { key: 'value2' },
242+
},
243+
],
244+
transaction: true,
245+
}),
246+
}).then(response => {
247+
expect(response.data.length).toEqual(2);
248+
expect(response.data[0].success.objectId).toBeDefined();
249+
expect(response.data[0].success.createdAt).toBeDefined();
250+
expect(response.data[1].success.objectId).toBeDefined();
251+
expect(response.data[1].success.createdAt).toBeDefined();
252+
const query = new Parse.Query('MyObject');
253+
query.find().then(results => {
254+
expect(databaseAdapter.createObject.calls.count() % 2).toBe(0);
255+
for (let i = 0; i + 1 < databaseAdapter.createObject.calls.length; i = i + 2) {
256+
expect(databaseAdapter.createObject.calls.argsFor(i)[3]).toBe(
257+
databaseAdapter.createObject.calls.argsFor(i + 1)[3]
258+
);
259+
}
260+
expect(results.map(result => result.get('key')).sort()).toEqual([
261+
'value1',
262+
'value2',
263+
]);
264+
done();
265+
});
266+
});
267+
});
252268
});
253269

254270
it('should not save anything when one operation fails in a transaction', async () => {
@@ -356,7 +372,6 @@ describe('batch', () => {
356372
transaction: true,
357373
}),
358374
});
359-
fail();
360375
} catch (error) {
361376
expect(error).toBeDefined();
362377
const query = new Parse.Query('MyObject');

0 commit comments

Comments
 (0)