@@ -7,7 +7,7 @@ const ParseServer = require('parse-server').default;
77const CustomAuth = require ( './CustomAuth' ) ;
88const { TestUtils } = require ( 'parse-server' ) ;
99const Parse = require ( '../../node' ) ;
10- const fs = require ( 'fs' ) ;
10+ const fs = require ( 'fs' ) . promises ;
1111const path = require ( 'path' ) ;
1212const dns = require ( 'dns' ) ;
1313const MockEmailAdapterWithOptions = require ( './support/MockEmailAdapterWithOptions' ) ;
@@ -21,6 +21,7 @@ const port = 1337;
2121const mountPath = '/parse' ;
2222const serverURL = 'http://localhost:1337/parse' ;
2323let didChangeConfiguration = false ;
24+ const distFiles = { } ;
2425
2526/*
2627 To generate the auth data below, the Twitter app "GitHub CI Test App" has
@@ -96,8 +97,11 @@ let parseServer;
9697
9798const reconfigureServer = async ( changedConfiguration = { } ) => {
9899 if ( parseServer ) {
99- await parseServer . handleShutdown ( ) ;
100- await new Promise ( resolve => parseServer . server . close ( resolve ) ) ;
100+ try {
101+ await parseServer . handleShutdown ( ) ;
102+ } catch ( e ) {
103+ console . error ( 'Failed to shutdown the server' , e ) ;
104+ }
101105 parseServer = undefined ;
102106 return reconfigureServer ( changedConfiguration ) ;
103107 }
@@ -113,8 +117,7 @@ const reconfigureServer = async (changedConfiguration = {}) => {
113117 return reconfigureServer ( newConfiguration ) ;
114118 }
115119 const app = parseServer . expressApp ;
116- for ( const fileName of [ 'parse.js' , 'parse.min.js' ] ) {
117- const file = fs . readFileSync ( path . resolve ( __dirname , `./../../dist/${ fileName } ` ) ) . toString ( ) ;
120+ for ( const [ fileName , file ] of Object . entries ( distFiles ) ) {
118121 app . get ( `/${ fileName } ` , ( _req , res ) => {
119122 res . send ( `<html><head>
120123 <meta charset="utf-8">
@@ -132,12 +135,6 @@ const reconfigureServer = async (changedConfiguration = {}) => {
132135 </body></html>` ) ;
133136 } ) ;
134137 }
135- app . get ( '/clear/:fast' , ( req , res ) => {
136- const { fast } = req . params ;
137- TestUtils . destroyAllDataPermanently ( fast ) . then ( ( ) => {
138- res . send ( '{}' ) ;
139- } ) ;
140- } ) ;
141138 parseServer . server . on ( 'connection' , connection => {
142139 const key = `${ connection . remoteAddress } :${ connection . remotePort } ` ;
143140 openConnections [ key ] = connection ;
@@ -157,18 +154,29 @@ global.TestObject = Parse.Object.extend('TestObject');
157154global . reconfigureServer = reconfigureServer ;
158155
159156beforeAll ( async ( ) => {
157+ const promise = [ 'parse.js' , 'parse.min.js' ] . map ( fileName => {
158+ return fs . readFile ( path . resolve ( __dirname , `./../../dist/${ fileName } ` ) , 'utf8' ) . then ( file => {
159+ distFiles [ fileName ] = file ;
160+ } ) ;
161+ } ) ;
162+ await Promise . all ( promise ) ;
160163 await reconfigureServer ( ) ;
161164 Parse . initialize ( 'integration' ) ;
162165 Parse . CoreManager . set ( 'SERVER_URL' , serverURL ) ;
163166 Parse . CoreManager . set ( 'MASTER_KEY' , 'notsosecret' ) ;
167+ Parse . CoreManager . set ( 'REQUEST_ATTEMPT_LIMIT' , 1 ) ;
164168} ) ;
165169
166170afterEach ( async ( ) => {
167- await Parse . User . logOut ( ) ;
168- Parse . Storage . _clear ( ) ;
169- await TestUtils . destroyAllDataPermanently ( true ) ;
170- if ( didChangeConfiguration ) {
171- await reconfigureServer ( ) ;
171+ try {
172+ await Parse . User . logOut ( ) ;
173+ Parse . Storage . _clear ( ) ;
174+ await TestUtils . destroyAllDataPermanently ( true ) ;
175+ if ( didChangeConfiguration ) {
176+ await reconfigureServer ( ) ;
177+ }
178+ } catch ( e ) {
179+ console . error ( 'Failed to tear down the server' , e ) ;
172180 }
173181} ) ;
174182
0 commit comments