@@ -7,7 +7,7 @@ const ParseServer = require('parse-server').default;
7
7
const CustomAuth = require ( './CustomAuth' ) ;
8
8
const { TestUtils } = require ( 'parse-server' ) ;
9
9
const Parse = require ( '../../node' ) ;
10
- const fs = require ( 'fs' ) ;
10
+ const fs = require ( 'fs' ) . promises ;
11
11
const path = require ( 'path' ) ;
12
12
const dns = require ( 'dns' ) ;
13
13
const MockEmailAdapterWithOptions = require ( './support/MockEmailAdapterWithOptions' ) ;
@@ -21,6 +21,7 @@ const port = 1337;
21
21
const mountPath = '/parse' ;
22
22
const serverURL = 'http://localhost:1337/parse' ;
23
23
let didChangeConfiguration = false ;
24
+ const distFiles = { } ;
24
25
25
26
/*
26
27
To generate the auth data below, the Twitter app "GitHub CI Test App" has
@@ -96,8 +97,11 @@ let parseServer;
96
97
97
98
const reconfigureServer = async ( changedConfiguration = { } ) => {
98
99
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
+ }
101
105
parseServer = undefined ;
102
106
return reconfigureServer ( changedConfiguration ) ;
103
107
}
@@ -113,8 +117,7 @@ const reconfigureServer = async (changedConfiguration = {}) => {
113
117
return reconfigureServer ( newConfiguration ) ;
114
118
}
115
119
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 ) ) {
118
121
app . get ( `/${ fileName } ` , ( _req , res ) => {
119
122
res . send ( `<html><head>
120
123
<meta charset="utf-8">
@@ -132,12 +135,6 @@ const reconfigureServer = async (changedConfiguration = {}) => {
132
135
</body></html>` ) ;
133
136
} ) ;
134
137
}
135
- app . get ( '/clear/:fast' , ( req , res ) => {
136
- const { fast } = req . params ;
137
- TestUtils . destroyAllDataPermanently ( fast ) . then ( ( ) => {
138
- res . send ( '{}' ) ;
139
- } ) ;
140
- } ) ;
141
138
parseServer . server . on ( 'connection' , connection => {
142
139
const key = `${ connection . remoteAddress } :${ connection . remotePort } ` ;
143
140
openConnections [ key ] = connection ;
@@ -157,18 +154,29 @@ global.TestObject = Parse.Object.extend('TestObject');
157
154
global . reconfigureServer = reconfigureServer ;
158
155
159
156
beforeAll ( 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 ) ;
160
163
await reconfigureServer ( ) ;
161
164
Parse . initialize ( 'integration' ) ;
162
165
Parse . CoreManager . set ( 'SERVER_URL' , serverURL ) ;
163
166
Parse . CoreManager . set ( 'MASTER_KEY' , 'notsosecret' ) ;
167
+ Parse . CoreManager . set ( 'REQUEST_ATTEMPT_LIMIT' , 1 ) ;
164
168
} ) ;
165
169
166
170
afterEach ( 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 ) ;
172
180
}
173
181
} ) ;
174
182
0 commit comments