From c2caa10791ae8514bf9bb61bf428799c4134a11d Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Mon, 15 May 2017 22:53:25 -0400 Subject: [PATCH 1/2] Changes expected error code --- spec/PostgresInitOptions.spec.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/spec/PostgresInitOptions.spec.js b/spec/PostgresInitOptions.spec.js index c9b9bd778f..c20340c688 100644 --- a/spec/PostgresInitOptions.spec.js +++ b/spec/PostgresInitOptions.spec.js @@ -50,11 +50,12 @@ describe('Postgres database init options', () => { databaseOptions: databaseOptions2 }) }).then(() => { + done.fail('Should not succeed'); + }, error => { + // INVALID_SCHEMA error 3F000 + // https://www.postgresql.org/docs/9.5/static/errcodes-appendix.html + expect(error.code).toEqual('3F000'); done(); - }) - .catch(error => { - expect(error.code).toEqual('42P01'); - done(); - }); + }); }); }); From 32810db790e65e5dc1f8dff760f650a667e36b70 Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Mon, 15 May 2017 23:17:03 -0400 Subject: [PATCH 2/2] nits --- spec/PostgresInitOptions.spec.js | 14 ++++++++++---- src/Adapters/Storage/Postgres/PostgresClient.js | 2 +- .../Storage/Postgres/PostgresStorageAdapter.js | 5 ++++- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/spec/PostgresInitOptions.spec.js b/spec/PostgresInitOptions.spec.js index c20340c688..a0766d5d44 100644 --- a/spec/PostgresInitOptions.spec.js +++ b/spec/PostgresInitOptions.spec.js @@ -1,7 +1,7 @@ const Parse = require('parse/node').Parse; const PostgresStorageAdapter = require('../src/Adapters/Storage/Postgres/PostgresStorageAdapter'); const postgresURI = 'postgres://localhost:5432/parse_server_postgres_adapter_test_database'; - +const Config = require('../src/Config'); //public schema const databaseOptions1 = { initOptions: { @@ -28,22 +28,28 @@ const GameScore = Parse.Object.extend({ className: "GameScore" }); -describe('Postgres database init options', () => { +describe_only_db('postgres')('Postgres database init options', () => { it('should create server with public schema databaseOptions', (done) => { + const config = new Config('test'); + // Close the current DB before continueing + config.database.adapter._pgp.end(); reconfigureServer({ databaseAdapter: new PostgresStorageAdapter({ uri: postgresURI, collectionPrefix: 'test_', databaseOptions: databaseOptions1 }) - }).then(done, fail); + }).then(done, done.fail); }); it("save new GameScore in public schema", function (done) { var score = new GameScore({ "score": 1337, "playerName": "Sean Plott", "cheatMode": false }); - score.save().then(done, fail); + score.save().then(done, done.fail); }); it('should fail to create server if schema databaseOptions does not exist', (done) => { + const config = new Config('test'); + // Close the current DB before continueing + config.database.adapter._pgp.end(); reconfigureServer({ databaseAdapter: new PostgresStorageAdapter({ uri: postgresURI, collectionPrefix: 'test_', diff --git a/src/Adapters/Storage/Postgres/PostgresClient.js b/src/Adapters/Storage/Postgres/PostgresClient.js index a94eb9c29d..47cafbefa7 100644 --- a/src/Adapters/Storage/Postgres/PostgresClient.js +++ b/src/Adapters/Storage/Postgres/PostgresClient.js @@ -23,5 +23,5 @@ export function createClient(uri, databaseOptions) { } } - return client; + return { client, pgp }; } diff --git a/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js b/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js index c74e02bff4..a01ce25b31 100644 --- a/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js +++ b/src/Adapters/Storage/Postgres/PostgresStorageAdapter.js @@ -403,6 +403,7 @@ export class PostgresStorageAdapter { // Private _collectionPrefix: string; _client; + _pgp; constructor({ uri, @@ -410,7 +411,9 @@ export class PostgresStorageAdapter { databaseOptions }) { this._collectionPrefix = collectionPrefix; - this._client = createClient(uri, databaseOptions); + const { client, pgp } = createClient(uri, databaseOptions); + this._client = client; + this._pgp = pgp; } _ensureSchemaCollectionExists(conn) {