Skip to content

Commit 96e211d

Browse files
committed
Default A+ compliance to true
1 parent 7c16dee commit 96e211d

File tree

6 files changed

+54
-11
lines changed

6 files changed

+54
-11
lines changed

src/ParseObject.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1746,7 +1746,7 @@ var DefaultController = {
17461746
return ObjectState.enqueueTask(target.className, target._getStateIdentifier(), task).then(() => {
17471747
return target;
17481748
}, (error) => {
1749-
return error;
1749+
return ParsePromise.error(error);
17501750
});
17511751
}
17521752
return ParsePromise.as();

src/ParsePromise.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* of patent rights can be found in the PATENTS file in the same directory.
88
*/
99

10-
var isPromisesAPlusCompliant = false;
10+
var isPromisesAPlusCompliant = true;
1111

1212
/**
1313
* A Promise is returned by async methods as a hook to provide callbacks to be

src/__tests__/ObjectState-test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,10 +294,12 @@ describe('ObjectState', () => {
294294
});
295295
expect(called).toEqual([false, false, false]);
296296
p1.resolve();
297+
jest.runAllTicks();
297298
expect(t1._resolved).toBe(true);
298299
expect(t2._resolved).toBe(false);
299300
expect(called).toEqual([true, false, false]);
300301
p2.resolve();
302+
jest.runAllTicks();
301303
expect(t2._resolved).toBe(true);
302304
expect(t3._resolved).toBe(true);
303305
expect(called).toEqual([true, true, true]);

src/__tests__/ParseObject-test.js

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,7 @@ describe('ParseObject', () => {
841841
expect(p.get('age')).toBe(39);
842842
done();
843843
});
844+
jest.runAllTicks();
844845
expect(p._getPendingOps().length).toBe(2);
845846
p.increment('age');
846847
expect(p.get('age')).toBe(39);
@@ -867,17 +868,20 @@ describe('ParseObject', () => {
867868
expect(xhrs.length).toBe(0);
868869
p.increment('updates');
869870
p.save();
871+
jest.runAllTicks();
870872
expect(p._getPendingOps().length).toBe(2);
871873
expect(xhrs.length).toBe(1);
872874
p.increment('updates');
873875
p.save();
876+
jest.runAllTicks();
874877
expect(p._getPendingOps().length).toBe(3);
875878
expect(xhrs.length).toBe(1);
876879

877880
xhrs[0].status = 200;
878881
xhrs[0].responseText = JSON.stringify({ objectId: 'P15', updates: 1 });
879882
xhrs[0].readyState = 4;
880883
xhrs[0].onreadystatechange();
884+
jest.runAllTicks();
881885

882886
expect(p._getServerData()).toEqual({ updates: 1 });
883887
expect(p.get('updates')).toBe(2);
@@ -904,6 +908,7 @@ describe('ParseObject', () => {
904908

905909
done();
906910
});
911+
jest.runAllTicks();
907912

908913
xhr.status = 404;
909914
xhr.responseText = JSON.stringify({ code: 103, error: 'Invalid class name' });
@@ -926,15 +931,18 @@ describe('ParseObject', () => {
926931
expect(p._getPendingOps().length).toBe(1);
927932
p.increment('updates');
928933
p.save();
934+
jest.runAllTicks();
929935
expect(p._getPendingOps().length).toBe(2);
930936
p.set('updates', 12);
931937
p.save();
938+
jest.runAllTicks();
932939
expect(p._getPendingOps().length).toBe(3);
933940

934941
xhrs[0].status = 404;
935942
xhrs[0].responseText = JSON.stringify({ code: 103, error: 'Invalid class name' });
936943
xhrs[0].readyState = 4;
937944
xhrs[0].onreadystatechange();
945+
jest.runAllTicks();
938946

939947
expect(p._getPendingOps().length).toBe(2);
940948
expect(p._getPendingOps()[0]).toEqual({
@@ -965,17 +973,20 @@ describe('ParseObject', () => {
965973
expect(parent.id).toBe('parent');
966974
done();
967975
});
976+
jest.runAllTicks();
968977

969978
expect(xhrs.length).toBe(1);
970979
expect(xhrs[0].open.mock.calls[0]).toEqual(
971980
['POST', 'https://api.parse.com/1/batch', true]
972981
);
973982
xhrs[0].responseText = JSON.stringify([ { success: { objectId: 'child' } } ]);
974983
xhrs[0].onreadystatechange();
984+
jest.runAllTicks();
975985

976986
expect(xhrs.length).toBe(2);
977987
xhrs[1].responseText = JSON.stringify({ objectId: 'parent' });
978988
xhrs[1].onreadystatechange();
989+
jest.runAllTicks();
979990
}));
980991

981992
it('will fail for a circular dependency of non-existing objects', () => {
@@ -1052,6 +1063,7 @@ describe('ParseObject', () => {
10521063
expect(parent.id).toBe('parent');
10531064
done();
10541065
});
1066+
jest.runAllTicks();
10551067

10561068
expect(xhrs.length).toBe(1);
10571069
expect(xhrs[0].open.mock.calls[0]).toEqual(
@@ -1072,12 +1084,14 @@ describe('ParseObject', () => {
10721084
);
10731085
xhrs[0].responseText = JSON.stringify([ { success: { objectId: 'parent' } } ]);
10741086
xhrs[0].onreadystatechange();
1087+
jest.runAllTicks();
10751088

10761089
expect(parent.id).toBe('parent');
10771090

10781091
expect(xhrs.length).toBe(2);
10791092
xhrs[1].responseText = JSON.stringify([ { success: {} } ]);
10801093
xhrs[1].onreadystatechange();
1094+
jest.runAllTicks();
10811095
}));
10821096

10831097
it('can save a chain of unsaved objects', asyncHelper((done) => {
@@ -1107,6 +1121,7 @@ describe('ParseObject', () => {
11071121
expect(grandchild.id).toBe('grandchild');
11081122
done();
11091123
});
1124+
jest.runAllTicks();
11101125

11111126
expect(xhrs.length).toBe(1);
11121127
expect(xhrs[0].open.mock.calls[0]).toEqual(
@@ -1121,6 +1136,7 @@ describe('ParseObject', () => {
11211136
);
11221137
xhrs[0].responseText = JSON.stringify([ { success: { objectId: 'grandchild' } } ]);
11231138
xhrs[0].onreadystatechange();
1139+
jest.runAllTicks();
11241140

11251141
expect(xhrs.length).toBe(2);
11261142
expect(xhrs[1].open.mock.calls[0]).toEqual(
@@ -1141,6 +1157,7 @@ describe('ParseObject', () => {
11411157
);
11421158
xhrs[1].responseText = JSON.stringify([ { success: { objectId: 'child' } } ]);
11431159
xhrs[1].onreadystatechange();
1160+
jest.runAllTicks();
11441161

11451162
expect(xhrs.length).toBe(3);
11461163
expect(xhrs[2].open.mock.calls[0]).toEqual(
@@ -1161,6 +1178,7 @@ describe('ParseObject', () => {
11611178
);
11621179
xhrs[2].responseText = JSON.stringify([ { success: { objectId: 'parent' } } ]);
11631180
xhrs[2].onreadystatechange();
1181+
jest.runAllTicks();
11641182
}));
11651183

11661184
it('can update fields via a fetch() call', asyncHelper((done) => {
@@ -1206,11 +1224,13 @@ describe('ParseObject', () => {
12061224
expect(JSON.parse(xhr.send.mock.calls[0])._method).toBe('DELETE');
12071225
done();
12081226
});
1227+
jest.runAllTicks();
12091228

12101229
xhr.status = 200;
12111230
xhr.responseText = JSON.stringify({});
12121231
xhr.readyState = 4;
12131232
xhr.onreadystatechange();
1233+
jest.runAllTicks();
12141234
}));
12151235

12161236
it('can save an array of objects', asyncHelper((done) => {
@@ -1235,6 +1255,7 @@ describe('ParseObject', () => {
12351255
});
12361256
done();
12371257
});
1258+
jest.runAllTicks();
12381259

12391260
xhr.status = 200;
12401261
xhr.responseText = JSON.stringify([
@@ -1246,6 +1267,7 @@ describe('ParseObject', () => {
12461267
]);
12471268
xhr.readyState = 4;
12481269
xhr.onreadystatechange();
1270+
jest.runAllTicks();
12491271
}));
12501272

12511273
it('returns the first error when saving an array of objects', asyncHelper((done) => {
@@ -1274,6 +1296,7 @@ describe('ParseObject', () => {
12741296
expect(error.message).toBe('first error');
12751297
done();
12761298
});
1299+
jest.runAllTicks();
12771300

12781301
xhrs[0].responseText = JSON.stringify([
12791302
{ success: { objectId: 'pid0' } },
@@ -1298,15 +1321,8 @@ describe('ParseObject', () => {
12981321
{ success: { objectId: 'pid19' } },
12991322
]);
13001323
xhrs[0].onreadystatechange();
1324+
jest.runAllTicks();
13011325
}));
1302-
1303-
it('can fetch an array of objects', () => {
1304-
1305-
});
1306-
1307-
it('can destroy an array of objects', () => {
1308-
1309-
});
13101326
});
13111327

13121328
describe('ObjectController', () => {
@@ -1328,11 +1344,13 @@ describe('ObjectController', () => {
13281344
expect(body._method).toBe('GET');
13291345
done();
13301346
});
1347+
jest.runAllTicks();
13311348

13321349
xhr.status = 200;
13331350
xhr.responseText = JSON.stringify({});
13341351
xhr.readyState = 4;
13351352
xhr.onreadystatechange();
1353+
jest.runAllTicks();
13361354
}));
13371355

13381356
it('can fetch an array of objects', asyncHelper((done) => {
@@ -1371,7 +1389,9 @@ describe('ObjectController', () => {
13711389
var destroy = objectController.destroy(p2, {
13721390
useMasterKey: true
13731391
});
1392+
jest.runAllTicks();
13741393
xhr.onreadystatechange();
1394+
jest.runAllTicks();
13751395
return destroy;
13761396
}).then(() => {
13771397
expect(xhr.open.mock.calls[1]).toEqual(
@@ -1382,11 +1402,13 @@ describe('ObjectController', () => {
13821402
expect(body._MasterKey).toBe('C');
13831403
done();
13841404
});
1405+
jest.runAllTicks();
13851406

13861407
xhr.status = 200;
13871408
xhr.responseText = JSON.stringify({});
13881409
xhr.readyState = 4;
13891410
xhr.onreadystatechange();
1411+
jest.runAllTicks();
13901412
}));
13911413

13921414
it('can destroy an array of objects', asyncHelper((done) => {
@@ -1443,17 +1465,22 @@ describe('ObjectController', () => {
14431465
objects[i].id = 'pid' + i;
14441466
}
14451467
var destroy = objectController.destroy(objects, {});
1468+
jest.runAllTicks();
14461469
xhrs[1].onreadystatechange();
1470+
jest.runAllTicks();
14471471
expect(xhrs[1].open.mock.calls.length).toBe(1);
14481472
xhrs[2].onreadystatechange();
1473+
jest.runAllTicks();
14491474
return destroy;
14501475
}).then(() => {
14511476
expect(JSON.parse(xhrs[1].send.mock.calls[0]).requests.length).toBe(20);
14521477
expect(JSON.parse(xhrs[2].send.mock.calls[0]).requests.length).toBe(2);
14531478
done();
14541479
});
1480+
jest.runAllTicks();
14551481

14561482
xhrs[0].onreadystatechange();
1483+
jest.runAllTicks();
14571484
}));
14581485

14591486
it('can save an object', asyncHelper((done) => {
@@ -1475,11 +1502,13 @@ describe('ObjectController', () => {
14751502
expect(body.key).toBe('value');
14761503
done();
14771504
});
1505+
jest.runAllTicks();
14781506

14791507
xhr.status = 200;
14801508
xhr.responseText = JSON.stringify({});
14811509
xhr.readyState = 4;
14821510
xhr.onreadystatechange();
1511+
jest.runAllTicks();
14831512
}));
14841513

14851514
it('can save an array of files', asyncHelper((done) => {
@@ -1513,6 +1542,7 @@ describe('ObjectController', () => {
15131542
);
15141543
done();
15151544
});
1545+
jest.runAllTicks();
15161546

15171547
var names = ['parse.txt', 'parse2.txt', 'parse3.txt'];
15181548
for (var i = 0; i < 3; i++) {
@@ -1521,6 +1551,7 @@ describe('ObjectController', () => {
15211551
url: 'http://files.parsetfss.com/a/' + names[i]
15221552
});
15231553
xhrs[i].onreadystatechange();
1554+
jest.runAllTicks();
15241555
}
15251556
}));
15261557

@@ -1557,6 +1588,7 @@ describe('ObjectController', () => {
15571588
});
15581589
}
15591590
var save = objectController.save(objects, {});
1591+
jest.runAllTicks();
15601592
xhrs[1].responseText = JSON.stringify(response.slice(0, 20));
15611593
xhrs[2].responseText = JSON.stringify(response.slice(20));
15621594

@@ -1568,12 +1600,14 @@ describe('ObjectController', () => {
15681600
objects[20].set('index', 0);
15691601

15701602
xhrs[1].onreadystatechange();
1603+
jest.runAllTicks();
15711604
expect(objects[0].dirty()).toBe(false);
15721605
expect(objects[0].id).toBe('pid0');
15731606
expect(objects[20].dirty()).toBe(true);
15741607
expect(objects[20].id).toBe(undefined);
15751608

15761609
xhrs[2].onreadystatechange();
1610+
jest.runAllTicks();
15771611
expect(objects[20].dirty()).toBe(false);
15781612
expect(objects[20].get('index')).toBe(0);
15791613
expect(objects[20].id).toBe('pid20');
@@ -1582,6 +1616,7 @@ describe('ObjectController', () => {
15821616
expect(results.length).toBe(22);
15831617
done();
15841618
});
1619+
jest.runAllTicks();
15851620

15861621
xhrs[0].responseText = JSON.stringify([
15871622
{ success: { objectId: 'pid0', index: 0 } },
@@ -1591,6 +1626,7 @@ describe('ObjectController', () => {
15911626
{ success: { objectId: 'pid4', index: 4 } },
15921627
]);
15931628
xhrs[0].onreadystatechange();
1629+
jest.runAllTicks();
15941630
}));
15951631

15961632
it('does not fail when checking if arrays of pointers are dirty', () => {
@@ -1619,6 +1655,7 @@ describe('ObjectController', () => {
16191655
items.push(new ParseObject('Item'));
16201656
brand.set('items', items);
16211657
expect(function() { brand.save(); }).not.toThrow();
1658+
jest.runAllTicks();
16221659

16231660
xhrs[0].onreadystatechange();
16241661
});

src/__tests__/ParseUser-test.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,10 @@ describe('ParseUser', () => {
469469
deauthenticate() {}
470470
};
471471

472-
ParseUser.logInWith(provider, {}).then(null, (error) => {
472+
ParseUser.logInWith(provider, {}).then((r) => {
473+
console.log('arrrrr');
474+
console.log(r);
475+
}, (error) => {
473476
expect(error.code).toBe(ParseError.ACCOUNT_ALREADY_LINKED);
474477
expect(error.message).toBe('Another user is already linked to this facebook id.');
475478
done();

src/__tests__/RESTController-test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ describe('RESTController', () => {
135135
};
136136
RESTController._setXHR(function() { return xhr; });
137137
RESTController.request('GET', 'classes/MyObject', {}, { sessionToken: '1234' });
138+
jest.runAllTicks();
138139
expect(xhr.open.mock.calls[0]).toEqual(
139140
['POST', 'https://api.parse.com/1/classes/MyObject', true]
140141
);

0 commit comments

Comments
 (0)