Skip to content

Commit c4eee61

Browse files
committed
added test cases
fix flaky test
1 parent 79c916d commit c4eee61

File tree

3 files changed

+90
-3
lines changed

3 files changed

+90
-3
lines changed

integration/test/ParseQueryAggregateTest.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ describe('Parse Aggregate Query', () => {
6363
assert.equal(results[0], 10);
6464
assert.equal(results[1], 20);
6565
done();
66-
}).catch(done.fail);
66+
});
6767
});
6868

6969
it('distinct equalTo query', (done) => {

src/__tests__/Cloud-test.js

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ describe('CloudController', () => {
126126
CoreManager.setRESTController({ request: request, ajax: ajax });
127127
});
128128

129-
it('passes encoded requests', () => {
129+
it('run passes encoded requests', () => {
130130
Cloud.run('myfunction', { value: 12, when: new Date(Date.UTC(2015,0,1)) });
131131

132132
expect(CoreManager.getRESTController().request.mock.calls[0])
@@ -135,7 +135,7 @@ describe('CloudController', () => {
135135
}, { }]);
136136
});
137137

138-
it('passes options', () => {
138+
it('run passes options', () => {
139139
Cloud.run('myfunction', { value: 12 }, { useMasterKey: true });
140140

141141
expect(CoreManager.getRESTController().request.mock.calls[0])
@@ -150,4 +150,49 @@ describe('CloudController', () => {
150150
value: 12
151151
}, { sessionToken: 'asdf1234' }]);
152152
});
153+
154+
it('run invalid response', () => {
155+
var request = jest.genMockFunction();
156+
request.mockReturnValue(ParsePromise.as({
157+
success: false
158+
}));
159+
var ajax = jest.genMockFunction();
160+
CoreManager.setRESTController({ request: request, ajax: ajax });
161+
162+
Cloud.run('myfunction').then(null).catch(() => {
163+
done();
164+
});
165+
});
166+
167+
it('startJob passes encoded requests', () => {
168+
Cloud.startJob('myJob', { value: 12, when: new Date(Date.UTC(2015,0,1)) });
169+
170+
expect(CoreManager.getRESTController().request.mock.calls[0])
171+
.toEqual(['POST', 'jobs/myJob', {
172+
value: 12, when: { __type: 'Date', iso: '2015-01-01T00:00:00.000Z'}
173+
}, { useMasterKey: true }]);
174+
});
175+
176+
it('startJob passes options', () => {
177+
Cloud.startJob('myJob', { value: 12 }, { useMasterKey: true });
178+
179+
expect(CoreManager.getRESTController().request.mock.calls[0])
180+
.toEqual(['POST', 'jobs/myJob', {
181+
value: 12
182+
}, { useMasterKey: true }]);
183+
});
184+
185+
it('getJobsData passes no options', () => {
186+
Cloud.getJobsData();
187+
188+
expect(CoreManager.getRESTController().request.mock.calls[0])
189+
.toEqual(['GET', 'cloud_code/jobs/data', null, { useMasterKey: true }]);
190+
});
191+
192+
it('getJobsData passes options', () => {
193+
Cloud.getJobsData({ useMasterKey: true });
194+
195+
expect(CoreManager.getRESTController().request.mock.calls[0])
196+
.toEqual(['GET', 'cloud_code/jobs/data', null, { useMasterKey: true }]);
197+
});
153198
});

src/__tests__/RESTController-test.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,48 @@ describe('RESTController', () => {
206206
});
207207
});
208208

209+
it('handles x-parse-job-status-id header', (done) => {
210+
var XHR = function() { };
211+
XHR.prototype = {
212+
open: function() { },
213+
setRequestHeader: function() { },
214+
getResponseHeader: function(name) { return 1234; },
215+
send: function() {
216+
this.status = 200;
217+
this.responseText = '{}';
218+
this.readyState = 4;
219+
this.onreadystatechange();
220+
}
221+
};
222+
RESTController._setXHR(XHR);
223+
RESTController.request('GET', 'classes/MyObject', {}, {})
224+
.then((response) => {
225+
expect(response).toBe(1234);
226+
done();
227+
});
228+
});
229+
230+
it('handles invalid header', (done) => {
231+
var XHR = function() { };
232+
XHR.prototype = {
233+
open: function() { },
234+
setRequestHeader: function() { },
235+
getResponseHeader: function(name) { return null; },
236+
send: function() {
237+
this.status = 200;
238+
this.responseText = '{"result":"hello"}';
239+
this.readyState = 4;
240+
this.onreadystatechange();
241+
}
242+
};
243+
RESTController._setXHR(XHR);
244+
RESTController.request('GET', 'classes/MyObject', {}, {})
245+
.then((response) => {
246+
expect(response.result).toBe('hello');
247+
done();
248+
});
249+
});
250+
209251
it('attaches the session token of the current user', () => {
210252
CoreManager.setUserController({
211253
currentUserAsync() {

0 commit comments

Comments
 (0)