Skip to content

Commit 76422e6

Browse files
committed
drop tables afterEach for PG, clean up relation tables too
1 parent 8e1069c commit 76422e6

File tree

3 files changed

+35
-22
lines changed

3 files changed

+35
-22
lines changed

spec/ParseQuery.spec.js

+22-19
Original file line numberDiff line numberDiff line change
@@ -848,25 +848,28 @@ describe('Parse.Query testing', () => {
848848
var makeBoxedNumber = function(num, i) {
849849
return new BoxedNumber({ number: num, string: strings[i] });
850850
};
851-
Parse.Object.saveAll([3, 1, 3, 2].map(makeBoxedNumber)).then(
852-
function(list) {
853-
var query = new Parse.Query(BoxedNumber);
854-
query.descending("number").addAscending("string");
855-
query.find(expectSuccess({
856-
success: function(results) {
857-
equal(results.length, 4);
858-
equal(results[0].get("number"), 3);
859-
equal(results[0].get("string"), "a");
860-
equal(results[1].get("number"), 3);
861-
equal(results[1].get("string"), "c");
862-
equal(results[2].get("number"), 2);
863-
equal(results[2].get("string"), "d");
864-
equal(results[3].get("number"), 1);
865-
equal(results[3].get("string"), "b");
866-
done();
867-
}
868-
}));
869-
});
851+
852+
let objects = [3, 1, 3, 2].map(makeBoxedNumber);
853+
Parse.Object.saveAll(objects)
854+
.then((list) => {
855+
var query = new Parse.Query(BoxedNumber);
856+
query.descending("number").addAscending("string");
857+
return query.find();
858+
}).then((results) => {
859+
equal(results.length, 4);
860+
equal(results[0].get("number"), 3);
861+
equal(results[0].get("string"), "a");
862+
equal(results[1].get("number"), 3);
863+
equal(results[1].get("string"), "c");
864+
equal(results[2].get("number"), 2);
865+
equal(results[2].get("string"), "d");
866+
equal(results[3].get("number"), 1);
867+
equal(results[3].get("string"), "b");
868+
done();
869+
}, (err) => {
870+
jfail(err);
871+
done();
872+
});
870873
});
871874

872875
it("order by descending number and string", function(done) {

spec/helper.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,9 @@ afterEach(function(done) {
170170
if (Object.keys(openConnections).length > 0) {
171171
fail('There were open connections to the server left after the test finished');
172172
}
173-
done();
173+
on_db('postgres', () => {
174+
TestUtils.destroyAllDataPermanently().then(done, done);
175+
}, done);
174176
};
175177
Parse.Cloud._removeAllHooks();
176178
databaseAdapter.getAllClasses()

src/Adapters/Storage/Postgres/PostgresStorageAdapter.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -417,9 +417,17 @@ export class PostgresStorageAdapter {
417417

418418
// Delete all data known to this adapter. Used for testing.
419419
deleteAllClasses() {
420-
return this._client.any('SELECT "className" FROM "_SCHEMA"')
420+
return this._client.any('SELECT * FROM "_SCHEMA"')
421421
.then(results => {
422-
const classes = ['_SCHEMA','_PushStatus','_Hooks','_GlobalConfig', ...results.map(result => result.className)];
422+
let joins = results.reduce((list, schema) => {
423+
Object.keys(schema.schema.fields).forEach((field) => {
424+
if (schema.schema.fields[field].type === 'Relation') {
425+
list.push(`_Join:${field}:${schema.className}`);
426+
}
427+
})
428+
return list;
429+
}, []);
430+
const classes = ['_SCHEMA','_PushStatus','_Hooks','_GlobalConfig', ...results.map(result => result.className), ...joins];
423431
return this._client.tx(t=>t.batch(classes.map(className=>t.none('DROP TABLE IF EXISTS $<className:name>', { className }))));
424432
}, error => {
425433
if (error.code === PostgresRelationDoesNotExistError) {

0 commit comments

Comments
 (0)