Two tests that fail often. Give em a little more time. (#3453)

This commit is contained in:
Arthur Cinader
2017-02-08 10:06:42 -08:00
committed by GitHub
parent e32a37c2ec
commit 4979503f63
3 changed files with 24 additions and 15 deletions

View File

@@ -156,8 +156,9 @@ describe("Cloud Code Logger", () => {
.save() .save()
.then( .then(
() => done.fail('this is not supposed to succeed'), () => done.fail('this is not supposed to succeed'),
() => logController.getLogs({ from: Date.now() - 500, size: 1000 }) () => new Promise(resolve => setTimeout(resolve, 100))
) )
.then(() => logController.getLogs({ from: Date.now() - 500, size: 1000 }))
.then(logs => { .then(logs => {
const log = logs[1]; // 0 is the 'uh oh!' from rejection... const log = logs[1]; // 0 is the 'uh oh!' from rejection...
expect(log.level).toEqual('error'); expect(log.level).toEqual('error');

View File

@@ -143,7 +143,9 @@ describe('Hooks', () => {
}); });
it("should fail trying to create two times the same function", (done) => { it("should fail trying to create two times the same function", (done) => {
Parse.Hooks.createFunction("my_new_function", "http://url.com").then(() => { Parse.Hooks.createFunction("my_new_function", "http://url.com")
.then(() => new Promise(resolve => setTimeout(resolve, 100)))
.then(() => {
return Parse.Hooks.createFunction("my_new_function", "http://url.com") return Parse.Hooks.createFunction("my_new_function", "http://url.com")
}, () => { }, () => {
fail("should create a new function"); fail("should create a new function");
@@ -421,8 +423,8 @@ describe('Hooks', () => {
// But this should override the key upon return // But this should override the key upon return
res.json({success: object}); res.json({success: object});
}); });
// The function is delete as the DB is dropped between calls // The function is deleted as the DB is dropped between calls
Parse.Hooks.createTrigger("SomeRandomObject", "beforeSave" ,hookServerURL + "/BeforeSaveSome").then(function(){ Parse.Hooks.createTrigger("SomeRandomObject", "beforeSave", hookServerURL + "/BeforeSaveSome").then(function () {
const obj = new Parse.Object("SomeRandomObject"); const obj = new Parse.Object("SomeRandomObject");
return obj.save(); return obj.save();
}).then(function(res) { }).then(function(res) {
@@ -444,7 +446,7 @@ describe('Hooks', () => {
object.set('hello', "world"); object.set('hello', "world");
res.json({success: object}); res.json({success: object});
}); });
Parse.Hooks.createTrigger("SomeRandomObject2", "beforeSave" ,hookServerURL + "/BeforeSaveSome2").then(function(){ Parse.Hooks.createTrigger("SomeRandomObject2", "beforeSave", hookServerURL + "/BeforeSaveSome2").then(function(){
const obj = new Parse.Object("SomeRandomObject2"); const obj = new Parse.Object("SomeRandomObject2");
return obj.save(); return obj.save();
}).then(function(res) { }).then(function(res) {
@@ -470,20 +472,19 @@ describe('Hooks', () => {
res.json({success: {}}); res.json({success: {}});
}) })
}); });
// The function is delete as the DB is dropped between calls // The function is deleted as the DB is dropped between calls
Parse.Hooks.createTrigger("SomeRandomObject", "afterSave" ,hookServerURL + "/AfterSaveSome").then(function(){ Parse.Hooks.createTrigger("SomeRandomObject", "afterSave", hookServerURL + "/AfterSaveSome").then(function(){
const obj = new Parse.Object("SomeRandomObject"); const obj = new Parse.Object("SomeRandomObject");
return obj.save(); return obj.save();
}).then(function() { }).then(function() {
var promise = new Parse.Promise(); var promise = new Parse.Promise();
// Wait a bit here as it's an after save // Wait a bit here as it's an after save
setTimeout(function(){ setTimeout(() => {
expect(triggerCount).toBe(1); expect(triggerCount).toBe(1);
var q = new Parse.Query("AnotherObject"); new Parse.Query("AnotherObject")
q.get(newObjectId).then(function(r){ .get(newObjectId)
promise.resolve(r); .then((r) => promise.resolve(r));
}); }, 500);
}, 300)
return promise; return promise;
}).then(function(res){ }).then(function(res){
expect(res.get("foo")).toEqual("bar"); expect(res.get("foo")).toEqual("bar");

View File

@@ -12,6 +12,10 @@ let config;
let database; let database;
const defaultColumns = require('../src/Controllers/SchemaController').defaultColumns; const defaultColumns = require('../src/Controllers/SchemaController').defaultColumns;
const delay = function delay(delay) {
return new Promise(resolve => setTimeout(resolve, delay));
}
const installationSchema = { fields: Object.assign({}, defaultColumns._Default, defaultColumns._Installation) }; const installationSchema = { fields: Object.assign({}, defaultColumns._Default, defaultColumns._Installation) };
describe('Installations', () => { describe('Installations', () => {
@@ -542,12 +546,14 @@ describe('Installations', () => {
}; };
return rest.create(config, auth.nobody(config), '_Installation', input); return rest.create(config, auth.nobody(config), '_Installation', input);
}) })
.then(() => delay(100))
.then(() => database.adapter.find('_Installation', installationSchema, {installationId: installId1}, {})) .then(() => database.adapter.find('_Installation', installationSchema, {installationId: installId1}, {}))
.then((results) => { .then((results) => {
expect(results.length).toEqual(1); expect(results.length).toEqual(1);
firstObject = results[0]; firstObject = results[0];
return database.adapter.find('_Installation', installationSchema, {installationId: installId2}, {});
}) })
.then(() => delay(100))
.then(() => database.adapter.find('_Installation', installationSchema, {installationId: installId2}, {}))
.then(results => { .then(results => {
expect(results.length).toEqual(1); expect(results.length).toEqual(1);
secondObject = results[0]; secondObject = results[0];
@@ -558,6 +564,7 @@ describe('Installations', () => {
}; };
return rest.update(config, auth.nobody(config), '_Installation', secondObject.objectId, input); return rest.update(config, auth.nobody(config), '_Installation', secondObject.objectId, input);
}) })
.then(() => delay(100))
.then(() => database.adapter.find('_Installation', installationSchema, {objectId: firstObject.objectId}, {})) .then(() => database.adapter.find('_Installation', installationSchema, {objectId: firstObject.objectId}, {}))
.then(results => { .then(results => {
// The first object should have been deleted // The first object should have been deleted