11const Parse = require ( 'parse/node' ) . Parse ;
22const PostgresStorageAdapter = require ( '../src/Adapters/Storage/Postgres/PostgresStorageAdapter' ) ;
33const postgresURI = 'postgres://localhost:5432/parse_server_postgres_adapter_test_database' ;
4- const Config = require ( '../src/Config' ) ;
4+ const ParseServer = require ( "../src/index" ) ;
5+ const express = require ( 'express' ) ;
56//public schema
67const databaseOptions1 = {
78 initOptions : {
@@ -28,40 +29,54 @@ const GameScore = Parse.Object.extend({
2829 className : "GameScore"
2930} ) ;
3031
32+ function createParseServer ( options ) {
33+ return new Promise ( ( resolve , reject ) => {
34+ const parseServer = new ParseServer . default ( Object . assign ( { } ,
35+ defaultConfiguration , options , {
36+ serverURL : "http://localhost:12666/parse" ,
37+ __indexBuildCompletionCallbackForTests : promise => {
38+ promise
39+ . then ( ( ) => {
40+ expect ( Parse . applicationId ) . toEqual ( "test" ) ;
41+ var app = express ( ) ;
42+ app . use ( '/parse' , parseServer . app ) ;
43+
44+ const server = app . listen ( 12666 ) ;
45+ Parse . serverURL = "http://localhost:12666/parse" ;
46+ resolve ( server ) ;
47+ } , reject ) ;
48+ } } ) ) ;
49+ } ) ;
50+ }
51+
3152describe_only_db ( 'postgres' ) ( 'Postgres database init options' , ( ) => {
53+ let server ;
54+
55+ afterEach ( ( ) => {
56+ if ( server ) {
57+ server . close ( ) ;
58+ }
59+ } )
60+
3261 it ( 'should create server with public schema databaseOptions' , ( done ) => {
33- const config = new Config ( 'test' ) ;
34- // Close the current DB before continueing
35- config . database . adapter . _pgp . end ( ) ;
36- reconfigureServer ( {
37- databaseAdapter : new PostgresStorageAdapter ( {
38- uri : postgresURI , collectionPrefix : 'test_' ,
39- databaseOptions : databaseOptions1
40- } )
41- } ) . then ( done , done . fail ) ;
42- } ) ;
62+ const adapter = new PostgresStorageAdapter ( {
63+ uri : postgresURI , collectionPrefix : 'test_' ,
64+ databaseOptions : databaseOptions1
65+ } )
4366
44- it ( "save new GameScore in public schema" , function ( done ) {
45- var score = new GameScore ( { "score" : 1337 , "playerName" : "Sean Plott" , "cheatMode" : false } ) ;
46- score . save ( ) . then ( done , done . fail ) ;
67+ createParseServer ( { databaseAdapter : adapter } ) . then ( ( newServer ) => {
68+ server = newServer ;
69+ var score = new GameScore ( { "score" : 1337 , "playerName" : "Sean Plott" , "cheatMode" : false } ) ;
70+ return score . save ( ) ;
71+ } ) . then ( done , done . fail ) ;
4772 } ) ;
4873
4974 it ( 'should fail to create server if schema databaseOptions does not exist' , ( done ) => {
50- const config = new Config ( 'test' ) ;
51- // Close the current DB before continueing
52- config . database . adapter . _pgp . end ( ) ;
53- reconfigureServer ( {
54- databaseAdapter : new PostgresStorageAdapter ( {
55- uri : postgresURI , collectionPrefix : 'test_' ,
56- databaseOptions : databaseOptions2
57- } )
58- } ) . then ( ( ) => {
59- done . fail ( 'Should not succeed' ) ;
60- } , error => {
61- // INVALID_SCHEMA error 3F000
62- // https://www.postgresql.org/docs/9.5/static/errcodes-appendix.html
63- expect ( error . code ) . toEqual ( '3F000' ) ;
64- done ( ) ;
65- } ) ;
75+ const adapter = new PostgresStorageAdapter ( {
76+ uri : postgresURI , collectionPrefix : 'test_' ,
77+ databaseOptions : databaseOptions2
78+ } )
79+
80+ createParseServer ( { databaseAdapter : adapter } ) . then ( done . fail , done ) ;
6681 } ) ;
6782} ) ;
0 commit comments