Randomized with seed 31692 Started Jasmine started warn: DeprecationWarning: The Parse Server option 'allowClientClassCreation' default will change to 'false' in a future version. warn: DeprecationWarning: The Parse Server option 'allowExpiredAuthDataToken' default will change to 'false' in a future version. . CacheController √ should prefix user cache . √ should handle cache rejections . √ should prefix role cache . √ should expose role and user caches . √ should clear the entire cache . google auth adapter √ (using client id as string) should throw error with with invalid jwt issuer **. √ (using client id as string) should verify id_token . √ should not decode invalid id_token . √ should throw error with missing id_token . httpRequest √ should post on echo . √ should not crash with undefined body . √ should encode a query string body by default . √ should params string to query string . √ serialized httpResponse correctly with body object . √ serialized httpResponse correctly with body buffer JSON Object . √ serialized httpResponse with Parse._encode should be allright . √ serialized httpResponse correctly with body string . √ should fail on 404 . √ should follow redirects when set . √ should do /hello . √ should do not follow redirects by default . √ serialized httpResponse correctly with body buffer string . √ should encode a JSON body . √ should not encode a wrong content type . √ should encode a www-form body . √ should params object to query string . √ should fail gracefully . saveFile hooks √ afterSaveFile should set fileSize to null if beforeSave returns an already saved file . √ beforeDeleteFile should throw error . √ beforeDeleteFile should call with fileObject . √ beforeSaveFile should contain metadata and tags saved from client . √ afterSaveFile should change fileSize when file data changes . √ beforeSaveFile should change values of uploaded file by editing fileObject directly . √ afterSaveFile should throw error . √ beforeSaveFile should return same file data with new file name . √ beforeSaveFile should return file that is already saved and not save anything to files adapter . √ throw empty error from beforeSaveFile . √ beforeSaveFile should change values by returning new fileObject . √ throw custom error from beforeSaveFile . √ beforeSaveFile should not change file if nothing is returned . √ afterDeleteFile should call with fileObject . √ beforeSaveFile should throw error . √ legacy hooks . √ afterSaveFile should call with fileObject . instagram auth adapter √ should use default api . √ response object without data child . √ should pass in api url . defaultGraphQLTypes TypeValidationError √ should be an error with specific message . parseStringValue √ should fail if not a string . √ should return itself if a string . parseIntValue √ should fail if not a string . √ should fail if not an integer string . √ should parse to number if a string . Date serialize date type √ should return iso value if object . √ should do nothing if string . √ should fail if not an valid object or string . √ should serialize date . parse literal √ should fail if not an valid object or string . √ should parse to date if string . √ should parse to date if object . parse value √ should parse object value . √ should fail if not an valid object or string . √ should parse string value . parseListValues √ should parse to list if an array . √ should fail if not an array . File parse literal √ should parse to file if object . √ should parse to file if string . √ should fail if not an valid object or string . serialize file type √ should return file name if object . √ should do nothing if string . √ should fail if not an valid object or string . parseValue √ should parse boolean . √ should parse list . √ should parse object . √ should parse int . √ should parse float . √ should parse string . √ should return value otherwise . parseObjectFields √ should parse to list if an array . √ should fail if not an array . parseFloatValue √ should parse to number if a string . √ should fail if not a float string . √ should fail if not a string . parseDateValue √ should fail if not a string . √ should parse to date if a string . √ should fail if not a date string . Bytes serialize bytes type √ should do nothing if string . √ should fail if not an valid object or string . √ should return base64 value if object . parse value √ should parse string value . √ should fail if not an valid object or string . √ should parse object value . parse literal √ should fail if not an valid object or string . √ should parse to bytes if object . √ should parse to bytes if string . parseBooleanValue √ should return itself if a boolean . √ should fail if not a boolean . Idempotency √ should enforce idempotency for cloud code function . √ should delete request entry after TTL . √ should delete request entry when postgress ttl function is called . √ should enforce idempotency for installation object creation . √ should enforce idempotency for cloud code jobs . √ should enforce idempotency for user object creation . √ should enforce idempotency for class object creation . √ should re-throw any other error unchanged when writing request entry fails for any other reason . √ should throw on invalid configuration . √ should not interfere with calls of different request ID . √ should use default configuration when none is set . sendEmail √ can send email via Parse.Cloud . √ cannot send email without adapter . definitions √ should have valid types . √ should throw when using deprecated facebookAppIds . AuthenticationProviders √ should provide the right responses for adapter gcenter . √ should provide the right responses for adapter instagram . √ can deprecate . √ Should validate structure of linkedin . √ Should validate structure of gpgames . √ should handle Facebook appSecret for validating auth data . √ should provide the right responses for adapter apple . √ should provide the right responses for adapter github . √ Should validate structure of gcenter . √ should provide the right responses for adapter linkedin . √ properly loads a custom adapter with options . √ Should validate structure of google . √ Should validate structure of qq . √ Should validate structure of meetup . √ should handle Facebook appSecret for validating appIds . √ Should validate structure of twitter . √ should only create a single user with REST API . √ should provide the right responses for adapter vkontakte . √ should support loginWith with session token and with/without mutated authData . √ should provide the right responses for adapter google . √ should support sync/async validateAppId . √ should provide the right responses for adapter line . √ Should validate structure of janrainengage . √ should provide the right responses for adapter spotify . √ can disable provider . √ should provide the right responses for adapter meetup . √ should fail to link if session token don't match user . √ Should validate structure of facebook . √ Should validate structure of vkontakte . √ Should validate structure of janraincapture . √ should provide the right responses for adapter gpgames . √ Should validate structure of keycloak . √ Should validate structure of phantauth . √ properly loads custom adapter module object . √ should provide the right responses for adapter qq . √ should provide the right responses for adapter twitter . √ should provide the right responses for adapter weibo . √ Should validate structure of wechat . √ should provide the right responses for adapter microsoft . √ properly loads custom adapter module object (again) . √ Should validate structure of line . √ unlink and link with custom provider . √ should provide the right responses for adapter janrainengage . √ properly loads custom adapter . √ should provide the right responses for adapter facebook . √ Should validate structure of spotify . √ should throw error when Facebook request appId is wrong data type . √ Should validate structure of apple . √ should provide the right responses for adapter wechat . √ Should validate structure of instagram . √ Should validate structure of github . √ should provide the right responses for adapter janraincapture . √ Should validate structure of microsoft . √ properly loads a default adapter with options . √ should create user with REST API . √ should provide the right responses for adapter keycloak . √ should provide the right responses for adapter phantauth . √ should throw error when Facebook request appId is wrong data type . √ Should validate structure of weibo . cloud validator √ set params options . √ validator can throw parse error with no message There were open connections to the server left after the test finished . √ basic beforeSave requireUserKey rejection . √ set params options function . √ basic beforeSave requireUserKey on User Class . √ can run params function on null . √ pass function to validator . √ validate beforeFind fail . √ basic beforeSave requireUserKey as admin . √ require user on cloud functions . √ basic beforeSave requireUserKey without user . √ set params type array . √ require master on cloud functions . √ can throw from options validator . √ validate afterDelete fail . √ allow params on cloud functions . √ set params on cloud functions . √ can throw null from options validator . √ basic beforeSaveFile skipWithMasterKey . √ validate afterDelete . √ basic beforeDelete skipWithMasterKey . √ can create functions . √ set params type . √ validate beforeDelete fail . √ basic beforeSave master . √ basic beforeSave defaultKeys . √ validate afterDeleteFile fail . √ beforeSave validateMasterKey and skipWithMasterKey success . √ basic beforeSave requireUserKey . √ set params type allow array . √ basic beforeSave skipWithMasterKey . √ basic beforeSave constantKeys . √ validate afterDeleteFile . √ validate beforeDelete . √ basic beforeSave requireMaster . √ beforeSave validateMasterKey and skipWithMasterKey fail . √ set params required . √ basic beforeSave requireKeys . √ validate afterSave fail . √ validate beforeSave fail . √ basic beforeFind skipWithMasterKey . √ set params default . √ basic beforeSave validateMasterKey . √ set params not-required options data . √ validate afterSave . √ validate beforeSave . √ basic requireAllUserRoles but no user . √ complete validator . √ does not log on valid config . √ validate afterSaveFile . √ set params on cloud functions There were open connections to the server left after the test finished . √ allow requireAllUserRoles to be a function . √ Should have validator . √ validator can throw parse error . √ set params not-required options . √ validate afterSaveFile fail . √ Logs on invalid config There were open connections to the server left after the test finished . √ allow requireAnyUserRoles to be a function . √ validate beforeDeleteFile . √ validate beforeSaveFile . √ set params not-required type . √ basic beforeSave requireUserKey as custom function . √ Logs on invalid config . √ basic validator requireAllUserRoles . √ basic validator requireAnyUserRoles . √ validate beforeSaveFile fail . √ validate beforeDeleteFile fail . √ async validator . √ basic beforeSave requireUserKey as custom async function . √ basic beforeSave requireUser . √ set params options function async . √ set params not-required no-options . √ Throw from validator . √ set params option . √ basic beforeSave allow requireUserKey as custom function . √ validate afterFind . √ validate afterFind fail . √ validate beforeFind . FilesController √ should add a unique hash to the file name when the preserveFileName option is false . √ should create a parse error when a string is returned . √ should also reject slashes in file names . √ should create a server log on failure *. √ should reject slashes in file names . √ should handle adapter without getMetadata . √ should not add a unique hash to the file name when the preserveFileName option is true . √ should properly expand objects . commander additions √ should not override config.json . √ should fail when too many apps are set . √ should fail when passing an invalid arguement . √ should fail with invalid values in JSON . √ should load config from apps . √ should load properly use args over env . √ should load properly definitions from env . √ should fail in action as port is invalid . √ should load properly definitions from args **************. Parse.GeoPoint testing √ minimum 3 points withinPolygon . √ geo max distance in km everywhere . √ supports a sub-object with a geo point . √ supports withinPolygon Polygon object . √ geo max distance small . √ invalid Polygon object withinPolygon . √ supports array of geo points . √ has the correct __type field in the json response . √ fails to fetch geopoints that are specifically not at (0,0) . √ geo max distance in km california . √ geo point roundtrip . √ supports withinPolygon closed path . √ invalid geoPoint withinPolygon . √ returns nearest location . √ geo max distance in km mid peninsula . √ geo max distance medium . √ geo max distance in miles bay area . √ equalTo geopoint . √ invalid latitude withinPolygon . √ supports withinPolygon open path . √ geo max distance in miles mid peninsula . √ out of bounds Polygon object withinPolygon . √ invalid input withinPolygon . √ geo max distance in miles everywhere . √ withinKilometers supports count . √ works with geobox queries . √ geo max distance in km bay area *. √ invalid longitude withinPolygon . √ withinKilometers complex supports count . √ creating geo point exception two fields . √ geo max distance in miles california . √ geo max distance large . √ update geopoint . √ geo line . beforeDelete hooks √ should have request ip . √ should have request headers There were open connections to the server left after the test finished . ParseLiveQuery √ can handle beforeConnect error . √ can use patterns in className There were open connections to the server left after the test finished . √ should execute live query update on email validation There were open connections to the server left after the test finished . √ can log on beforeConnect throw . √ expect afterEvent create . √ can subscribe to query and return object with withinKilometers with last parameter on update . √ should not broadcast event to client with invalid session token - avisory GHSA-2xm2-xj2q-qgpj . √ should strip out protected fields . √ can handle beforeSubscribe error . √ access user on onLiveQueryEvent disconnect . √ can log on beforeSubscribe error . √ can subscribe to query . √ expect afterEvent enter . √ LiveQuery should work with changing role . √ can handle beforeConnect / beforeSubscribe hooks . √ LiveQuery with ACL . √ liveQuery on Session class There were open connections to the server left after the test finished . √ can handle beforeConnect validation function . √ can handle select beforeSubscribe query . √ prevent liveQuery on Session class when not logged in . √ expect afterEvent leave . √ can handle beforeSubscribe validation function . √ expect afterEvent payload . √ prevent afterSave trigger if not exists . √ can handle afterEvent validation function . √ expect afterEvent delete . √ handle invalid websocket payload length . √ can handle afterEvent modification *. √ can return different object in afterEvent . √ can handle afterEvent throw . √ can handle async afterEvent modification . √ can log on afterLiveQueryEvent throw . √ can handle afterEvent sendEvent to false . √ can return a new beforeSubscribe query . √ should strip out session token in LiveQuery . √ can handle afterEvent set pointers . √ can handle mutate beforeSubscribe query There were open connections to the server left after the test finished . Cloud Code Logger √ cloud function should obfuscate password There were open connections to the server left after the test finished . √ should log cloud function failure *. √ should expose log to trigger . √ should truncate really long lines when asked to . √ should truncate input and result of long lines . √ should log an afterSave . √ should log cloud function triggers using the custom log level There were open connections to the server left after the test finished . √ should log a denied beforeSave . √ should log cloud function execution using the custom log level . √ trigger should obfuscate password . √ should only log once for object not found There were open connections to the server left after the test finished . √ should log cloud function success . √ should expose log to functions . server √ can get starting state . √ can create a parse-server v2 . √ should load a middleware from string . √ fails if the session length is less than or equal to 0 . √ should succeed if you provide valid ip in masterKeyIps . √ start is required to mount . √ should set default masterKeyIps for IPv4 and IPv6 localhost . √ should not fail when Google signin is introduced without the optional clientId MongoServerSelectionError: connect ECONNREFUSED 127.0.0.1:43605 at Timeout._onTimeout (D:\Work\personal\parse\parse-server\node_modules\mongodb\lib\sdam\topology.js:291:38) at listOnTimeout (node:internal/timers:559:17) at processTimers (node:internal/timers:502:7) { reason: TopologyDescription { type: 'Unknown', servers: Map(1) { 'localhost:43605' => [ServerDescription] }, stale: false, compatible: true, heartbeatFrequencyMS: 10000, localThresholdMS: 15, setName: null, maxElectionId: null, maxSetVersion: null, commonWireVersion: 0, logicalSessionTimeoutMinutes: null }, code: undefined, [Symbol(errorLabels)]: Set(0) {} } . √ fails if database is unreachable . mail adapter √ can load email adapter via object . √ throws if you initialize email adapter incorrectly . √ can load email adapter via only module name . √ can load email adapter via class . √ can load email adapter via module name . √ fails if default limit is negative . √ support http basic authentication with javascriptKey . √ properly gives publicServerURL when set . √ support http basic authentication with masterkey . √ show warning if any reserved characters in appId . √ can create a parse-server v1 . √ can properly sets the push support . √ exposes correct adapters . √ can respond 200 on path health . √ ignores the session length when expireInactiveSessions set to false . √ requires a master key and app id . √ can properly sets the push support when not configured . √ can properly sets the push schedule support . √ should throw when revokeSessionOnPasswordReset is invalid . √ fails if you try to set revokeSessionOnPasswordReset to non-boolean . √ fails if default limit is wrong type . √ should allow direct access . √ can properly sets the push support . √ properly removes trailing slash in mount . √ can report the server version . √ has createLiveQueryServer . √ should load a middleware . √ should throw when extendSessionOnUse is invalid . √ fails if default limit is zero . √ fails if maxLimit is negative . √ fails if the session length is not a number . √ can call start . √ fails if you provides invalid ip in masterKeyIps . √ should throw when getting invalid mount . login as other user √ rejects creating a session for another user with invalid parameters . √ rejects creating a session for another user if the user does not exist . √ allows creating a session for another user with the master key . √ rejects creating a session for another user without the master key . Parse.Push √ does not get stuck with _PushStatus 'running' on 1 installation added . √ should throw error if missing push configuration . √ does not get stuck with _PushStatus 'running' on 1 installation lost . √ should properly send push with lowercaseIncrement . √ should not allow clients to query _PushStatus . √ should properly send push . √ does not get stuck with _PushStatus 'running' on many installations removed . √ should allow master key to query _PushStatus . √ does not get stuck with _PushStatus 'running' on many installations added . OAuth √ Should properly generate request signature . √ Should fail with missing options . √ Should properly build empty parameter string . √ Should properly build parameter string . √ GET request for a resource that requires OAuth should fail with invalid credentials . √ Should properly build request . √ Should properly build signature string . √ Should fail a request . √ POST request for a resource that requires OAuth should fail with invalid credentials . √ Nonce should have right length . DefinedSchemas Fields √ should re create fields with changed type when "recreateModifiedFields" is true . √ should not delete removed fields when "deleteExtraFields" is false . √ should just update classic fields with changed params . √ should not re create fields with changed type when "recreateModifiedFields" is not true . √ should keep default fields if not provided . √ should create new fields . √ should delete removed fields when "deleteExtraFields" is true . √ should protect default fields . Indexes √ should detect protected indexes for _User class . √ should create new indexes . √ should detect protected indexes for _Idempotency class . √ should detect protected indexes for _Role class . √ should not detect protected indexes on user defined class . √ should delete removed indexes . √ should re create changed indexes * . √ should only enable delete class endpoint since . √ should perform migration in parallel without failing . √ should run beforeMigration before execution of DefinedSchemas . √ should not affect cacheAdapter . √ should run afterMigration after execution of DefinedSchemas . √ should use logger in case of error . ClassLevelPermissions √ should save CLP . √ should force addField to empty . √ should use default CLP . √ should not delete automatically classes . √ should disable class PUT/POST endpoint when lockSchemas provided to avoid dual source of truth . afterSave hooks √ should unset . √ should have request headers . √ should unset in afterSave . √ should have request ip . randomString √ returns result of the given length . √ returns a string . √ returns unique results . √ throws if requested length is zero . Auth Adapter features should allow update of authData √ should not re validate the baseAdapter when user is already logged in and authData not changed . √ should allow user to change authData . √ should allow master key to change authData . √ should not re-validate the baseAdapter when master key is used and authData has not changed . √ should loginWith user with auth Adapter with do not save option, mutated authData and no additional auth adapter . √ should return challenge with username created user . √ should pass authData, options, request to validateAuthData . √ should return empty challenge data response if challenged provider does not exists . √ should throw if policy does not match one of default/solo/additional . √ should trigger correctly validateUpdate . √ should return challenge with no logged user . √ should throw if no triggers found . √ should trigger correctly validateLogin . √ should return custom errors . √ should strip out authData if required . √ should throw if no triggers found . √ should validate provided authData and prevent guess id attack . √ should return challenge with authData created user . √ should return authData response and save some info on username login . √ should work with multiple adapters . √ should ensure no duplicate auth data id after before save . √ should skip additional provider if used provider is solo . √ should perform authData validation only when its required . √ should ensure no duplicate auth data id during authData validation in case of more than one result . √ should return authData response and save some info on non username login . √ should require additional provider if configured . √ should ensure no duplicate auth data id after before save in case of more than one result . √ should not update authData if provider return doNotSave . √ should pass user to auth adapter on update by matching session . √ should trigger correctly validateSetUp . ParseLiveQueryServer √ can validate key when invalid key is provided . √ can validate key when key is not provided . √ should delete from cache throwing auth calls . √ can match ACL with subscription sessionToken checking error . √ can validate key when validKerPairs is empty . √ should properly pull auth from cache . √ can match ACL with client sessionToken checking error . √ can forward event to cloud code . √ won't match ACL that doesn't have public read or any roles . √ can handle subscribe command without clientId . √ sends correct events for object with multiple subscriptions . √ can match ACL with none exist requestId . √ will match non-public ACL when client has master key . √ won't match non-public ACL with role when there is no user . √ basic beforeConnect rejection . √ can match ACL with public read access . √ can set disconnect command message handler for a parseWebSocket which has not registered to the server . √ can handle object leave command which matches some subscriptions . √ won't match non-public ACL when client has no master key . √ can handle connect command . √ can handle object delete command which does not match any subscription . √ can be initialized from ParseServer . √ has no subscription and can handle object delete command . √ can be initialized . √ can match subscription for null or undefined parse object . √ won't match ACL with role based read access set to false . √ can inflate parse object . √ can set update command message handler for a parseWebSocket . √ will match ACL with role based read access set to true . √ can handle create command with watch . √ can validate client has master key when valid . √ can be initialized from ParseServer without httpServer . √ can set unsubscribe command message handler for a parseWebSocket . √ can validate client doesn't have master key when invalid . √ properly passes the CLP to afterSave/afterDelete hook . √ should keep a cache of invalid sessions . √ can set unknown command message handler for a parseWebSocket . √ can validate client doesn't have master key when not provided . √ can match subscription . √ basic beforeSubscribe rejection . √ can set missing command message handler for a parseWebSocket . √ can handle unsubscribe command . √ can validate client doesn't have master key when validKeyPairs is empty . √ can handle object save command which does not match any subscription . √ can match ACL with valid client sessionToken . √ can handle object create command which matches some subscriptions . √ can match ACL with invalid subscription and client sessionToken . √ can validate key when valid key is provided . √ sends correct object for dates . √ can handle update command with original object . √ can deprecate fields . √ can match ACL with valid subscription sessionToken . √ can handle unsubscribe command without clientId . √ can handle create command with fields . class level permissions √ matches CLP when find is closed . √ matches CLP when find is open . √ matches CLP when find is restricted to userIds . √ matches CLP when find is restricted to userIds . √ can set connect command message handler for a parseWebSocket . √ can handle unsubscribe command without not existed client . √ can handle object update command which matches some subscriptions ** . √ can set subscribe command message handler for a parseWebSocket . √ can handle subscribe command with new query . √ can inflate user object . √ can handle object delete command which matches some subscriptions . √ can match undefined ACL . √ can handle unsubscribe command without not existed query . √ can handle subscribe command with existing query . √ can handle object enter command which matches some subscriptions . √ has no subscription and can handle object save command . miscellaneous √ db contains document after successful save **. PushWorker √ should run with small batch . localized push √ transforms body appropriately . √ transforms body appropriately . √ should deduplicate locales . √ should handle empty body data . √ should return locales . √ should return and empty array if no locale is set . √ should properly handle default cases . √ maps body on all provided locales . pushStatus √ tracks push status per UTC offsets . √ should remove invalid installations . √ tracks push status per UTC offsets with negative offsets . middlewares √ can set trust proxy . √ it should pull _MasterKey into req.info . √ should use user provided on field userFromJWT . √ should give invalid response when keys are configured but no key supplied . √ should succeed when client key supplied but empty . √ should not succeed if the ip does not belong to maintenanceKeyIps list . √ should append custom headers to Access-Control-Allow-Headers if allowHeaders provided . √ should succeed if the ip does belong to masterKeyIps list . √ it should pull _ClientVersion into req.info . √ should set default Access-Control-Allow-Origin if allowOrigin is empty . √ should give invalid response when upload file without x-parse-application-id in header . √ should not succeed if the ip does not belong to masterKeyIps list . √ should succeed when any one of the configured keys supplied . √ should support multiple origins if several are defined in allowOrigin as an array . √ should succeed when no keys are configured and none supplied . √ should give invalid response when keys are configured but different key is supplied . √ should allow any ip to use masterKey if masterKeyIps is empty . √ should give invalid response when keys are configured but supplied key is incorrect . √ it should pull _InstallationId into req.info . √ should not succeed and log if the ip does not belong to masterKeyIps list . √ should set custom origin to Access-Control-Allow-Origin if allowOrigin is provided . √ it should pull _SessionToken into req.info . √ should properly expose the headers . √ should set default Access-Control-Allow-Headers if allowHeaders are empty . √ it should pull _JavaScriptKey into req.info . √ should use _ContentType if provided . Parse Role testing √ should recursively load roles . √ should not recursively load the same role multiple times There were open connections to the server left after the test finished . √ Do a bunch of basic role testing . √ should add multiple users to a role and remove users . √ should be secure (#3835) . √ should match when matching in users relation . √ should not match any entry when not matching in users relation There were open connections to the server left after the test finished . √ should properly handle role permissions on objects . √ should not match any entry when searching for null in users relation . √ can create role and query empty users . √ Should properly resolve roles . √ Different _Role objects cannot have the same name. . √ _Role object should not save without name. . √ should recursively load roles without config . NullCacheAdapter √ should expose promisifyed methods . √ should get/set/clear . randomHexString √ returns unique results . √ throws if requested length is not even . √ throws if requested length is zero . √ returns result of the given length . √ returns a string . triggers √ should produce a proper request object with context in afterSave . √ should produce a proper request object with context in beforeSave . √ should not set context on beforeFind . InMemoryCache √ should destroy a expire items in the cache . √ should deafult TTL to 5 seconds . √ should delete items . √ should clear all items . parsers √ parses correctly with moduleOrObjectParser . √ parses correctly with nullParser . √ parses correctly with arrayParser . √ parses correctly with numberParser . √ parses correctly with numberOrBoolParser . √ parses correctly with booleanParser . √ parses correctly with objectParser . rest update √ ignores createdAt . afterDelete hooks √ should have request ip . √ should have request headers . batch √ should return the proper url given a public url-only path . transactions √ should not save anything when one operation fails in a transaction . √ should handle a batch request with transaction = true . √ should generate separate session for each call . √ should return the proper url with naked public . √ should return the proper url with naked local . √ should return the proper url given a server url-only path . √ should return the proper url same public/local endpoint . √ should return the proper url with bad public url provided . √ should return the proper url with different public/local mount . √ should return the proper url with bad url provided . √ should handle a batch request without transaction . √ should return the proper url . √ should handle a batch request with transaction = false . √ should return the proper url with no url provided . √ should return the proper url with no public url provided . Installations √ update is linking two existing objects w/ increment . √ update is linking two existing with installation id *. √ update ios token and channels . √ fails with missing ids . √ update ios device token with duplicate device token . √ merging when two objects both only have one id . √ update ios linking two existing objects . √ update ios fails with new deviceToken and no installationId . √ should properly queying installations with masterKey . √ should properly reject updating installationId . √ merging when installationId already exists . √ ios merge existing same token no installation id . √ update android fails with new installation id . √ update ios updates device token . √ creates an object with custom fields . √ can use push with beforeSave . √ allows you to get your own installation (regression test for #1718) . √ fails for android with missing type . √ update is linking two existing with installation id w/ op . √ allows you to update installation with masterKey . √ should properly handle installation save #2780 . √ updating with new channels . √ allows you to update installation from header (#2090) *. √ creates an android installation with ids . √ creates an embedded installation with ids . √ creates an ios installation with ids . √ update android with custom field . √ creates an ios installation with all fields . √ creates an android installation with all fields . √ update fails to change deviceType . √ should properly fail queying installations . √ update android device token with duplicate device token . ParseGraphQLController updateGraphQLConfig √ should throw if a classConfig has invalid type.inputFields settings . √ should throw if graphQLConfig has an invalid root key . √ should throw if graphQLConfig is not an object . √ should throw if a classConfig has invalid query params . √ should throw if a classConfig has invalid type settings . √ should throw if a classConfig has invalid type.sortFields settings . √ should throw if a classConfig has invalid type.constraintFields settings . √ should throw if _User create fields is missing username or password . √ should correct update the graphQLConfig object using the databaseController . √ should throw if a classConfig has invalid mutation params . √ should throw if classConfigs array is invalid . √ should throw if graphQLConfig has invalid class filters . √ should update the cache if mounted . √ should throw if graphQLConfig is not provided . √ should throw if a classConfig has invalid type.outputFields settings . constructor √ should construct without a cacheController . √ should require a databaseController . √ should set isMounted to true if config.mountGraphQL is true . getGraphQLConfig √ should use the cache if mounted, and return the stored graphQLConfig . √ should use the database when mounted and cache is empty . √ should store the graphQLConfig in cache if mounted . √ should return an empty graphQLConfig if collection has none . √ should return an existing graphQLConfig . alias √ should fail if query alias is not a string . √ should fail if mutation alias is not a string . ParseGraphQLServer setGraphQLConfig √ should not absorb exceptions from parseGraphQLController . √ should return the response from parseGraphQLController . √ should pass the graphQLConfig onto the parseGraphQLController . Auto API Playground √ should mount playground . GraphQL √ should be healthy . √ should handle Parse headers . √ should be cors enabled and scope the response within the source origin . Schema Special Classes √ should support Product class . √ should support Session class . √ should support Role class . √ should support Installation class . √ should support User class . Objects Queries Get √ should respect level permissions . √ should return many child objects in allow cyclic query *** *. √ should return a class object using class specific query . √ should respect protectedFields . √ should support include argument . √ should support keys argument . Find √ should support in query key . √ should respect level permissions . √ should support in pointer operator using class specific query . √ should only count . √ should support count . √ should support keys argument . √ should support full text search . √ should return class objects using class specific query . √ should support order, skip and first arguments . √ should support where argument using class specific query . √ should support OR operation . √ should support include argument . √ should support pagination **** . √ should respect max limit *. √ should order by multiple fields . √ should support including relation . Relay Spec Object Identification √ Class get custom method should return valid gobal id . √ Id inputs should work either with global id or object id . √ Class find custom method should return valid gobal id . √ Id inputs should work either with global id or object id with objectId higher than 19 . Files Mutations Create √ should return File object . Class Schema Mutations √ should create a new class . √ should require master key to create a new class . √ should not allow duplicated field names when creating . √ should require master key to get an existing class . √ should update an existing class . √ should fail if deleting an inexistent class . √ should require master key to update an existing class . √ should not allow duplicated field names when updating . √ should fail if updating an inexistent class . √ should delete an existing class . √ should require master key to delete an existing class . √ should require master key to find the existing classes . Configuration √ should only allow the supplied output fields for a class . √ should only allow the supplied sort fields for a class . √ should remove mutation operations, create, update and delete, when disabled . √ should not include types in the disabledForClasses list . √ should only include types in the enabledForClasses list . √ should handle required fields from the Parse class . √ should remove query operations when disabled . √ should only allow the supplied constraint fields for a class . √ should only allow the supplied create and update fields for a class . Objects Mutations Create √ should respect level permissions . √ should return specific type object using class specific mutation . Delete √ should respect level permissions . √ should respect level permissions with specific class mutation . √ should return a specific type using class specific mutation . Update √ should respect level permissions with specific class mutation . √ should return specific type object using class specific mutation . √ should respect level permissions . √ should return only id using class specific mutation . √ should unset fields when null used on update/create . Session Token √ should fail due to invalid session token . √ should find a user and fail due to empty session token . √ should fail due to empty session token . Users Queries √ should return current logged user . √ should return logged user including pointer . √ should return logged user and do not by pass pointer security . Default Types √ should have File object type . √ should have ArrayResult type . √ should have ReadPreference enum type . √ should have Date scalar type . √ should have Object scalar type . √ should have Class interface type . √ should have all expected types . √ should have GraphQLUpload object type . Relay Specific Types √ should have Node interface . √ should have clientMutationId in log out mutation input . √ should have node query . √ should have clientMutationId in deleteClass mutation input . √ should have clientMutationId in custom delete object mutation payload . √ should have clientMutationId in custom create object mutation payload . √ should have clientMutationId in custom delete object mutation input . √ should return global id . √ should have clientMutationId in custom create object mutation input . √ should have clientMutationId in call function payload . √ should have clientMutationId in createClass mutation payload . √ should have clientMutationId in call function input . √ should have clientMutationId in createClass mutation input . √ should have clientMutationId in create file payload . √ should have clientMutationId in updateClass mutation payload . √ should have clientMutationId in create file input . √ should have clientMutationId in updateClass mutation input . √ should have clientMutationId in log in mutation payload . √ should have clientMutationId in log in mutation input . √ should have clientMutationId in log out mutation payload . √ should have clientMutationId in sign up mutation payload . √ should have clientMutationId in sign up mutation input . √ should have clientMutationId in custom update object mutation payload . √ should have clientMutationId in custom update object mutation input . √ should have clientMutationId in deleteClass mutation payload . Functions Mutations √ can throw errors . √ should list all functions in the enum type . √ can be called . √ should accept different params . √ should warn functions not matching GraphQL allowed names . Parse Class Types √ should ArrayResult contains all types . √ should have all expected types . √ should not contain password field from _User class . √ should update schema when it changes . Users Mutations √ should log the user in . √ should handle challenge . √ should log the user out . √ should send reset password . √ should reset password . √ should send verification email again . √ should login with user . √ should create user and return authData response . √ should sign user up . Data Types √ should support Boolean . √ should support nested pointer on create . √ should support createdAt and updatedAt . √ should support where argument on object field that contains false boolean value or 0 number value . √ should support null values . √ should support undefined array *. √ should support Bytes *. √ should support relational where query . √ should not upload if file is too large . √ should support String *. √ should support ACL . √ should support files *. √ should support nested pointer on update . √ should support object values . √ should support Float numbers *. √ should support pointer on create . √ should support array values . √ should support object composed queries . √ should support Date . √ should support Geo Points *. √ should support Int numbers . √ should support Polygons . √ should support pointer on update . applyPlayground √ should require initialization with config.playgroundPath . √ should apply middlewares at config.playgroundPath . √ should require an Express.js app instance . createSubscriptions √ should require initialization with config.subscriptionsPath . _getGraphQLOptions √ should return schema and context with req's info, config and auth . √ should load GraphQL schema in every call . constructor √ should require a parseServer instance . √ should only require parseServer and config.graphQLPath args . √ should initialize parseGraphQLSchema with a log controller . √ should require config.graphQLPath . Custom API GraphQL Schema Based √ can resolve a custom query . √ can forward original error of a custom query . √ can resolve a stacked query with same where variables on overloaded where input . √ can resolve a custom extend type . √ can resolve a custom query with auto type return . √ can resolve a custom query with auto type list return . SDL based √ can resolve a custom query using default function name . √ can resolve a custom query using function name set by "to" argument . √ order option should continue working . Async Function Based Merge √ can resolve a query . _transformMaxUploadSizeToBytes √ should transform to bytes . applyGraphQL √ should require an Express.js app instance . √ should apply middlewares at config.graphQLPath . _getServer √ should only return new server on schema changes F Server Url Checks × does not have unhandled promise rejection in the case of load error - Error: spawn UNKNOWN *. √ mark bad server url . √ validate good server url . read-only masterKey √ should throw when masterKey and maintenanceKey are the same . √ should throw when trying to create schema with a name . √ should throw when trying to create RestWrite . √ should throw when masterKey and readOnlyMasterKey are the same . √ should throw when trying to create schema . √ properly blocks writes . √ properly throws on rest.create, rest.update and rest.del . √ should throw when trying to update the global config . √ should throw when trying to delete schema . √ should throw when trying to send push . √ should throw when trying to update schema . Apple Game Center Auth adapter √ validateAuthData invalid public key http url . √ adapter should throw . √ can load adapter . √ adapter should load default cert . √ validateAuthData invalid signature id . √ should not validate Symantec Cert . √ validateAuthData should validate . Pages Router basic request √ responds with file content on direct page request . √ can load file from custom pages endpoint . √ can load file from custom pages path . √ responds with 403 access denied with invalid appId . √ responds with 404 if publicServerURL is not configured . pages custom route √ handles custom route with async handler . √ returns 404 if custom route does not return page . √ handles multiple custom routes . √ handles custom route with GET . √ handles custom route with POST . exploits √ rejects requesting file outside of pages scope with UNIX path patterns . response type √ responds to POST request with redirect response . √ returns a file for GET request . √ returns a redirect for custom pages for GET and POST request . √ responds to GET request with content response . √ returns a redirect for POST request . server options √ uses default configuration when none is set . √ throws on invalid configuration . localization with JSON resource √ does not localize with JSON resource if localization is disabled . √ localizes static page with JSON resource and fallback locale . √ localizes static page with JSON resource and request locale . √ localizes static page with JSON resource and language matching request locale . √ localizes static page with JSON resource and fills placeholders in JSON values . √ localizes feature page with JSON resource and fills placeholders in JSON values F custom endpoint × email verification works with custom endpoint - Expected 'D:\Work\personal\parse\parse-server\public\email_verification_success.html' to match /\/email_verification_success.html/. There were open connections to the server left after the test finished F × password reset works with custom endpoint - Expected 'D:\Work\personal\parse\parse-server\public\password_reset.html' to match /\/password_reset.html/. - Expected 'D:\Work\personal\parse\parse-server\public\password_reset_success.html' to contain '/password_reset_success.html'. . placeholders √ removes undefined placeholder in response content . √ fills placeholders from config promise . √ fills placeholders from config object . √ replaces placeholder in response content . √ fills placeholders from config function . localization √ returns default file for neither locale nor language match F × returns file for language match - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de\/password_reset_link_invalid.html/. F × returns file for locale match - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de-AT\/password_reset_link_invalid.html/. . √ returns custom page regardless of localization enabled . √ returns default file if no locale is specified . √ returns default file if localization is disabled . end-to-end tests √ localizes end-to-end for resend verification email: invalid link There were open connections to the server left after the test finished F × localizes end-to-end for verify email: success - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_success.html' to match /\/de-AT\/email_verification_success.html/. F × localizes end-to-end for password reset: success - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset.html' to match /\/de-AT\/password_reset.html/. - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_success.html' to contain '/de-AT/password_reset_success.html'. F × localizes end-to-end for verify email: invalid verification link - link send fail - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_link_expired.html' to match /\/de-AT\/email_verification_link_expired.html/. F × localizes end-to-end for password reset: invalid link - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de-AT\/password_reset_link_invalid.html/. F × localizes end-to-end for verify email: invalid verification link - link send success - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_link_expired.html' to match /\/de-AT\/email_verification_link_expired.html/. . failing with missing parameters √ resendVerificationEmail: throws on missing server configuration . √ verifyEmail: throws on missing server configuration . √ verifyEmail: responds with invalid link on missing username . √ requestResetPassword: throws on missing server configuration . √ resetPassword: throws on missing server configuration . √ resetPassword: responds with page choose password with error message on failed password update . √ resetPassword: responds with AJAX error with error message on failed password update . AJAX requests √ request_password_reset: responds with AJAX error on missing token . √ request_password_reset: responds with AJAX error on missing username . √ request_password_reset: responds with AJAX error on missing password . √ request_password_reset: responds with AJAX success . PushQueue Default channel √ should be prefixed with the applicationId . With a defined channel √ should be propagated to the PushWorker and PushQueue . RedisPubSub √ can create publisher . √ can create subscriber . UserController sendVerificationEmail parseFrameURL provided √ uses parseFrameURL and includes the destination in the link parameter . parseFrameURL not provided √ uses publicServerURL . ParseCloudCodePublisher √ can handle cloud code afterDelete request . √ can handle cloud code request . √ can initialize . √ can handle cloud code afterSave request . Parse.Session √ cannot edit session with known ID . √ should retain original sessionTokens with just sessionToken set There were open connections to the server left after the test finished . √ should retain original sessionTokens with masterKey & sessionToken set . √ token on users should retain original sessionTokens with just sessionToken set There were open connections to the server left after the test finished . √ token on users should retain original sessionTokens with masterKey & sessionToken set . ParseServerRESTController √ should handle a POST batch without transaction . √ ensures no user is created when passing an empty username . √ ensures no session token is created on creating users . √ should handle a get request with full serverURL mount path . √ should handle a get request . √ ensures no user is created when passing an empty password . √ should handle response status . √ should handle response status in batch . √ ensures logIn is saved with installationId . transactions √ should handle a batch request with transaction = true . √ should not save anything when one operation fails in a transaction . √ should generate separate session for each call . √ ensures a session token is created when passing installationId != cloud . √ properly handle existed . √ should handle a POST request . √ should handle a POST request with context . √ ensures sessionTokens are properly handled . √ ensures masterKey is properly handled . √ should handle a POST batch with transaction=false . Security Check server options √ uses default configuration when none is set . √ throws on invalid configuration . security endpoint accessibility √ responds with 409 with masterkey and security check disabled . √ responds with 200 with masterkey and security check enabled . √ responds with 403 without masterkey . check runner √ runs all checks of all groups . √ reports correct default syntax version 1.0.0 . √ logs report . √ instantiates runner with valid parameters . √ throws instantiating runner with invalid parameters . √ instantiates runner with default parameters . auto-run √ runs security checks on server start if enabled . √ does not run security checks on server start if disabled . check √ sets correct states for check success . √ sets correct states for check fail . √ instantiates check with valid parameters . √ throws instantiating check with invalid parameters . check group √ returns properties if subclassed correctly . √ throws if subclassed incorrectly . √ runs checks . InMemoryCacheAdapter √ should expose promisifyed methods . √ should get/set/clear . √ should expire after ttl . newObjectId √ returns a string . √ returns result with required number of characters . √ returns result with at least 10 characters . √ returns unique results . Hooks √ should fail trying to create a malformed function (REST) . √ should create hooks and properly preload them . √ should have no triggers registered . √ should run the function on the test server . √ should run the function on the test server (error handling) . √ should provide X-Parse-Webhook-Key when defined . √ should CRUD a function registration . √ should not pass X-Parse-Webhook-Key if not provided . √ should have no hooks registered . √ should CRUD a trigger registration . √ should fail to register hooks without Master Key . √ should fail trying to create two times the same function . √ should run the beforeSave hook on the test server . √ should fail trying to update a function that don't exist . √ beforeSave hooks should correctly handle responses containing entire object . √ should fail trying to create two times the same trigger . √ should run the afterSave hook on the test server . √ should fail trying to update a trigger that don't exist . √ should fail trying to create a malformed function . Parse.File testing fileExtensions √ works with array with correct file type . √ works with array error: File upload of extension html is disabled. {"code":130,"stack":"Error: File upload of extension html is disabled.\n at createHandler (D:\\Work\\personal\\parse\\parse-server\\lib\\Routers\\FilesRouter.js:3:5959)\n at Layer.handle [as handle_request] (D:\\Work\\personal\\parse\\parse-server\\node_modules\\express\\lib\\router\\layer.js:95:5)\n at next (D:\\Work\\personal\\parse\\parse-server\\node_modules\\express\\lib\\router\\route.js:144:13)\n at handleParseSession (D:\\Work\\personal\\parse\\parse-server\\lib\\middlewares.js:21:2997)\n at Layer.handle [as handle_request] (D:\\Work\\personal\\parse\\parse-server\\node_modules\\express\\lib\\router\\layer.js:95:5)\n at next (D:\\Work\\personal\\parse\\parse-server\\node_modules\\express\\lib\\router\\route.js:144:13)\n at handleRateLimit (D:\\Work\\personal\\parse\\parse-server\\lib\\middlewares.js:21:2727)\n at runMicrotasks ()\n at processTicksAndRejections (node:internal/process/task_queues:96:5)"} warn: DeprecationWarning: The Parse Server option 'allowClientClassCreation' default will change to 'false' in a future version. warn: DeprecationWarning: The Parse Server option 'allowExpiredAuthDataToken' default will change to 'false' in a future version. . √ works with _ContentType . √ works with array without Content-Type . √ works without Content-Type . file upload configuration √ allows file upload only for authenticated user by default . √ rejects invalid fileUpload configuration . √ allows file upload only for authenticated user . √ allows file upload with master key . √ rejects all file uploads . √ allows all file uploads . √ allows file upload only for public . √ allows file upload only for anonymous user . getting files √ does not crash on file metadata request with invalid app ID . √ does not crash on file request with invalid path . √ does not crash on file request with invalid app ID ***************. creating files √ autosave file in object . √ creates correct url for old files hosted on files.parse.com . √ validates filename length . √ does not pass empty file tags while saving . √ filename is url encoded . √ works without Content-Type . √ save file in object with escaped characters in filename . √ creates correct url for old files hosted on files.parsetfss.com . √ handles other filetypes . √ supports REST end-to-end file create, read, delete, read . √ fails to upload without a file name . √ content-type used with no extension . √ fails to upload an empty file . √ saves the file with tags . √ works with Content-Type . √ return with publicServerURL when provided . √ blocks file deletions with missing or incorrect master-key header . √ works with _ContentType . √ two saves at the same time . √ supports array of files . √ supports files in objects without urls . √ validates filename characters . √ file toJSON testing . √ save file . √ saving an already saved file . √ autosave file in object in object . √ save file in object . √ supports a dictionary with file . deleting files √ fails to delete an unkown file . Default Range tests √ fallback to regular request . facebook limited auth adapter √ should use algorithm from key header to verify id_token . √ should not verify invalid id_token . √ (using client id as array) should not verify invalid id_token *. √ (using client id as string) should verify id_token *. √ (using client id as array) should verify id_token *. √ (using client id as array with multiple items) should verify id_token . √ (using client id as string) should throw error with with invalid jwt issuer . √ (using client id as string) should throw error with with invalid jwt issuer . √ should not decode invalid id_token *. √ should throw error with with invalid user id **. √ should throw error if public key used to encode token is not available . rest create √ handles create on existent class when disabled client class creation . √ test facebook signup and login . √ handles _id . √ handles create on non-existent class when disabled client class creation . √ should throw on invalid objectId when allowCustomObjectId true . √ handles object and subdocument . √ should use objectId from client when allowCustomObjectId true . √ test default session length . √ cannot set id . √ should generate objectId when not set by client with allowCustomObjectId true . √ cannot create object in volatileClasses if not masterKey . √ can create object in volatileClasses if masterKey . √ cannot set objectId . √ can create a session with no expiration . √ stores pointers to objectIds larger than 10 characters . √ test specified session length . √ handles user signup . √ is backwards compatible when _id size changes . √ handles array, object, date . √ handles no anonymous users config . √ handles anonymous user signup and upgrade to new user . √ handles anonymous user signup . √ stores pointers . √ can use custom _id size . √ sets current user in new sessions . √ locks down session . oauth2 auth adapter √ validateAppId valid accessToken invalid appId . √ properly loads OAuth2 adapter via the "oauth2" option . √ validateAppId valid accessToken appId array . √ validateAuthData should fail if OAuth2 tokenIntrospectionEndpointUrl is not configured properly . √ properly loads OAuth2 adapter with options . √ validateAppId should fail if OAuth2 tokenIntrospectionEndpointUrl is not configured properly . √ validateAppId appidField optional . √ validateAuthData valid accessToken . √ validateAppId should fail without appIds . √ validateAuthData invalid accessToken . √ validateAppId should fail empty appIds . √ validateAuthData valid accessToken without useridField . √ validateAppId invalid accessToken . √ validateAppId valid accessToken appId . √ validateAppId invalid accessToken appId . beforeSave hooks √ should have request ip . √ should have request headers . √ should respect custom object ids (#6733) . JobSchedule √ should create _JobSchedule with masterKey . √ should reject access when not using masterKey (DELETE /jobs/id) . √ should fail updating a job with an invalid name . √ should destroy a job . √ should fail creating a job with an invalid name . √ should update a job . √ should properly return job data . √ should reject access when not using masterKey (/jobs) . √ should reject access when not using masterKey (/jobs/data) . √ should fail creating _JobSchedule without masterKey . √ should allow access when using masterKey (GET /jobs) . √ should create a job schedule . √ should reject access when not using masterKey (PUT /jobs/id) . WinstonLogger √ should disable files logs . √ should have files transports . √ should have a timestamp . √ should add transport F × should enable JSON logs - Expected '{"key":"value","level":"info","message":"hi"} ' to equal '{"key":"value","level":"info","message":"hi"} '. F × console should not be json - Expected 'info: hi {"key":"value"} ' to equal 'info: hi {"key":"value"} '. . allowExpiredAuthDataToken option √ should enforce boolean values . √ should accept false value . √ should default true . √ should accept true value . transformUpdate √ removes Relation types . newToken √ returns result with at least 32 characters . √ returns a string . √ returns unique results . microsoft graph auth adapter √ should use access_token for validation is passed and responds with id and mail . √ should fail to validate Microsoft Graph auth with bad token . InstallationsRouter √ query installations with count = 1 . √ uses find condition from request.body . √ uses find condition from request.query *. √ query installations with limit = 0 * There were open connections to the server left after the test finished . miscellaneous √ purge all objects in _Role also purge cache . √ purge all objects in class . √ purge empty class . √ ignores _RevocableSession "header" send by JS SDK . √ works when object is passed to success . √ should response should not change with triggers . √ beforeSave receives ACL . √ fails on invalid rest api key . √ fails on invalid function . √ test cloud function error handling with custom error code . √ fail on purge all objects in class without master key . √ dedupes an installation properly and returns updatedAt . √ object is set on create and update . √ does not change inner objects if the key has the same name as a geopoint field on the class, and the value is an array of length 2, or if the key has the same name as a file field on the class, and the value is a string . √ ensure that if people already have duplicate emails, they can still sign up new users . √ test beforeSave set object acl success . √ does not change inner object key names _rperm, _wperm . √ android login providing empty authData block works . √ ensure that if people already have duplicate users, they can still sign up new users . √ basic saveAll . √ does not change inner object key names _p_somethign . √ fails on invalid client key . √ does not change inner object keys named _auth_data_something . √ can handle date params in cloud functions (#2214) There were open connections to the server left after the test finished . √ ensure that if you try to sign up a user with a unique username and email, but duplicates in some other field that has a uniqueness constraint, you get a regular duplicate value error . √ fails on invalid javascript key . √ create a valid parse user . √ bans interior keys containing . or $ . √ doesnt convert interior keys of objects that use special names . √ test cloud function query parameters . √ original object is set on update . √ should not update schema beforeSave #2672 . √ afterSave flattens custom operations . √ fails on invalid windows key . √ can handle null params in cloud functions (regression test for #1742) . √ test afterSave get full original object even req auth can not query it . √ get a TestObject . √ ensure that email is uniquely indexed . √ test afterSave get original object on update . √ fail to create a duplicate username *. √ test afterSave get full object on create and update . √ query without limit get default 100 records . √ properly returns incremented values (#1554) . √ succeed in logging in . √ pointer reassign is working properly (#1288) . √ test cloud function error handling . √ query with limit . √ pointer mutation properly saves object . √ create a GameScore object . √ test beforeDelete/afterDelete get installationId . √ return the updated fields on PUT . √ test cloud function error handling with standard error code . √ save various data types . √ test beforeDelete with locked down ACL . √ afterSave receives ACL . √ gets relation fields . √ increment with a user object . √ test beforeSave/afterSave get installationId . cloud functions √ Should have request ip . Parse.Relation testing √ compound add and remove relation . √ dontSelect query . √ can query roles in Cloud Code (regession test #1489) . √ relations are constructed right from query . √ relations are not bidirectional (regression test for #871) . √ queries with relations . √ ensures beforeFind on relation doesnt side effect . √ related at ordering optimizations . √ can be saved without error . √ queries on relation fields with multiple containedIn (regression test for #1271) . √ queries on relation fields . √ query on pointer and relation fields with equal bis . √ query on pointer and relation fields with equal . √ or queries on pointer and relation fields . √ Get query on relation using un-fetched parent object . √ or queries with base constraint on relation field . √ simple add and remove relation . √ Find objects with a related object using equalTo . √ Find query on relation using un-fetched parent object . √ query relation without schema . √ select query . √ should properly get related objects with unfetched queries . PostgresConfigParser.getDatabaseOptionsFromURI √ sets the poolSize to 10 if the it is not a number . √ creates a db options map from a query string . √ sets the max to 10 if the it is not a number . √ max should take precedence over poolSize . Ldap Auth √ Should succeed if user is in given group . √ Should return a resolved promise when validating the app id . √ Should succeed when LDAPS is used and the presented certificate is the expected certificate . √ Should succeed with right credentials when LDAPS is used and certifcate is not checked . √ Should fail if the LDAP server does not allow searching inside the provided suffix . √ Should delete the password from authData after validation . √ Should fail if the LDAP server encounters an error while searching . √ Should fail with missing options . √ Should not save the password in the user record after authentication . √ Should fail when LDAPS is used certifcate matches but credentials are wrong . √ Should fail when LDAPS is used and the presented certificate is not the expected certificate . √ Should fail if user is not in given group . √ Should fail with wrong credentials . √ Should succeed with right credentials . Twitter Auth √ Should fail with missing options . √ should use the proper configuration . phant auth adapter √ validateAuthData should throw for invalid auth . parseObjectToMongoObjectForCreate √ ignores User authData field in DB so it can be synthesized in code . √ $regex in $all list must be { $regex: "string" } . √ all values in $all must be $regex (start with string) or non $regex (start with string) . √ pointer . √ changes new pointer key . √ can set authData when not User class . √ changes existing pointer keys . √ null pointer . √ file . √ array of pointers . √ writes the old ACL format in addition to rperm and wperm on create . √ untransforms mongodb number types *. √ removes Relation types . √ in sub-object . √ Date object where iso attribute is of type Date . √ mongo polygon to parse . √ bytes . √ untransforms from _rperm and _wperm to ACL . √ objectId . √ nested array . √ undefined objects . √ an object with null values . √ objectId in a list . √ untransforms objects containing nested special keys . √ parse geopoint to mongo . √ built-in timestamps . √ Doesnt allow ACL, as Parse Server should tranform ACL to _wperm + _rperm . √ $regex in $all list . √ parse polygon to mongo . √ writes the old ACL format in addition to rperm and wperm on update . √ Date object where iso attribute is of type String . √ in array . √ mongo geopoint to parse . √ a basic number . √ object with undefined nested values . √ built-in timestamps with date . PushRouter √ can get query condition when where is set . √ can get query condition when channels is set . √ sends a push through REST . √ can throw on getQueryCondition when channels and where are set . √ can get query condition when nothing is set . Parse.User testing √ should respect ACL without locking user out . √ contained in user array queries . √ should not revoke session tokens if the server is configures to not revoke session tokens . √ link with provider . √ log in with explicit facebook auth data *. √ user update session with other field . √ should let masterKey lockout user . √ ensure logout works . √ should allow login with expired authData token by default . √ signup with provider should not call beforeLogin trigger . √ user sign up class method . √ saving a user signs them up but doesn't log them in . √ fails to login when email and username are not provided . √ should not fail querying non existing relations . √ logout with provider should call afterLogout trigger There were open connections to the server left after the test finished . √ delete session by object . √ should be able to update user with authData passed . √ session expiresAt correct format There were open connections to the server left after the test finished . √ authenticated check There were open connections to the server left after the test finished . √ cannot save non-authed user . √ test parse user become . √ cannot update session if invalid or no session token There were open connections to the server left after the test finished . √ login with provider should not call beforeSave trigger There were open connections to the server left after the test finished . √ should revoke sessions when setting paswword with masterKey (#3289) . √ user save should fail with invalid email . √ support user/password signup with empty authData block . √ link with explicit facebook auth data . √ user get session from token on username/password login . √ fails to login when email doesn't match username . √ current user isn't dirty . √ incorrect login with provider should not call beforeLogin trigger . √ should allow updates to fields with maintenanceKey *. √ should have authData in beforeSave and afterSave . √ user modified while saving with unsaved child . √ log in async with explicit facebook auth data . √ fails to login when username doesn't match email . √ unlink with provider . √ user get session from token on anonymous login . √ log in with provider with files . √ can login when both email and username are passed . √ login with provider should call beforeLogin trigger . √ should not allow updates to emailVerified . √ should not allow updates to hidden fields . √ Invalid session tokens are rejected . √ log in with provider failed There were open connections to the server left after the test finished . √ user on disk gets updated after save . √ user modified while saving . √ become . √ should properly error when password is missing There were open connections to the server left after the test finished . √ retrieve user data from fetch, make sure the session token hasn't changed . √ changing password clears sessions . √ should not retrieve hidden fields on GET users/me (#3432) . √ link with provider cancelled * . √ current user . √ log in with provider twice . √ should not retrieve hidden fields on login (#3432) . √ user signup class method uses subclassing . √ user sign up with container class There were open connections to the server left after the test finished . √ link with provider failed . √ should not call beforeLogin with become . √ user signup should error if email taken . √ should cleanup null authData keys ParseUser update (regression test for #1198, #2252) . √ link with provider via sessionToken should not create new sessionToken (Regression #5799) . √ user stupid subclassing . √ user.isCurrent . √ cannot delete session if no sessionToken . √ should not retrieve hidden fields on GET users/id (#3432) . √ should not allow login with expired authData token when allowExpiredAuthDataToken is set to false . √ count users . √ get session only for current user *. √ should throw OBJECT_NOT_FOUND instead of SESSION_MISSING when using masterKey . √ user login with enforcePrivateUsers . √ log in with provider cancelled . √ user authData should be available in cloudcode (#2342) . √ should strip out authdata in LiveQuery . √ user associations . √ password format matches hosted parse . √ should allow PUT request with stale auth Data . √ should not send email when email is not a string . √ set password then change password . √ user queries . √ should throw when enforcePrivateUsers is invalid . √ does not duplicate session when logging in multiple times #3451 There were open connections to the server left after the test finished . √ should fail linking with existing . √ ignore setting authdata to undefined . √ user with missing username . √ should send email when upgrading from anon . √ fails to login when password is not provided . √ should fail linking with existing through REST . √ user cannot update email to existing user *. √ saving user after browser refresh . √ cannot delete non-authed user . √ cannot saveAll with non-authed user . √ user login with non-string username with REST API (again) . √ can not set authdata to null . √ should be let masterKey lock user out with authData . √ link async with explicit facebook auth data There were open connections to the server left after the test finished . √ link multiple providers and updates token There were open connections to the server left after the test finished . √ user loaded from localStorage from login . √ returns authData when authed and logged in with provider (regression test for #1498) . √ login with provider should be blockable by beforeLogin even when the user has a attached file There were open connections to the server left after the test finished . √ user login wrong password . √ never locks himself up . √ log in with provider . √ create session from user . √ should aftersave with full object . √ link multiple providers and update token . √ handles properly when 2 users share username / email pairs, counterpart There were open connections to the server left after the test finished . √ log in with provider and update token There were open connections to the server left after the test finished . √ user login with files There were open connections to the server left after the test finished . √ user loaded from localStorage from signup . case insensitive signup not allowed √ signup should fail with duplicate case insensitive username with basic setter . √ signup should fail with duplicate case insensitive username with field specific setter . √ edit should fail with duplicate case insensitive email . √ signup should fail with duplicate case insensitive email . anonymous users √ should not fail on case insensitive matches . √ unlink and link . √ only creates a single session for an installation / user pair (#2885) . √ unset user email There were open connections to the server left after the test finished . √ changes to a user should update the cache . √ user login with non-string username with REST API . √ become sends token back . √ should fail to become user with expired token There were open connections to the server left after the test finished . √ async methods . √ user sign up instance method . √ login with provider should be blockable by beforeLogin . √ user get session from token on signup . √ user login using POST with REST API . √ should not create extraneous session tokens . √ handles properly when 2 users share username / email pairs . √ user login wrong username . √ link with provider should return sessionToken . √ can login with email through query string . √ user login . √ should not overwrite username when unlinking facebook user (regression test for #1532) . √ querying for users only gets the expected fields . √ user updates . √ cannot login with email and invalid password There were open connections to the server left after the test finished . √ link with provider for already linked user . √ should revoke sessions when converting anonymous user to "normal" user There were open connections to the server left after the test finished . √ link multiple providers . √ querying for users doesn't get session tokens . √ user with missing password There were open connections to the server left after the test finished . √ allows login when providing email as username . √ can login with email **. DatabaseController reduceOperations √ reduceAndOperation . √ reduceOrOperation . √ objectToEntriesStrings . validateQuery √ should accept valid queries . √ should reject invalid queries . √ should not push refactored keys down a tree for SERVER-13732 . √ should not restructure simple cases of SERVER-13732 . √ should not restructure SERVER-13732 queries with $nears . addPointerPermissions √ should decorate query if a pointer CLP is present and the same field is part of the query . √ should decorate query if an object CLP entry is present . √ should decorate query if an array CLP entry is present . √ should decorate query if a pointer CLP entry is present . √ should not return a $or operation if the query involves one of the fields also used as array/pointer permissions . √ should not decorate query if no pointer CLPs are present . √ should not return a $or operation if the query involves one of the two fields also used as array/pointer permissions . √ should transform the query to an $or query if multiple array/pointer CLPs are present . √ should throw an error if for some unexpected reason the property specified in the CLP is neither a pointer nor an array . public API without publicServerURL √ should get 404 choose_password . √ should get 404 on verify_email . √ should get 404 on request_password_reset . test validate_receipt endpoint √ should fail at appstore validation . √ should be able to update a _Product . √ should not be able to remove a require key in a _Product . √ should not create a _Product . √ should bypass appstore validation . √ should fail for missing receipt . √ should fail for missing product identifier . √ should bypass appstore validation and not find product . Enable express error handler √ should call the default handler in case of error, like updating a non existing object . Client √ can push leave response . √ can generate ParseObject JSON with null selected field . √ can delete subscription information . √ can get subscription information . √ can push subscribe response . √ can push connect response . √ can push unsubscribe response . √ can generate ParseObject JSON with nonexistent selected fields . √ can generate ParseObject JSON with selected fields . √ can be initialized . √ can add subscription information . √ can push error . √ can push response . √ can push create response . √ can push enter response . √ can generate ParseObject JSON with undefined selected field . √ can push update response . Security Check Groups CheckGroupServerConfig √ is subclassed correctly . √ checks succeed correctly . √ checks fail correctly . CheckGroupDatabase √ checks fail correctly . √ checks succeed correctly . √ is subclassed correctly . google play games service auth √ validateAuthData should pass validation . √ validateAuthData should throw error There were open connections to the server left after the test finished . Account Lockout Policy: √ account should not be locked even after failed login attempts if account lockout policy is not set . √ throw error if threshold is < 1 . √ throw error if threshold is > 999 . √ throw error if duration is set to an invalid number . √ throw error if threshold is set to an invalid number . √ lock account if failed login attempts are above threshold There were open connections to the server left after the test finished . √ lock account for accountPolicy.duration minutes if failed login attempts are above threshold . √ throw error if duration is <= 0 . √ throw error if duration is > 99999 . √ allow login for locked account after accountPolicy.duration minutes . EventEmitterPubSub √ can publish and subscribe . √ can unsubscribe . √ can unsubscribe not subscribing channel . info logs √ Verify INFO logs . √ info logs should interpolate number . √ info logs should interpolate json . √ info logs should interpolate string . beforeFind hooks √ should add beforeFind trigger using get API . √ should have request headers . √ should handle empty where . √ should handle sorting where . √ should use modify . √ should have request ip . √ should add beforeFind trigger . √ should use the modified the query . √ should reject queries . √ should have object found with nested relational data query . √ should use the modified exclude query . Uniqueness √ unique indexing works on pointer fields . √ fails when attempting to ensure uniqueness of fields that are not currently unique *. √ fail when create duplicate value in unique field . Parse.ACL √ restricted ACL does not have public access . √ acl sharing with another user and update . √ acl an object owned by one user and public delete . √ acl an object owned by one user and public update . √ acl an object owned by one user and public find . √ acl sharing with another user and public delete . √ acl an object owned by one user and public get . √ acl saveAll with permissions . √ acl making an object publicly writable and public delete . √ empty acl works . √ acl making an object publicly writable and public update . √ acl an object owned by one user and logged in delete . √ acl making an object publicly writable and public find . √ query for included object with ACL works . √ acl an object owned by one user and logged in update . √ acl making an object publicly writable and public get . √ acl an object owned by one user and logged in find There were open connections to the server left after the test finished . √ acl sharing with another user and delete . √ acl an object owned by one user and logged in get . √ acl sharing with another user and public get . √ regression test #701 There were open connections to the server left after the test finished . √ acl sharing with another user and find . √ acl sharing with another user and public find . √ acl sharing with another user and get There were open connections to the server left after the test finished . √ refresh object with acl . √ acl making an object publicly readable and public delete . √ acl sharing with another user and public update . √ acl making an object publicly readable and public get . √ acl making an object publicly readable and public update . √ acl must be valid . √ acl making an object publicly readable and public find . √ acl making an object privately writable (#3194) . LogsRouter √ does scrub complex passwords on GET login . √ can check invalid master key of request . √ does scrub simple passwords on GET login . √ can check valid master key of request . √ does not have password field in POST login . √ can check invalid construction of controller *******************. rate limit √ should run with masterKey . √ can use a validator for post . √ can limit saving objects . √ can define limits via rateLimit and define There were open connections to the server left after the test finished . √ can set beforeLogin . √ can skip with masterKey . √ can set beforeDelete . √ can set method to post . √ can set method to delete . √ does not limit internal calls warn: DeprecationWarning: The Parse Server option 'allowClientClassCreation' default will change to 'false' in a future version. warn: DeprecationWarning: The Parse Server option 'allowExpiredAuthDataToken' default will change to 'false' in a future version. . √ can use a validator . √ can limit cloud with validator . √ can set method to get * . √ can limit cloud functions . √ can add global limit . √ can validate rateLimit . √ can use a validator for file There were open connections to the server left after the test finished . √ can limit cloud functions with user session token F execution × should start Parse Server with GraphQL and Playground - Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT - Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) F × should start Parse Server with GraphQL - Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT - Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) F × should start Parse Server - Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT - Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) *. PushController √ should update audiences . √ should properly report failures in _PushStatus . √ properly creates _PushStatus without serverURL . √ should not mark the _PushStatus as failed when audience has no deviceToken . √ properly creates _PushStatus . √ properly set badges to 1 with complex query #2903 #3022 . √ should support localized payload data . √ can get push time in number format . √ should schedule push when configured . √ properly set badges to 1 . √ can get expiration time in number format . √ can get push time in string format F formatPushTime × should format as ISO string - Expected '2017-09-06T11:44:01.048' to be '2017-09-06T11.5:14:01.048', 'No timezone'. . √ properly increment badges by more than 1 . √ should not enqueue push when device token is not set . √ can get expiration time in string format . √ properly increment badges . √ should not schedule push when not configured . √ can throw on getPushTime in invalid format . √ should flatten F Scheduling pushes in local time × should preserve the push time - Expected '2017-09-06T11:44:01.048' to be '2017-09-06T11.5:14:01.048'. . √ can throw on getExpirationTime in invalid format . √ can validate device type when single valid device type is set . √ properly transforms push time . √ can validate device type when no device type is set . pushTimeHasTimezoneComponent √ should be accurate . √ can throw on validateDeviceType when single invalid device type is set . √ should support full RESTQuery for increment . With expiration defined √ should throw if both expiration_time and expiration_interval are set . For immediate pushes √ should transform the expiration_interval into an absolute time . √ should throw on invalid expiration_interval . √ can validate device type when multiple valid device types are set . √ should support object type for alert . public API supplied with invalid application id √ should get 403 on get of request_password_reset . √ should get 403 on post of request_password_reset . √ should get 403 on resendVerificationEmail . √ should get 403 on verify_email . √ should get 403 choose_password . queryHash √ should not let fields of different types appear similar . √ should return equivalent hashes for equivalent queries . √ should always hash a query to the same string . apple signin auth adapter √ (using client id as string) should verify id_token **. √ (using client id as array) should not verify invalid id_token . √ (using client id as array with multiple items) should verify id_token *. √ (using client id as array) should verify id_token . √ (using client id as string) should throw error with with invalid jwt issuer . √ (using client id as string) should throw error with missing id_token . √ (using client id as string) should throw error with with invalid jwt issuer *. √ should not decode invalid id_token . √ (using client id as array) should throw error with missing id_token . √ should throw error if public key used to encode token is not available . √ should throw error with with invalid user id . √ should not verify invalid id_token . √ should use algorithm from key header to verify id_token . afterFind hooks √ should add afterFind trigger using get . √ should handle failures . √ should also work with promise . √ can set invalid object in afterFind . √ should expose context in before and afterSave . √ should throw error if context header is string "1" . √ can set a pointer object in afterFind . √ should expose context in beforeSave/afterSave via header . √ should add afterFind trigger . √ should alter select . √ should skip afterFind hooks for aggregate . √ should throw error if context body is string "true" . √ should not alter select . √ should skip afterFind hooks for distinct . √ should throw error if context body is malformed . √ should throw error if context header is malformed . √ should expose context in before and afterSave and let keys be set individually . √ should add afterFind trigger using find . √ can return a unsaved object in afterFind . √ should filter out results . √ should have request headers . √ should have request ip . √ should set count to true on beforeFind hooks if query is count . √ should override header context with body context in beforeSave/afterSave . √ should set count to false on beforeFind hooks if query is not count . √ should validate triggers correctly . LiveQuery definitions √ should have valid types . Postgres database init options √ should create server with public schema databaseOptions . √ should create server using postgresql uri with public schema databaseOptions error: no schema has been selected to create in at Parser.parseErrorMessage (D:\Work\personal\parse\parse-server\node_modules\pg-protocol\dist\parser.js:287:98) at Parser.handlePacket (D:\Work\personal\parse\parse-server\node_modules\pg-protocol\dist\parser.js:126:29) at Parser.parse (D:\Work\personal\parse\parse-server\node_modules\pg-protocol\dist\parser.js:39:38) at Socket. (D:\Work\personal\parse\parse-server\node_modules\pg-protocol\dist\index.js:11:42) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at Socket.Readable.push (node:internal/streams/readable:228:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23) { length: 120, severity: 'ERROR', code: '3F000', detail: undefined, hint: undefined, position: '28', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, column: undefined, dataType: undefined, constraint: undefined, file: 'namespace.c', line: '489', routine: 'RangeVarGetCreationNamespace', query: 'CREATE TABLE IF NOT EXISTS "_SCHEMA" ( "className" varChar(120), "schema" jsonb, "isParseClass" bool, PRIMARY KEY ("className") )', params: undefined } Error on ParseServer.startApp: error: no schema has been selected to create in at Parser.parseErrorMessage (D:\Work\personal\parse\parse-server\node_modules\pg-protocol\dist\parser.js:287:98) at Parser.handlePacket (D:\Work\personal\parse\parse-server\node_modules\pg-protocol\dist\parser.js:126:29) at Parser.parse (D:\Work\personal\parse\parse-server\node_modules\pg-protocol\dist\parser.js:39:38) at Socket. (D:\Work\personal\parse\parse-server\node_modules\pg-protocol\dist\index.js:11:42) at Socket.emit (node:events:513:28) at addChunk (node:internal/streams/readable:315:12) at readableAddChunk (node:internal/streams/readable:289:9) at Socket.Readable.push (node:internal/streams/readable:228:10) at TCP.onStreamRead (node:internal/stream_base_commons:190:23) { length: 120, severity: 'ERROR', code: '3F000', detail: undefined, hint: undefined, position: '28', internalPosition: undefined, internalQuery: undefined, where: undefined, schema: undefined, table: undefined, column: undefined, dataType: undefined, constraint: undefined, file: 'namespace.c', line: '489', routine: 'RangeVarGetCreationNamespace', query: 'CREATE TABLE IF NOT EXISTS "_SCHEMA" ( "className" varChar(120), "schema" jsonb, "isParseClass" bool, PRIMARY KEY ("className") )', params: undefined } . √ should fail to create server if schema databaseOptions does not exist . lockout with password reset option √ accepts valid unlockOnPasswordReset option There were open connections to the server left after the test finished . √ allow login for locked account after password reset . √ uses default value if unlockOnPasswordReset is not set . √ rejects invalid unlockOnPasswordReset option . √ reject login for locked account after password reset (default) . PostgresConfigParser.parseQueryParams √ creates a map from a query string . matchesQuery √ matches blanket queries . √ matches an $nor query . √ matches on Date . √ should support containedIn with array of pointers . √ matches $within queries . √ should support containedBy query . √ should support withinPolygon query . √ should support containedIn queries with [objectId] . √ matches $nearSphere queries . √ should support polygonContains query . √ matches existence queries . √ should support notContainedIn queries with [objectId] . √ should support containedIn with pointers . √ matches an $and query . √ does not match $all query when value is missing . √ should support notContainedIn with pointers . √ matches on subobjects with dot notation . √ matches $regex queries . √ matches on equality queries . √ matches queries with doesNotExist constraint . √ matches an $or query . √ matches on inequalities . LoggerController √ can set the proper default values . √ can process a descending query without throwing . √ properly validates dateTimes . √ can parse a descending query without throwing . √ can process an ascending query without throwing . √ should throw without an adapter . √ should replace implementations with verbose . √ should replace implementations with logLevel . √ can parse an ascending query without throwing . √ can process an empty query without throwing . Parse.Query testing √ include with ["*"] . √ first with error . √ should handle relative times correctly . √ can order on an object number field . √ withJSON supports geoWithin.centerSphere . √ matches regex . √ order by _updated_at . √ select keys (arrays) . √ include with * overrides . √ $select inside $or . √ or complex queries . √ includeAll . √ case insensitive regex success . √ should match complex structure with dot notation when using doesNotMatchKeyInQuery . √ count . √ containedIn with pointers should work with string array . √ can order on an object string field (level 2) . √ order by updatedAt . √ doesNotExist relation . √ dontSelect query without conditions . √ time lessThan . √ first no result . √ containedIn with pointers should work with string array, with many objects . √ $nor valid query . √ order by descending number and string, with array arg . √ first with two results . √ regexes with invalid options fail . √ $nor invalid query - empty array . √ dontSelect query . √ should not throw error with undefined dot notation when using doesNotMatchKeyInQuery . √ nested containedIn string . √ containsAllStartingWith empty array values should return empty results . √ query with two OR subqueries (regression test #1259) . √ can order on an object number field (level 2) . √ number equalTo boolean queries . √ includeAll pointer and pointer array . √ Use a regex that requires all modifiers . √ $nor invalid query - wrong type . √ exclude keys with include different key . √ objectId containedIn with multiple large array . √ endsWith . √ skip . √ containsAllStartingWith single empty value returns empty results . √ query.each fails with skip . √ query without limit respects default limit . √ containedIn false queries . √ query with limit exceeding maxlimit . √ nested containedIn number . √ select keys for specific object *. √ equalTo false queries . √ equalTo queries . √ multiple dontSelect query . √ select nested keys 2 level includeAll . √ time equality . √ skip doesn't affect count . √ properly includes array . √ properly fetches nested pointers . √ withJSON with geoWithin.centerSphere fails without parameters . √ exclude keys (arrays) . √ should find objects with array of pointers . √ can set object type key . √ select keys query JS SDK . √ first . √ order by descending number and string, with space . √ select nested keys (issue #1567) . √ query containedIn on empty array . √ exclude keys query JS SDK . √ should properly interpret a query v1 . √ equalTo on same column as $dontSelect should not break $dontSelect functionality (#3678) . √ nested equalTo string with single quote . √ withJSON with geoWithin.centerSphere fails with invalid distance . √ include doesn't make dirty wrong . √ query with limit overrides default limit . √ equalTo undefined . √ withJSON with geoWithin.centerSphere fails with invalid coordinate . √ equalTo zero queries . √ exclude keys with select same key . √ should properly interpret a query v2 . √ order by descending number . √ notEqualTo object . √ containsAllStartingWith should match all strings that starts with string . √ nested containedIn string with single quote . √ query.each fails with limit . √ matches string . √ notContainedIn false queries . √ supports include on the wrong key type (#2262) . √ withJSON with geoWithin.centerSphere fails with invalid geo point . √ result object creation uses current extension . √ select keys (strings) . √ include for specific object . √ objectId containedIn queries . √ include pointer and pointer array (keys switched) . √ query match on array with single object . √ order by ascending number then descending string . √ exclude keys (strings) . √ query.each async . √ query with limit equal to maxlimit . √ matches query *. √ can update numeric array . √ greaterThanOrEqualTo zero queries . √ notContainedIn queries . √ exclude nested keys 2 level . √ basic query . √ should not depend on parameter order #3169 . √ query should not match on array when searching for null . √ Regular expression constructor includes modifiers inline . √ select query . √ containedIn object array queries . √ containedIn queries . √ include relation . √ order by ascending number . √ find no elements . √ can update mixed array more than 100 elements . √ query within dictionary . √ include pointer and pointer array . √ containedBy empty array *. √ order by descending number and string . √ where $eq null queries (rest) . √ query.each . √ contains . √ containedIn null array . √ don't include by default . √ objectId equalTo queries . √ order by descending number and string, with multiple args . √ containsAll object array queries . √ can add new config to existing config . √ select keys with each query . √ greaterThan queries Error while parsing relative date { status: 'error', info: "Invalid interval: 'bananas'" } . √ should error on invalid relative time . √ containsAll string array queries . √ include relation array . √ order by descending number then ascending string . √ containsAllStartingWith single invalid regex returns empty results . √ searching for not null . √ order by non-existing string . √ notEqualTo queries . √ nested contains . √ properly handles nested ors . √ can update mixed array . √ notEqual with array of pointers . √ should match a key in an array (#3195) . √ searching for null . √ get . √ properly includes array of mixed objects . √ notEqualTo zero queries . √ exclude nested keys *. √ time createdAt . √ lessThanOrEqualTo queries . √ startsWith . √ should match complex structure with dot notation when using matchesKeyInQuery . √ exclude keys with includeAll . √ get error . √ exists . √ properly nested array of mixed objects with bad ids . √ query.each fails with order *. √ or queries . √ include with ["*"] overrides . √ query notContainedIn on empty array . √ can't order by password . √ lessThanOrEqualTo greaterThanOrEqualTo queries . √ order by createdAt . √ include with * . √ nested include . √ exclude keys with select different key . √ should not interfere with has when using select on field with undefined value #3999 There were open connections to the server left after the test finished . √ include user There were open connections to the server left after the test finished . √ notEqualTo with Relation is working . √ lessThan greaterThan queries . √ can query regex with unicode . √ should not throw error with undefined dot notation when using matchesKeyInQuery . √ can order on an object string field . √ exists relation . √ order by _created_at . √ greaterThanOrEqualTo queries . √ lessThan zero queries . √ select nested keys 2 level (issue #1567) . √ get undefined . √ select nested keys 2 level without include (issue #3185) . √ async methods . √ exclude keys with include same key . √ containsAll date array queries . √ should error when using $relativeTime on non-Date field . √ query with limit . √ containsAllStartingWith values must be all of type starting with regex . √ doesNotExist . √ query match on array with multiple objects . √ containedBy invalid query . √ containedBy pointer array . √ where $eq false queries (rest) . √ find with error . √ greaterThan zero queries . √ containedBy number array . √ lessThan queries . √ containsAllStartingWith single regex value should return corresponding matching results . √ containsAll number array queries . √ lessThanOrEqualTo zero queries . SessionTokenCache √ can get undefined userId . √ can get new userId . √ can get existing userId . features √ requires the master key to get features . √ should return the serverInfo . Cloud Code √ test beforeSave applies changes when beforeSave returns true . √ show warning on duplicate cloud functions . √ beforeSave change propagates through the afterSave #1931 . √ test beforeSave happens on update . √ can create functions . √ beforeSave should not affect fetched pointers . √ before save can revert fields . √ dirtyKeys are set on update . √ can get config . √ is cleared cleared after the previous test . √ should fully delete objects when using `unset` with beforeSave (regression test for #1840) . √ test cloud function request params types . √ beforeSave should be called only if user fulfills permissions . √ basic beforeSave rejection . √ should properly create an object in before save . √ trivial beforeSave should not affect fetched pointers (regression test for #1238) . √ returns an error . √ test beforeDelete success . √ create role with name and ACL and a beforeSave There were open connections to the server left after the test finished . √ allow cloud to encode Parse Objects . √ test afterDelete ignoring promise, object is not yet deleted . √ test beforeDelete failure . √ before save increment does not return undefined . √ basic beforeDelete rejection via promise . √ beforeSave change propagates through the save response *. √ test afterSave ran on created object and returned a promise There were open connections to the server left after the test finished . √ test save triggers get user *. √ returns an empty error . cloud jobs √ should run with master key basic auth . √ should run with master key . √ should set the failure on the job . √ should define a job . √ should not run without master key . √ should set the message / success on the job . √ should set the failure message on the job error . √ beforeFind can throw string . √ should not include relation op (regression test for #1606) . √ can set a pointer in triggers . √ test cloud function parameter validation success . √ test afterSave rejecting promise . √ pointer should not be cleared by triggers . √ test afterDelete returning promise, object is deleted when destroy resolves Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) at async UserContext. (D:\Work\personal\parse\parse-server\spec\CloudCode.spec.js:45:5) { code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' } Error on ParseServer.startApp: Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) at async UserContext. (D:\Work\personal\parse\parse-server\spec\CloudCode.spec.js:45:5) { code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' } F × can load cloud code as a module - Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' . √ should succeed on afterSave exception . √ test beforeSave with invalid field . √ basic beforeSave rejection via promise . √ beforeSave should not sanitize database . √ test afterSave ran and created an object . √ should wait for cloud code to load . √ before save can revert fields with existing object . √ test beforeSave returns value on create and update . √ test beforeSave changed object success . √ test cloud function should echo keys . √ doesnt receive stale user in cloud code functions after user has been updated with master key (regression test for #1836) . √ beforeSave rejection with custom error code Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) { code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' } Error on ParseServer.startApp: Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) { code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' } F × can load absolute cloud code file - Unhandled promise rejection: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' . √ should revert in beforeSave . √ test beforeSave unchanged success . √ clears out the user cache for all sessions when the user is changed . √ test beforeSave applies changes and resolves returned promise argument 'cloud' must either be a string or a function Error on ParseServer.startApp: argument 'cloud' must either be a string or a function . √ cloud code must be valid type Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) { code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' } Error on ParseServer.startApp: Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at runMicrotasks () at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) { code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' } F × can load relative cloud code file - Unhandled promise rejection: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' . √ can unset in afterSave . √ test afterDelete ran and created an object . √ test beforeSave changed object fail doesn't change object . √ test cloud function return types . keycloak auth adapter √ validateAuthData should fail without access token . √ validateAuthData should fail without user id . √ validateAuthData should fail without config . √ validateAuthData should fail connect error . √ validateAuthData should fail with error description . √ validateAuthData should fail with invalid auth . √ validateAuthData should fail with invalid groups . √ validateAuthData should fail with invalid roles . √ validateAuthData should handle authentication . MongoSchemaCollection √ can transform legacy _client_permissions keys to parse format . AnalyticsController √ should track a simple event . √ should track a app opened event There were open connections to the server left after the test finished . beforeLogin hook √ should not run beforeLogin with incorrect credentials . √ should be able to block login if an error is thrown even if the user has a attached file There were open connections to the server left after the test finished . √ should not run beforeLogin on sign up There were open connections to the server left after the test finished . √ should be able to block login if an error is thrown . √ should run beforeLogin with correct credentials . √ does not crash server when throwing in afterLogin hook . √ does not crash server when throwing in afterLogout hook There were open connections to the server left after the test finished . √ should have expected data in request . √ afterFind should not be triggered when saving an object . √ should trigger afterLogout hook on logout . AdaptableController √ should fail to instantiate a controller without an adapter . √ should fail to instantiate a controller with wrong adapter . √ should accept an object adapter . √ should accept an prototype based object adapter . √ should fail setting the wrong adapter to the controller . √ should throw when creating a new mock controller . √ should use the provided adapter . ParseGraphQLSchema _getParseClassesWithConfig √ should sort classes . addGraphQLMutation √ should not load and warn duplicated mutations . √ should throw error when required . √ should warn reserved name collision . √ should ignore collision when necessary . alias √ Should be able to define alias for get and find query . √ Should be able to define alias for mutation . name collision √ should not generate duplicate queries when query name collide . √ should not generate duplicate types when colliding to default classes . √ should not generate duplicate types when colliding the same name . constructor √ should require a parseGraphQLController, databaseController, a log instance, and the appId . addGraphQLType √ should not load and warn duplicated types . √ should throw error when required . √ should ignore collision when necessary . √ should warn reserved name collision . load √ should load a brand new GraphQL Schema if graphQLConfig changes . √ should cache schema . √ should load a brand new GraphQL Schema if Parse Schema changes . addGraphQLQuery √ should ignore collision when necessary . √ should throw error when required . √ should not load and warn duplicated queries . √ should warn reserved name collision . Deprecator √ deprecations are an array . √ logs deprecation for new default . √ does not log deprecation for new default if option is set manually . √ logs runtime deprecation ******************. Vulnerabilities Object prototype pollution √ denies object prototype to be polluted with keypath string "constructor" . √ denies object prototype to be polluted with keyword "constructor" . √ denies object prototype to be polluted with keyword "__proto__" . Ignore non-matches √ ignores write request that contains only fraction of denied keyword . Request denylist √ allows BSON type code data in write request with custom denylist . √ denies creating a hook with polluted data . √ denies write request with custom denylist of nested key/value . √ denies BSON type code data in file tags . √ denies creating a cloud trigger with polluted data . √ denies expanding existing object with polluted keys . √ denies write request with custom denylist of key/value . √ denies write request with custom denylist of key . √ denies BSON type code data in file metadata . √ denies write request with custom denylist of key/value in array . √ denies BSON type code data in write request by default . √ denies write request with custom denylist of value . ClientSDK √ should properly parse the SDK versions . √ should properly sastisfy There were open connections to the server left after the test finished . Regex Vulnerabilities on password reset √ should work with plain token . √ should not work with regex . on session token √ should work with plain token . √ should not work with regex . on verify e-mail √ should work with plain token . √ should not work with regex ******************************. Subscription √ can delete all requests for one client . √ can delete some requests for one client . √ can check it has subscribing clients . √ can delete requests for multiple clients . √ can be initialized . √ can add requests for one client . √ can delete nonexistent request for one client . √ can add requests for clients . √ can check it does not have subscribing clients . √ can delete requests for nonexistent client . √ can add one request for one client . error logs √ error logs should interpolate number . √ error logs should interpolate json . √ error logs should interpolate string . √ Should filter on query . √ Verify ERROR logs . afterLogin hook √ should have access to context in beforeFind hook . √ should have expected data in request . √ should run afterLogin after successful login . √ should have access to context when cloud function is called. . √ should not run afterLogin on sign up . √ context options should override _context object property when saving a new object . √ afterFind should have access to context . √ should have access to context when saving a new object in a trigger . √ should have access to context when saving an existing object . √ should have access to context when saving a new object . √ beforeFind and afterFind should have access to context while making fetch call . √ should have access to context as destroy a object . √ should have access to context as destroyAll argument . √ should have access to context as saveAll argument . √ should not run afterLogin after unsuccessful login . √ should have access to context when cascade-saving objects . AdapterLoader √ should load custom push adapter from string (#3544) . √ should instantiate an adapter from string that is module . √ should instantiate an adapter from npm module . √ should load file adapter from direct passing . √ should use the default adapter . √ should use the provided adapter . √ should fail loading an improperly configured adapter . √ should instantiate an adapter from string in object . √ should instantiate an adapter from function/Class . √ should instantiate an adapter from string . √ should load push adapter from options . √ should instantiate the default adapter from Class There were open connections to the server left after the test finished . Email Verification Token Expiration: √ emailVerified should set to false, if the user does not verify their email before the email verify token expires There were open connections to the server left after the test finished . √ clicking on the email verify link by an email UNVERIFIED user that was setup before enabling the expire email verify token should show invalid verficiation link page . √ should fail if email is not a string . √ setting the email on the user should set a new email verification token and new expiration date for the token when expire email verify token flag is set . √ client should not see the _email_verify_token_expires_at field . √ emailVerified should be set to false after changing from an already verified email . √ should not send a new verification email if this user does not exist . √ should fail if no email is supplied . √ if user clicks on the email verify link before email verification token expiration then user should be able to login . √ if user clicks on the email verify link before email verification token expiration then show the verify email success page . √ sets the _email_verify_token_expires_at and _email_verify_token fields after user SignUp . √ should throw with invalid emailVerifyTokenReuseIfValid . √ if user clicks on the email verify link before email verification token expiration then emailVerified should be true There were open connections to the server left after the test finished . √ should match codes with emailVerifyTokenReuseIfValid . √ should send a new verification email when a resend is requested and the user is UNVERIFIED There were open connections to the server left after the test finished . √ clicking on the email verify link by an email VERIFIED user that was setup before enabling the expire email verify token should show email verify email success . √ show the invalid verification link page, if the user clicks on the verify email link after the email verify token expires . √ should not send a new verification email when a resend is requested and the user is VERIFIED . √ unsets the _email_verify_token_expires_at and _email_verify_token fields in the User class if email verification is successful . public API √ should get password_reset_success.html . √ should get verify_email_success.html . √ should return missing username error on ajax request without username provided . √ should get invalid_link.html . √ should return missing password error on ajax request without password provided . √ should return missing token error on ajax request without token provided . √ should get choose_password . [postgres] Parse.Query Full Text Search testing √ fullTextSearch: $caseSensitive . √ fullTextSearch: $diacriticSensitive - false *. AudiencesRouter √ should only delete with master key . √ should be able to search on audiences . √ should only get with master key . √ uses find condition from request.body . √ should handle _Audience invalid fields via rest . √ uses find condition from request.query . √ query installations with limit = 0 . √ should create, read, update and delete audiences throw api *. √ should only create with master key . √ should only update with master key *. √ should only find with master key . relativeTimeToDate Error cases √ should error on invalid interval units . √ should error if numbers are invalid . √ should error if there are missing units or numbers . √ should error when string contains 'ago' and 'in' . √ should error if string contains neither `ago` nor `in` . √ should error if string is completely gibberish . √ should error on floating point numbers . In the past √ should parse valid natural time . From now √ should equal current time . In the future √ should parse valid natural time . ProtectedFields non user class √ should hide fields in non user class and non standard user field at same time . √ should hide fields in a non user class . using the pointer-permission variant and get/fetch √ should deny access to other users using single user pointer-permissions . √ should deny access to other users using user array pointer-permissions There were open connections to the server left after the test finished . √ should allow access using user array pointer-permissions There were open connections to the server left after the test finished . √ should allow access using single user pointer-permissions . √ should deny access to public using single user pointer-permissions . √ should ignore pointer-permission fields not present in object . √ should deny access to public using user array pointer-permissions There were open connections to the server left after the test finished . √ should intersect protected fields when using multiple pointer-permission fields . and find √ should ignore pointer-permission fields not present in object . √ should allow access using user array pointer-permissions . √ should filter only fields from objects not owned by the user . √ should deny access to other users using user array pointer-permissions . √ should deny access to public using user array pointer-permissions . √ should intersect protected fields when using multiple pointer-permission fields There were open connections to the server left after the test finished . √ should allow access using single user pointer-permissions . √ should deny access to other users using single user pointer-permissions . √ should deny access to public using single user pointer-permissions . targeting authenticated √ should protect multiple fields for authenticated users . √ should not hide any fields when set as empty array . √ should have no effect on unauthenticated users (public not set) . √ should intersect public and auth for authenticated user . √ should not be affected by rules not applicable to user (smoke) There were open connections to the server left after the test finished . √ should hide fields for authenticated users only (* not set) . √ should have higher prio than public for logged in users (intersect) . √ should handle and empty protectedFields . targeting roles √ should not hide any fields when set as empty array . √ should be determined as an intersection of protecedFields for authenticated and role . √ should intersect protected fields when user belongs to multiple roles . √ should hide field when user belongs to a role There were open connections to the server left after the test finished . √ should not protect when user does not belong to a role . √ should intersect protected fields when user belongs to multiple roles hierarchy . √ should be able to clear protected fields for role (protected for authenticated) . √ should hide multiple fields when user belongs to a role . √ should determine protectedFields as intersection of field sets for public and role There were open connections to the server left after the test finished . √ should not hide fields when user does not belong to a role protectedFields set for . schema setup √ should fail setting non-existing protected field . √ should allow setting authenticated . √ should not allow protecting default fields . targeting public access √ should hide field . √ should not hide any fields when set as empty array . √ should hide mutiple fields . using pointer-fields and queries with keys projection √ should protect fields for query where pointer field is not included via keys (REST FIND) *. √ should be enforced regardless of pointer-field being included in keys (select) . √ should protect fields for query where pointer field is not included via keys (REST GET) . √ should protect fields for query where pointer field is in excludeKeys (REST GET) . √ should protect fields for query where pointer field is in excludedKeys (REST FIND) . interaction with legacy userSensitiveFields √ should fall back on sensitive fields if protected fields are not configured . √ should merge protected and sensitive for extra safety . PostgresStorageAdapter shutdown √ handleShutdown, close connection of postgresql uri . √ handleShutdown, close connection *******. Pointer Permissions using single user-pointers √ should query on pointer permission enabled column . √ should let a proper user find . √ should let master key update objects . √ should let master key find objects . √ should work with write . √ should let master key get objects . √ tests CLP / Pointer Perms / ACL read (ACL locked) . √ should work with find . √ tests CLP / Pointer Perms / ACL read (PP/ACL OK) . √ should fail with invalid pointer perms (non-existing field) . √ should fail with invalid pointer perms (not array) . √ should let master key delete objects . √ should prevent creating pointer permission on bad field (non-existing) . √ should prevent creating pointer permission on bad field (non-user pointer) . √ should prevent creating pointer permission on bad field (of wrong type) . √ tests CLP / Pointer Perms / ACL read (PP locked) . √ tests CLP / Pointer Perms / ACL write (ACL/PP OK) . √ should prevent creating pointer permission on missing field . √ tests CLP / Pointer Perms / ACL write (ACL Locked) . √ should handle multiple writeUserFields . √ tests CLP / Pointer Perms / ACL write (PP Locked) There were open connections to the server left after the test finished . √ should not allow creating objects . Granular combined with grouped √ should not limit the scope of grouped read permissions . √ should not inherit scope of grouped read permissions from another field . √ should not inherit scope of grouped write permissions from another field . √ should not limit the scope of grouped write permissions . using pointer-fields and queries with keys projection √ should be enforced regardless of pointer-field being included in keys (select) . on single-pointer fields find action √ should be limited to objects where user is listed in field There were open connections to the server left after the test finished . √ should be allowed There were open connections to the server left after the test finished . √ should not allow other actions There were open connections to the server left after the test finished . get action √ should fail for user not listed . √ should be allowed There were open connections to the server left after the test finished . √ should not allow other actions . count action √ should be allowed There were open connections to the server left after the test finished . √ should be limited to objects where user is listed in field . √ should not allow other actions . delete action √ should not allow other actions There were open connections to the server left after the test finished . √ should fail for user not listed . √ should be allowed . update action √ should not allow other actions . √ should fail for user not listed . √ should be allowed *. addField action √ should be allowed when updating object . √ should be denied when updating object for user without addField permission * There were open connections to the server left after the test finished . create action √ should be denied (writelock) when no other permissions on class . on array of pointers find action √ should be allowed (1 user in array) . √ should be allowed (multiple users in array) . √ should be limited to objects where user is listed in field . √ should not allow other actions . count action √ should be allowed There were open connections to the server left after the test finished . √ should be limited to objects where user is listed in field . √ should not allow other actions . create action √ should be denied (writelock) when no other permissions on class There were open connections to the server left after the test finished . update action √ should fail for user not listed . √ should not allow other actions . √ should be allowed (1 user in array) There were open connections to the server left after the test finished . √ should be allowed (multiple users in array) . addField action √ should be denied when creating object (and no explicit permission) . √ should have no effect on create (allowed by explicit userid) There were open connections to the server left after the test finished . √ should be allowed when updating object . √ should be restricted when updating object without addField permission . delete action √ should not allow other actions . √ should be allowed (1 user in array) . √ should be allowed (multiple users in array) . √ should fail for user not listed . get action √ should fail for user not listed There were open connections to the server left after the test finished . √ should not allow other actions . √ should be allowed (1 user in array) There were open connections to the server left after the test finished . √ should be allowed (multiple users in array) There were open connections to the server left after the test finished . using arrays of user-pointers √ should not query using arrays on pointer permission enabled column . √ tests CLP / Pointer Perms / ACL read (PP/ACL OK) . √ should not allow creating objects There were open connections to the server left after the test finished . √ tests CLP / Pointer Perms / ACL read (PP locked) . √ should let master key find objects . √ should query on pointer permission enabled column . √ should let master key get objects . √ tests CLP / Pointer Perms / ACL read (ACL locked) . √ should work with write . √ should let master key delete objects . √ should work with find . √ should let a proper user find . √ should let master key update objects . √ should fail with invalid pointer perms (non-existing field) . √ should fail with invalid pointer perms (not array) . √ should prevent creating pointer permission on bad field (of wrong type) There were open connections to the server left after the test finished . √ should work with arrays containing valid & invalid elements . √ tests CLP / Pointer Perms / ACL write (ACL Locked) . √ tests CLP / Pointer Perms / ACL write (PP Locked) . √ should prevent creating pointer permission on bad field (non-existing) . √ should handle multiple writeUserFields . √ should prevent creating pointer permission on missing field . √ tests CLP / Pointer Perms / ACL write (ACL/PP OK) . Parse.Query Aggregate testing √ group by empty object *. √ skip query . √ match objectId query . √ distinct query with where . √ match date query - updatedAt . √ distinct query . √ group by field . √ should aggregate with Date object (directAccess) *. √ group by pipeline operator . √ sort decending query . √ match $or query . √ match comparison query *. √ match comparison and equality query . √ match date query - createdAt *. √ group by number . √ match multiple comparison query . √ multiple project query . √ can group by any date field (it does not work if you have dirty data) . √ match date query - empty . √ project query . √ distinct field does not exist return empty . √ group count query . √ match complex comparison query . √ distinct createdAt . √ distinct objectId *. √ group by date object transform . √ should only query aggregate with master key **. √ group min query . √ distinct array *. √ group by empty string . √ group by pointer There were open connections to the server left after the test finished . √ distinct null field *. √ field does not exist return empty . √ distinct pointer . √ group by empty array . √ class does not exist return empty . √ limit query *. √ distinct class does not exist return empty . √ distinct updatedAt *. √ group sum query . √ distinct query with where string *. √ distinct nested . √ group avg query . √ match field query . √ match pointer query . √ invalid query group _id required . √ match comparison date query . √ group by multiple columns . √ does not return sensitive hidden properties . √ sort ascending query . √ project with group query . √ group by date object . √ group max query . √ project pointer query . AggregateRouter √ get pipeline from Pipeline Operator (Array) . √ get pipeline from Pipeline Operator (Object) . √ get pipeline fails multiple keys in Pipeline Operator Array stage . √ get pipeline fails multiple keys in Array stage . √ should throw with invalid stage . √ support stage name starting with `$` . √ should throw with invalid group . √ support nested stage names starting with `$` . √ get pipeline from Array . √ support the use of `_id` in stages . √ get pipeline from Object . √ get search pipeline from Pipeline Operator (Array) There were open connections to the server left after the test finished . Auth getRolesForUser √ should load all roles with config . √ should load all roles for different users with config There were open connections to the server left after the test finished . √ should load all roles without config . √ should load auth without a config There were open connections to the server left after the test finished . √ should load auth with a config . √ can use extendSessionOnUse . getUserRoles √ should get user roles from the cache . √ should not have any roles with no user . √ should only query the roles once . √ should properly handle bcrypt upgrade . √ should not have any user roles with master There were open connections to the server left after the test finished . √ should load auth with a config There were open connections to the server left after the test finished . √ should load auth without a config . a GlobalConfig √ failed getting config when it is missing . √ internal parameter can be retrieved with master key . √ internal parameter cannot be retrieved without master key . √ can be retrieved . √ can add and retrive Geopoints . √ properly handles delete op . √ can be updated when a master key exists . √ fail to update if master key is missing . √ can add and retrive files . Parse.Object testing √ deleted keys get cleared . √ dirty keys . √ async methods . √ updatedAt gets updated . √ new attribute clear then unset . √ remove object from array . √ invalid class name . √ invalid key name . √ createdAt doesn't change . √ fail validation with promise *. √ field deletion before first save *. √ save without null . √ fetchAllIfNeeded no objects . √ fetchAllIfNeeded . √ setting after deleting . √ createdAt is reasonable . √ dirty attributes . √ create without data . √ acl attribute . √ update . √ fetch . √ should have undefined includes when object is missing . √ Objects with className User . √ cannot save object with invalid field . √ relational fields . √ can set null . √ increment update with type conflict fails . √ should have undefined includes when object is missing on deeper path . √ toJSON saved object . √ fetchAllIfNeeded error on multiple classes . √ save adds no data keys (other than createdAt and updatedAt) . √ can set boolean . √ increment with empty field solidifies type . √ old attribute unset then unset . √ new attribute unset then unset . √ simple field deletion . √ fetchAllIfNeeded unsaved object . √ invalid __type . √ should handle select and include #2786 . √ old attribute clear then unset . √ unknown attribute unset then clear . √ increment with type conflict fails . √ find . √ is not dirty after save . √ fetchAll updates dates . √ addUnique . √ should include ACLs with select . √ unknown attribute unset then unset . √ save cycle *. √ many saves after a failure . √ remove from new field creates array key . √ add with an object . √ increment . √ Update object field should store exactly same sent object . √ old attribute unset then clear . √ new attribute unset then clear . √ get . √ cannot set invalid date . √ saving children in an array . √ can set authData when not user class . √ fetchAll no objects . √ create . √ recursive save . √ two saves at the same time *. √ new attribute clear then clear . √ should create nested keys with _ . √ fetchAll error on unsaved object . √ beforeSave doesn't make object dirty with new field . √ relation deletion . √ createdAt and updatedAt exposed . √ fetchAll error on deleted object . √ unknown attribute clear then clear . √ dictionary fetched pointers do not lose data on fetch . √ fetchAll error on multiple classes . √ unknown attribute clear then unset . √ should handle includes on null arrays #2752 . √ removes with object . √ fetchAll . √ addUnique with object . √ destroyAll no objects . √ bytes work . √ delete . √ old attribute clear then clear . √ isNew in cloud code . √ destroyAll new objects only . PromiseRouter √ should properly handle rejects ****. ParsePubSub √ can create publisher/sub with custom function adapter . √ can create publisher/sub with custom adapter . √ can create event emitter subscriber . √ can create redis publisher . √ can create redis subscriber . √ can create event emitter publisher . Password Policy: √ should reset password even if the new password contains user name while the policy allows . √ Should return error when password violates Password Policy and reset through ajax There were open connections to the server left after the test finished . √ should not keep reset token by default . √ signup should succeed if password conforms to both validatorPattern and validatorCallback . √ should fail if passwordPolicy.doNotAllowUsername is not a boolean value . √ should show the invalid link page if the user clicks on the password reset link after the token expires . √ should fail if passwordPolicy.maxPasswordAge is a negative number . √ should not infinitely loop if maxPasswordHistory is 1 (#4918) There were open connections to the server left after the test finished . √ should show the reset password page if the user clicks on the password reset link before the token expires . √ should fail if passwordPolicy.maxPasswordAge is not a number . √ should throw with invalid resetTokenReuseIfValid . √ should fail if passwordPolicy.resetTokenValidityDuration is not a number There were open connections to the server left after the test finished . √ should succeed if the new password is same as the 6th oldest one and policy does not allow only previous 5 . √ signup should succeed if password does not contain the username and is not allowed by policy . √ should fail to reset password if the new password does not conform to password policy . √ should fail if passwordPolicy.resetTokenValidityDuration is zero or a negative number . √ should fail if passwordPolicy.validatorCallback setting is invalid type . √ should fail if the new password is same as the 5th oldest one and policy does not allow the previous 5 . √ should fail if passwordPolicy.validatorPattern setting is invalid type . √ should fail if the new password is same as the previous one . √ signup should fail if password does not conform to the policy enforced using validatorPattern . √ signup should fail if password contains the username and is not allowed by policy . √ signup should fail if password is empty . √ should fail to reset password if the new password contains username and not allowed by password policy . √ should fail to reset if the new password is same as the last password . √ signup should succeed if password conforms to the policy enforced using validatorPattern string There were open connections to the server left after the test finished . √ signup should succeed if password contains the username and it is allowed by policy . √ should fail if passwordPolicy.maxPasswordHistory is greater than 20 . √ signup should succeed if password conforms to the policy enforced using validatorPattern . √ signup should fail if password does not conform to the policy enforced using validatorPattern string . √ should fail if passwordPolicy.maxPasswordHistory is not a number . √ signup should succeed if password conforms to the policy enforced using validatorCallback . √ signup should fail if password does not conform to the policy enforced using validatorCallback . √ should apply password expiry policy to existing user upon first login after policy is enabled . √ signup should fail if password matches validatorPattern but fails validatorCallback . √ should fail if passwordPolicy.maxPasswordHistory is a negative number . √ should fail if logged in after password expires . √ signup should fail if password does not match validatorPattern but succeeds validatorCallback . √ should succeed if logged in before password expires . √ should reset password timestamp when password is reset . √ should keep reset token with resetTokenReuseIfValid . √ should reset password if new password conforms to password policy . Parse.Query Full Text Search testing √ fullTextSearch: $search, sort . √ fullTextSearch: $diacriticSensitive . √ fullTextSearch: $language, invalid input . √ fullTextSearch: $diacriticSensitive, invalid input . √ fullTextSearch: $caseSensitive, invalid input . √ fullTextSearch: $search . √ fullTextSearch: $search, invalid input . √ fullTextSearch: $language . √ fulltext descending by $score . LiveQueryController √ should properly pack message request on afterDelete . √ should properly pack message request on afterSave . √ should properly pack message request . √ properly passes the CLP to afterSave/afterDelete hook . Parse.Polygon testing with location √ polygonContain invalid geoPoint . √ polygonContain invalid input . √ polygonContain query no reverse input (Regression test for #4608) . √ polygonContain query . √ polygonContain query real data (Regression test for #4608) . √ polygon counterclockwise . √ polygon invalid value . √ polygon update . √ polygon save open path . √ polygon save closed path . √ polygon three different points minimum . √ polygon three points minimum . √ polygon equalTo (open/closed) path . transformClassNameToGraphQL √ should remove starting _ and tansform first letter to upper case ****. ParseWebSocketServer √ closes interrupted connection . √ can handle connect event when ws is open . √ can handle error event . √ can handle ping/pong There were open connections to the server left after the test finished . Class Level Permissions for requiredAuth √ required auth test create/get/update/delete authenticated There were open connections to the server left after the test finished . √ required auth test create/get/update/delete with roles (#3753) . √ required auth test find . √ required auth test find authenticated . √ required auth should reject create when not authenticated . √ required auth should allow create authenticated . √ required auth test get not authenticated . √ required auth test find not authenticated . transformConstraint $relativeTime √ should error on $eq, $ne, and $exists F verbose logs × verbose logs should interpolate stdout - Expected 'verbose: testing verbose logs with {"hello":"world"} ' to be 'verbose: testing verbose logs with {"hello":"world"} '. . √ verbose logs should interpolate string . √ verbose logs should interpolate json . √ mask sensitive information in _User class . √ verbose logs should interpolate number . PostgresStorageAdapter √ should allow multiple unique indexes for same field name and different class . √ schemaUpgrade, maintain correct schema . √ should watch _SCHEMA changes . √ should use index for caseInsensitive query . √ $relativeTime should error on $ne There were open connections to the server left after the test finished . √ should use index for caseInsensitive query using default indexname . √ $relativeTime should error on $exists . √ Idempotency class should have function . √ $relativeTime should error on $eq . √ schemaUpgrade, upgrade the database schema when schema changes . √ should use index for caseInsensitive query using Postgres . √ getClass if not exists . √ Create a table without columns and upgrade with columns . √ getClass if exists . ParseWebSocket √ can be initialized . √ can handle message event . √ can send a message . √ can handle disconnect event . Personally Identifiable Information √ should not get PII via REST by ID . √ should be able to get own PII via API with Find . √ should be able to get own PII via API with object . √ should get PII via REST by ID with self credentials . √ should get PII via API with Find using master key . √ should be able to get PII via API with object using master key . √ should get PII via REST using master key . √ should get PII via REST with self credentials . √ should not get PII via REST . √ should not be able to get PII via API with object . √ should get PII via API with Get using master key . √ should not get PII via API with Get . √ should be able to get own PII via API with Get . with configured sensitive fields via CLP √ should get PII via REST by ID with self credentials . √ should not get PII via API with Get . with privileged user CLP √ privileged user should get user PII via REST by ID . √ privileged user should be able to get user PII via API with object There were open connections to the server left after the test finished . √ privileged user should be able to get user PII via API with Find . √ privileged user should be able to get user PII via API with Get . √ should get PII via REST by ID with master key . √ should not be able to get PII via API with object . √ should not get PII via REST by ID . √ should not get PII via REST . √ should get PII via REST with self credentials . √ should not get PII via API with Find . √ should get PII via API with Get using master key . √ should be able to get own PII via API with object . √ should get PII via API with Find using master key . with public read ACL √ should not get user PII via REST by ID . √ should not be able to get user PII via API with object . √ should not be able to get user PII via API with Find . √ should not be able to get user PII via API with Get There were open connections to the server left after the test finished . with another authenticated user √ should not be able to get user PII via API with object . √ should not be able to get user PII via API with Find There were open connections to the server left after the test finished . √ should be able to get own PII via API with Find without constraints . √ should not be able to get user PII via API with Get . √ should not be able to get user PII via API with Find without constraints . √ should be able to get own PII via API with Find . √ should be able to get own PII via API with Get . √ should be able to get PII via API with object using master key . √ should get PII via REST using master key . √ should not get PII via API with Find . √ should get PII via REST by ID with master key There were open connections to the server left after the test finished . with deprecated configured sensitive fields √ should be able to get own PII via API with object . √ should be able to get own PII via API with Get . √ should get PII via API with Find using master key . √ should get PII via API with Get using master key . √ should get PII via REST by ID with self credentials . √ should not get PII via API with Get . √ should be able to get PII via API with object using master key . √ should not be able to get PII via API with object . √ should not get PII via API with Find . √ should not get PII via REST by ID . √ should be able to get own PII via API with Find There were open connections to the server left after the test finished . √ should get PII via REST using master key . √ should get PII via REST by ID with master key . √ should get PII via REST with self credentials There were open connections to the server left after the test finished . √ should not get PII via REST There were open connections to the server left after the test finished . with privileged user no CLP √ privileged user should not be able to get user PII via API with Find . √ privileged user should not be able to get user PII via API with object . √ privileged user should not get user PII via REST by ID . √ privileged user should not be able to get user PII via API with Get . with public read ACL √ should not be able to get user PII via API with Find . √ should not get user PII via REST by ID . √ should not be able to get user PII via API with object . √ should not be able to get user PII via API with Get . with another authenticated user √ should not be able to get user PII via API with object . √ should not be able to get user PII via API with Find There were open connections to the server left after the test finished . √ should not be able to get user PII via API with Get . Custom Pages, Email Verification, Password Reset √ fails if you include an emailAdapter, have an appName, but have no publicServerURL and send a password reset email . √ fails if you include an emailAdapter, set a publicServerURL, but have no appName and send a password reset email . √ should send a password reset link There were open connections to the server left after the test finished . √ allows user to login if email is not verified but preventLoginWithUnverifiedEmail is set to false There were open connections to the server left after the test finished . √ allows user to login only after user clicks on the link to confirm email address if preventLoginWithUnverifiedEmail is set to true . √ redirects you to link send fail page if you try to resend a link for a nonexistant user . √ prevents user from login if email is not verified but preventLoginWithUnverifiedEmail is set to true . √ redirects you to invalid link if you try to request password for a nonexistant users email . √ validate resetPasswordSuccessonInvalidEmail . √ deletes password reset token on email address change . √ does send with a simple adapter . √ redirects you to invalid link if you try to verify email incorrectly . √ should throw on an invalid reset password There were open connections to the server left after the test finished . √ does send a validation email with valid verification link when updating the email . √ does not update email verified if you use an invalid token . √ should return ajax failure error on ajax request with wrong data provided . √ redirects you to invalid verification link page if you try to validate a nonexistant users email . √ does send a validation email when updating the email . √ does not send verification email when verification is enabled and email is not set . √ receives the app name and user in the adapter . √ should redirect with username encoded on success page . √ should programmatically reset password on ajax request There were open connections to the server left after the test finished . √ sends verification email if email verification is enabled . √ should set the custom pages . √ succeeds sending a password reset username if appName, publicServerURL, and email adapter are provided There were open connections to the server left after the test finished . √ when you click the link in the email it sets emailVerified to true and redirects you . √ should programmatically reset password . √ succeeds sending a password reset email if appName, publicServerURL, and email adapter are provided There were open connections to the server left after the test finished . √ does not send verification email if email verification is disabled . √ fails if you set a publicServerURL, have an appName, but no emailAdapter and send a password reset email . SchemaController √ refuses to add CLP when incorrectly sending a string to protectedFields object value instead of an array . √ refuses to delete fields that dont exist . √ refuses to explicitly create the default fields for custom classes . √ refuses to delete fields from invalid class names . √ refuses to delete fields from nonexistant classes . √ refuses to add fields with invalid names . √ can check if a class exists . √ yields a proper schema mismatch error bis (#2661) . √ refuses to add fields with uncreatable relation target class . √ refuses to add CLP with incorrect find . √ can merge deletions . √ refuses to add fields with uncreatable pointer target class . √ refuses to add fields with unknown types . √ refuses to explicitly create the default fields for non-custom classes . √ ignore default field when merge with system class . √ can validate one object . √ rejects inconsistent types . √ can delete pointer fields and resave as string . √ refuses to add fields with invalid pointer types . √ class-level permissions test user . √ creates non-custom classes which include relation field . √ can delete string fields and resave as number field . √ refuses to add fields with invalid types . √ can merge schemas . √ creates the default fields for non-custom classes . √ can delete relation field when related _Join collection not exist . √ updates when new fields are added . √ refuses to delete the default fields . √ will create classes . √ drops related collection when deleting relation field . √ refuses to add fields with invalid pointer target . √ refuses to delete invalid fields . √ class-level permissions test get . √ refuses to add fields with invalid relation target . √ should not throw on null field types . √ can add classes without needing an object . √ ensureFields should throw when schema is not set . √ can validate two objects in a row . √ refuses to create two geopoints . √ class-level permissions test find . √ class-level permissions test count . √ yields a proper schema mismatch error ter (#2661) . √ refuses to add fields with invalid Relation type . √ can update classes without needing an object . √ creates non-custom classes which include pointer field . √ can validate Relation object . √ can validate one object with dot notation . √ properly handles volatile _Schemas . √ will fail to create a class if that class was already created by an object . √ refuses to create classes with invalid names . √ can update class level permission . √ will resolve class creation races appropriately . √ yields a proper schema mismatch error (#2661) . Top level suite √ cannot have a custom field name beginning with underscore *** . schemas √ should throw if permission is number . √ should aceept class-level permission with userid of any length . √ should reject creating class schema with field with invalid key . √ requires the master key to delete schemas . √ gives correct response when deleting a schema with CLPs (regression test #1919) There were open connections to the server left after the test finished . √ regression test for #2246 . √ try to set a relation field with a default value . √ will not delete any fields if the additions are invalid . √ should not be able to add a field . √ ensure refresh cache after creating a class . √ refuses to add two geopoints . √ should allow set ACL for custom userid . √ rejects class name mis-matches in put There were open connections to the server left after the test finished . √ regression test for #1991 . √ should validate required fields . √ should throw with invalid * (spaces after) . √ should fail setting schema permissions with invalid key . √ lets you add fields with options . √ fails when deleting collections with invalid class names . √ responds with all fields when getting incomplete schema . √ lets you delete multiple fields and check schema . √ lets you specify class name in both places . √ should be able to add a field . √ should allow set class-level permission for custom userid of any length and chars . √ requires the master key to modify schemas . √ ensure refresh cache after deleting a class . √ refuses to add a geopoint to a class that already has one . √ validate CLP 5 . √ deletes collections including join tables . √ sends an error if you use no class name . Nested documents √ addField permission not required for modifying a nested property . √ addField permission not required for adding a nested property There were open connections to the server left after the test finished . √ validate CLP 4 . √ lets you delete multiple fields and add fields . √ responds with a list of schemas after creating objects . √ deletes schema when actual collection exists . √ refuses to put to existing fields with different type, even if it would not be a change . √ should be rejected if CLP pointerFields is not an array . √ can add field as master (issue #1257) . √ does not fail when deleting nonexistant collections . √ refuses to delete non-existent fields . √ should be rejected if CLP operation is not an object . √ can query with include and CLP (issue #2005) . √ lets you add fields . √ deletes schema when actual collection does not exist . √ validate CLP 1 . √ asks for the master key if you use the rest key . √ should throw if permission is empty string . √ should reject creating invalid field name . √ responds with all fields and options when you create a class with field options . √ creates _User schema when server starts . √ refuses to delete non-empty collection . √ refuses to add fields to non-existent classes . √ should set/get schema permissions . √ try to set a relation field as a required field . √ should be rejected if CLP read/writeUserFields is not an array . √ lets you add fields to system schema . √ validated the data type of default values when adding new fields . √ validate CLP 3 . √ requires the master key to get all schemas . √ should be rejected if CLP protectedFields is not an object . √ validate CLP 2 . √ requires the master key to get one schema . √ responds with all fields when you create a class . √ should validate required fields and set default values after before save trigger . √ unset field in beforeSave should not stop object creation . √ regression test for #5177 . √ sends an error if you use mismatching class names . √ try to update schemas with a relation field with options . √ should throw with invalid userId (invalid char) . √ allows you to delete and add a geopoint in the same request . √ can login when addFields is false (issue #1355) . √ sends an error if you try to create the same class twice . √ regression test for #4409 (indexes override the clp) . √ requires the master key to create a schema . √ validated the data type of default values when creating a new class . √ put with no modifications returns all fields . √ should throw with invalid * (spaces before) . √ treats class names case sensitively . √ responds with a single schema . index management √ cannot delete index that does not exist *. √ can create index on default field . √ lets you delete multiple indexes **. √ cannot create compound index if field does not exist . √ empty index returns nothing . √ lets you add and delete indexes . √ lets you delete indexes . √ lets you add multiple indexes . √ cannot update index that exist . √ allows add index when you create a class . √ cannot create index if field does not exist *. √ lets you add indexes . rest query √ query internal field . √ query existent class when disabled client class creation . √ query with wrongly encoded parameter *. √ query protected field with matchesQuery . √ query non-existent class when disabled client class creation . √ query protected field . √ query with limit = 0 . √ basic query *. √ makes sure null pointers are handed correctly #2189 . √ query with limit = 0 and count = 1 *. √ query with limit . Schema Performance √ test schema update class warn: DeprecationWarning: The Parse Server option 'allowClientClassCreation' default will change to 'false' in a future version. warn: DeprecationWarning: The Parse Server option 'allowExpiredAuthDataToken' default will change to 'false' in a future version. . √ does reload with schemaCacheTtl . √ test new object . √ test new object multiple fields . √ test delete object . √ test update existing fields . √ query relation without schema . √ test query include . √ test add multiple fields to existing object . √ test user *. √ test add new field to existing object . √ cannot set invalid databaseOptions . RestQuery.each √ test afterSave should not affect save response . √ test afterSave response object is return . √ should work with query on relations . √ should run each . Verify User Password √ fails to verify password when email is not provided with json payload REST API . √ succeed in verifying password when email and password matches hash with json payload REST API . √ fails to verify password when password is not provided with json payload REST API . √ fails to verify password when typeof password does not equal string REST API . √ fails to verify password when typeof username does not equal string REST API . √ fails to verify password when typeof email does not equal string REST API . √ fails to verify password when email cannot be found REST API . √ fails to verify password when username is not provided with json payload REST API . √ fails to verify password when username cannot be found REST API . √ fails to verify password when username is not provided in query string REST API . √ fails to verify password when email is not provided in query string REST API . √ fails to verify password when email matches but password does not match hash with json payload REST API . √ succeed to verify password when username and password provided in query string REST API . √ fails to verify password when masterKey has locked out user . √ succeed to verify password with username when user1 has username === user2 email REST API . √ succeed to verify password when email and password provided in query string REST API . √ succeed in verifying password when username and password matches hash with json payload REST API . √ verify password lock account if failed verify password attempts are above threshold . √ fails to verify password when preventLoginWithUnverifiedEmail is set to true REST API . √ fails to verify password when username matches but password does not match hash with json payload REST API . √ succeed in verifying password when username and email are provided and password matches hash with json payload REST API Failures: 1) Server Url Checks does not have unhandled promise rejection in the case of load error Message: Error: spawn UNKNOWN Stack: error properties: Object({ errno: -4094, code: 'UNKNOWN', syscall: 'spawn' }) Error: spawn UNKNOWN at ChildProcess.spawn (node:internal/child_process:420:11) at ChildProcess.spawn (D:\Work\personal\parse\parse-server\node_modules\process-on-spawn\index.js:74:13) at spawn (node:child_process:733:9) at UserContext. (D:\Work\personal\parse\parse-server\spec\ParseServer.spec.js:92:32) at at Object.onceWrapper (node:events:627:28) at Server.emit (node:events:513:28) at emitListeningNT (node:net:1497:10) at processTicksAndRejections (node:internal/process/task_queues:82:21) 2) Pages Router pages custom endpoint email verification works with custom endpoint Message: Expected 'D:\Work\personal\parse\parse-server\public\email_verification_success.html' to match /\/email_verification_success.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\email_verification_success.html' to match /\/email_verification_success.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:1202:26) at at processTicksAndRejections (node:internal/process/task_queues:96:5) 3) Pages Router pages custom endpoint password reset works with custom endpoint Message: Expected 'D:\Work\personal\parse\parse-server\public\password_reset.html' to match /\/password_reset.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\password_reset.html' to match /\/password_reset.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:1160:39) at at processTicksAndRejections (node:internal/process/task_queues:96:5) Message: Expected 'D:\Work\personal\parse\parse-server\public\password_reset_success.html' to contain '/password_reset_success.html'. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\password_reset_success.html' to contain '/password_reset_success.html'. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:1176:53) at at processTicksAndRejections (node:internal/process/task_queues:96:5) 4) Pages Router pages localization returns file for language match Message: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de\/password_reset_link_invalid.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de\/password_reset_link_invalid.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:438:53) 5) Pages Router pages localization returns file for locale match Message: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de-AT\/password_reset_link_invalid.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de-AT\/password_reset_link_invalid.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:423:53) 6) Pages Router pages end-to-end tests localizes end-to-end for verify email: success Message: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_success.html' to match /\/de-AT\/email_verification_success.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_success.html' to match /\/de-AT\/email_verification_success.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:764:26) at at processTicksAndRejections (node:internal/process/task_queues:96:5) 7) Pages Router pages end-to-end tests localizes end-to-end for password reset: success Message: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset.html' to match /\/de-AT\/password_reset.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset.html' to match /\/de-AT\/password_reset.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:687:39) at at processTicksAndRejections (node:internal/process/task_queues:96:5) Message: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_success.html' to contain '/de-AT/password_reset_success.html'. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_success.html' to contain '/de-AT/password_reset_success.html'. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:706:53) at at processTicksAndRejections (node:internal/process/task_queues:96:5) 8) Pages Router pages end-to-end tests localizes end-to-end for verify email: invalid verification link - link send fail Message: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_link_expired.html' to match /\/de-AT\/email_verification_link_expired.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_link_expired.html' to match /\/de-AT\/email_verification_link_expired.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:854:45) at at processTicksAndRejections (node:internal/process/task_queues:96:5) 9) Pages Router pages end-to-end tests localizes end-to-end for password reset: invalid link Message: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de-AT\/password_reset_link_invalid.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de-AT\/password_reset_link_invalid.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:736:26) at at processTicksAndRejections (node:internal/process/task_queues:96:5) 10) Pages Router pages end-to-end tests localizes end-to-end for verify email: invalid verification link - link send success Message: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_link_expired.html' to match /\/de-AT\/email_verification_link_expired.html/. Stack: Error: Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_link_expired.html' to match /\/de-AT\/email_verification_link_expired.html/. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PagesRouter.spec.js:801:45) at at processTicksAndRejections (node:internal/process/task_queues:96:5) 11) WinstonLogger should enable JSON logs Message: Expected '{"key":"value","level":"info","message":"hi"} ' to equal '{"key":"value","level":"info","message":"hi"} '. Stack: Error: Expected '{"key":"value","level":"info","message":"hi"} ' to equal '{"key":"value","level":"info","message":"hi"} '. at at D:\Work\personal\parse\parse-server\spec\Logger.spec.js:86:26 at at processTicksAndRejections (node:internal/process/task_queues:96:5) 12) WinstonLogger console should not be json Message: Expected 'info: hi {"key":"value"} ' to equal 'info: hi {"key":"value"} '. Stack: Error: Expected 'info: hi {"key":"value"} ' to equal 'info: hi {"key":"value"} '. at at D:\Work\personal\parse\parse-server\spec\Logger.spec.js:66:26 at at processTicksAndRejections (node:internal/process/task_queues:96:5) 13) execution should start Parse Server with GraphQL and Playground Message: Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT Stack: error properties: Object({ errno: -4058, code: 'ENOENT', syscall: 'spawn D:\Work\personal\parse\parse-server\bin\parse-server', path: 'D:\Work\personal\parse\parse-server\bin\parse-server', spawnargs: [ '--appId', 'test', '--masterKey', 'test', '--databaseURI', 'postgres://postgres:password@localhost:5432/parse_server_postgres_adapter_test_database', '--port', '1341', '--mountGraphQL', '--mountPlayground' ] }) Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:285:19) at onErrorNT (node:internal/child_process:485:16) at processTicksAndRejections (node:internal/process/task_queues:83:21) Message: Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) Stack: Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) at at listOnTimeout (node:internal/timers:559:17) at processTimers (node:internal/timers:502:7) 14) execution should start Parse Server with GraphQL Message: Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT Stack: error properties: Object({ errno: -4058, code: 'ENOENT', syscall: 'spawn D:\Work\personal\parse\parse-server\bin\parse-server', path: 'D:\Work\personal\parse\parse-server\bin\parse-server', spawnargs: [ '--appId', 'test', '--masterKey', 'test', '--databaseURI', 'postgres://postgres:password@localhost:5432/parse_server_postgres_adapter_test_database', '--port', '1340', '--mountGraphQL' ] }) Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:285:19) at onErrorNT (node:internal/child_process:485:16) at processTicksAndRejections (node:internal/process/task_queues:83:21) Message: Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) Stack: Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) at at listOnTimeout (node:internal/timers:559:17) at processTimers (node:internal/timers:502:7) 15) execution should start Parse Server Message: Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT Stack: error properties: Object({ errno: -4058, code: 'ENOENT', syscall: 'spawn D:\Work\personal\parse\parse-server\bin\parse-server', path: 'D:\Work\personal\parse\parse-server\bin\parse-server', spawnargs: [ '--appId', 'test', '--masterKey', 'test', '--databaseURI', 'postgres://postgres:password@localhost:5432/parse_server_postgres_adapter_test_database', '--port', '1339' ] }) Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT at Process.ChildProcess._handle.onexit (node:internal/child_process:285:19) at onErrorNT (node:internal/child_process:485:16) at processTicksAndRejections (node:internal/process/task_queues:83:21) Message: Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) Stack: Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) at at listOnTimeout (node:internal/timers:559:17) at processTimers (node:internal/timers:502:7) 16) PushController formatPushTime should format as ISO string Message: Expected '2017-09-06T11:44:01.048' to be '2017-09-06T11.5:14:01.048', 'No timezone'. Stack: Error: Expected '2017-09-06T11:44:01.048' to be '2017-09-06T11.5:14:01.048', 'No timezone'. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PushController.spec.js:1163:9) at at processImmediate (node:internal/timers:466:21) 17) PushController Scheduling pushes in local time should preserve the push time Message: Expected '2017-09-06T11:44:01.048' to be '2017-09-06T11.5:14:01.048'. Stack: Error: Expected '2017-09-06T11:44:01.048' to be '2017-09-06T11.5:14:01.048'. at at UserContext. (D:\Work\personal\parse\parse-server\spec\PushController.spec.js:1206:42) at at processTicksAndRejections (node:internal/process/task_queues:96:5) 18) Cloud Code can load cloud code as a module Message: Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' Stack: error properties: Object({ code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' }) Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) at async UserContext. (D:\Work\personal\parse\parse-server\spec\CloudCode.spec.js:45:5) 19) Cloud Code can load absolute cloud code file Message: Unhandled promise rejection: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' Stack: error properties: Object({ code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' }) Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) 20) Cloud Code can load relative cloud code file Message: Unhandled promise rejection: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' Stack: error properties: Object({ code: 'ERR_UNSUPPORTED_ESM_URL_SCHEME' }) Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' at new NodeError (node:internal/errors:387:5) at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1017:11) at defaultResolve (node:internal/modules/esm/resolve:1097:3) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:841:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at importModuleDynamically (node:internal/modules/cjs/loader:1104:29) at importModuleDynamicallyWrapper (node:internal/vm/module:438:21) at importModuleDynamically (node:vm:389:46) at importModuleDynamicallyCallback (node:internal/process/esm_loader:35:14) at ParseServer.start (D:\Work\personal\parse\parse-server\lib\ParseServer.js:14:2563) at at processTicksAndRejections (node:internal/process/task_queues:96:5) at async ParseServer.startApp (D:\Work\personal\parse\parse-server\lib\ParseServer.js:29:111) at async reconfigureServer (D:\Work\personal\parse\parse-server\spec\helper.js:166:23) 21) verbose logs verbose logs should interpolate stdout Message: Expected 'verbose: testing verbose logs with {"hello":"world"} ' to be 'verbose: testing verbose logs with {"hello":"world"} '. Stack: Error: Expected 'verbose: testing verbose logs with {"hello":"world"} ' to be 'verbose: testing verbose logs with {"hello":"world"} '. at at UserContext. (D:\Work\personal\parse\parse-server\spec\WinstonLoggerAdapter.spec.js:276:22) at at processTicksAndRejections (node:internal/process/task_queues:96:5) Pending: 1) google auth adapter (using client id as string) should throw error with invalid jwt client_id Temporarily disabled with xit 2) google auth adapter should throw error with invalid user id Temporarily disabled with xit 3) FilesController should pass databaseOptions to GridFSBucketAdapter Temporarily disabled with xit 4) GridFSBucket should connect to mongo with the supported database options No reason given 5) GridFSBucket should rotate key of all unencrypted GridFS files to encrypted files No reason given 6) GridFSBucket properly overrides files No reason given 7) GridFSBucket should rotate key of all old encrypted GridFS files to encrypted files No reason given 8) GridFSBucket handleShutdown, close connection No reason given 9) GridFSBucket properly deletes a file from GridFS No reason given 10) GridFSBucket should save an encrypted file that can only be decrypted by a GridFS adapter with the encryptionKey No reason given 11) GridFSBucket should return fileNames of those it can't encrypt with the new key No reason given 12) GridFSBucket should save metadata No reason given 13) GridFSBucket should rotate key of all old encrypted GridFS files to unencrypted files No reason given 14) GridFSBucket should only encrypt specified fileNames No reason given 15) GridFSBucket should handle getMetadata error No reason given 16) GridFSBucket should save metadata with file No reason given 17) GridFSBucket properly fetches a large file from GridFS No reason given 18) Parse.GeoPoint testing updating geo point exception two fields Temporarily disabled with xit 19) ParseLiveQuery can handle live query with fields - enable upon JS SDK support Temporarily disabled with xit 20) Cloud Code Logger should log a changed beforeSave indicating a change needs more work..... 21) DefinedSchemas Indexes should keep protected indexes Temporarily disabled with xit 22) ParseLiveQueryServer initialization can be initialized through ParseServer with liveQueryServerOptions No reason given 23) ParseLiveQueryServer initialization can be initialized through ParseServer without liveQueryServerOptions No reason given 24) Security Advisory GHSA-8w3j-g983-8jh5 should ignore authData field Temporarily disabled with xit 25) Security Advisory GHSA-8w3j-g983-8jh5 should validate credentials first and check if account already linked afterwards () Temporarily disabled with xit 26) Installations update ios device token with duplicate token different app Temporarily disabled with xit 27) Installations creating multiple devices with same device token works Temporarily disabled with xit 28) ParseGraphQLServer Auto API Schema Objects Queries Get read preferences should read from primary by default No reason given 29) ParseGraphQLServer Auto API Schema Objects Queries Get read preferences should support readPreference argument No reason given 30) ParseGraphQLServer Auto API Schema Objects Queries Get read preferences should support includeReadPreference argument No reason given 31) ParseGraphQLServer Auto API Schema Objects Queries Get should return child objects in array fields Temporarily disabled with xit 32) ParseGraphQLServer Auto API Schema Objects Queries Find read preferences should support includeReadPreference argument No reason given 33) ParseGraphQLServer Auto API Schema Objects Queries Find read preferences should support readPreference argument No reason given 34) ParseGraphQLServer Auto API Schema Objects Queries Find read preferences should read from primary by default No reason given 35) ParseGraphQLServer Auto API Schema Objects Queries Find read preferences should support subqueryReadPreference argument No reason given 36) ParseGraphQLServer Auto API Schema Objects Queries Find should order by multiple fields on a relation field Temporarily disabled with xit 37) ParseGraphQLServer Auto API Schema Data Types should support relation and nested relation on update Temporarily disabled with xit 38) ParseGraphQLServer Auto API Schema Data Types should support deep nested creation Temporarily disabled with xit 39) ParseGraphQLServer Auto API Schema Data Types should support nested relation on create with filter Temporarily disabled with xit 40) ParseGraphQLServer Auto API Schema Data Types should support relation and nested relation on create Temporarily disabled with xit 41) ParseGraphQLServer Auto API Schema Data Types should support relation on query Temporarily disabled with xit 42) ParseGraphQLServer Auto API Schema Data Types should support bytes values Temporarily disabled with xit 43) Server Url Checks handleShutdown, close connection Temporarily disabled with xit 44) Parse.File testing Gridstore Range supports bytes range if end is greater than size No reason given 45) Parse.File testing Gridstore Range supports getting first n bytes No reason given 46) Parse.File testing Gridstore Range supports bytes range with 0 length No reason given 47) Parse.File testing Gridstore Range supports large range requests No reason given 48) Parse.File testing Gridstore Range supports bytes range if start and end undefined No reason given 49) Parse.File testing Gridstore Range fails to stream unknown file No reason given 50) Parse.File testing Gridstore Range supports getting one byte No reason given 51) Parse.File testing Gridstore Range supports getting last n bytes No reason given 52) Parse.File testing Gridstore Range supports bytes range if end is greater than size No reason given 53) Parse.File testing Gridstore Range supports range requests No reason given 54) Parse.File testing Gridstore Range supports small range requests No reason given 55) Parse.File testing Gridstore Range supports bytes range if end is undefined No reason given 56) Parse.File testing Gridstore Range supports bytes range if end greater than start No reason given 57) Parse.File testing Gridstore Range supports bytes range if start and end undefined No reason given 58) Parse.File testing Gridstore Range supports bytes range out of range No reason given 59) facebook limited auth adapter should throw error with invalid user id Temporarily disabled with xit 60) facebook limited auth adapter (using client id as array) should throw error with invalid jwt clientId Temporarily disabled with xit 61) facebook limited auth adapter (using client id as array) should throw error with missing id_token Temporarily disabled with xit 62) facebook limited auth adapter (using client id as array) should throw error with with invalid jwt issuer Temporarily disabled with xit 63) facebook limited auth adapter (using client id as string) should throw error with missing id_token Temporarily disabled with xit 64) facebook limited auth adapter (using client id as string) should throw error with invalid jwt clientId Temporarily disabled with xit 65) InstallationsRouter query installations with count = 1 Temporarily disabled with xit 66) InstallationsRouter query installations with limit = 0 and count = 1 Temporarily disabled with xit 67) miscellaneous pointer reassign on nested fields is working properly (#7391) Temporarily disabled with xit 68) parseObjectToMongoObjectForCreate a delete op Temporarily disabled with xit 69) Parse.User testing should not send a verification email if the user signed up using oauth this test fails. See: https://github.com/parse-community/parse-server/issues/5097 70) Parse.User testing should cleanup null authData keys (regression test for #935) Temporarily disabled with xit 71) Parse.User testing issue #4897 should be able to login with a legacy user (no ACL) Temporarily disabled with xit 72) Parse.User testing should not serve null authData keys Temporarily disabled with xit 73) Parse.User testing should let legacy users without ACL login Temporarily disabled with xit 74) RedisCacheAdapter/KeyPromiseQueue it should count per key chained operations correctly No reason given 75) RedisCacheAdapter/KeyPromiseQueue it should clear completed operations from queue No reason given 76) Uniqueness can do compound uniqueness Temporarily disabled with xit 77) MongoStorageAdapter auto-escapes symbols in auth information No reason given 78) MongoStorageAdapter handles object and subdocument No reason given 79) MongoStorageAdapter stores objectId in _id No reason given 80) MongoStorageAdapter should delete field without index No reason given 81) MongoStorageAdapter find succeeds when query is within maxTimeMS No reason given 82) MongoStorageAdapter handleShutdown, close connection No reason given 83) MongoStorageAdapter getClass if exists No reason given 84) MongoStorageAdapter handles nested dates No reason given 85) MongoStorageAdapter handles nested dates in array No reason given 86) MongoStorageAdapter handles creating an array, object, date No reason given 87) MongoStorageAdapter getClass if not exists No reason given 88) MongoStorageAdapter should delete field with index No reason given 89) MongoStorageAdapter should use index for caseInsensitive query Temporarily disabled with xit 90) MongoStorageAdapter find fails when query exceeds maxTimeMS No reason given 91) MongoStorageAdapter doesn't double escape already URI-encoded information No reason given 92) MongoStorageAdapter stores pointers with a _p_ prefix No reason given 93) MongoStorageAdapter should use index for caseInsensitive query Temporarily disabled with xit 94) MongoStorageAdapter preserves replica sets No reason given 95) MongoStorageAdapter handles updating a single object with array, object date No reason given 96) rate limit with RedisCache does work with cache No reason given 97) legacy _acl should have _acl when locking down (regression for #2465) No reason given 98) apple signin auth adapter (using client id as array) should throw error with invalid jwt clientId Temporarily disabled with xit 99) apple signin auth adapter (using client id as string) should throw error with invalid jwt clientId Temporarily disabled with xit 100) apple signin auth adapter should throw error with invalid user id Temporarily disabled with xit 101) apple signin auth adapter (using client id as array) should throw error with with invalid jwt issuer Temporarily disabled with xit 102) Parse.Query testing gracefully handles invalid explain values Temporarily disabled with xit 103) Parse.Query testing querying for null value Temporarily disabled with xit 104) Parse.Query testing supports valid explain values Temporarily disabled with xit 105) Parse.Query testing can use explain on User class Temporarily disabled with xit 106) Parse.Query testing todo: exclude keys with select key (sdk query get) Temporarily disabled with xit 107) Cloud Code should fully delete objects when using `unset` and `set` with beforeSave (regression test for #1840) Temporarily disabled with xit 108) Cloud Code test afterSave ignoring promise, object not found Temporarily disabled with xit 109) Parse.Query hint query aggregate with hint string Temporarily disabled with xit 110) Parse.Query hint query aggregate with hint (rest) Temporarily disabled with xit 111) Parse.Query hint query aggregate with hint (rest) Temporarily disabled with xit 112) Parse.Query hint query find with hint (rest) Temporarily disabled with xit 113) Parse.Query hint query aggregate with hint string Temporarily disabled with xit 114) Parse.Query hint query aggregate with hint (rest) Temporarily disabled with xit 115) Parse.Query hint query find with hint object Temporarily disabled with xit 116) Parse.Query hint query aggregate with hint object Temporarily disabled with xit 117) Parse.Query hint query aggregate with hint object Temporarily disabled with xit 118) Parse.Query hint query aggregate with hint (rest) Temporarily disabled with xit 119) Parse.Query hint query aggregate with hint string Temporarily disabled with xit 120) Parse.Query hint query find with hint string Temporarily disabled with xit 121) Parse.Query hint query find with hint object Temporarily disabled with xit 122) Parse.Query hint query find with hint (rest) Temporarily disabled with xit 123) Parse.Query hint query find with hint string Temporarily disabled with xit 124) Parse.Query hint query aggregate with hint string Temporarily disabled with xit 125) Parse.Query hint query aggregate with hint object Temporarily disabled with xit 126) Parse.Query hint query aggregate with hint object Temporarily disabled with xit 127) Read preference option should change read preference for `aggregate` using `beforeFind` No reason given 128) Read preference option should find subqueries in same replica of readPreference by default No reason given 129) Read preference option should change read preference for count Temporarily disabled with xit 130) Read preference option should change read preference to NEAREST No reason given 131) Read preference option should change read preference for `aggregate` using query option No reason given 132) Read preference option should change includes read preference No reason given 133) Read preference option should change read preference for `find` using query option No reason given 134) Read preference option should change read preference for FIND using API through beforeFind trigger No reason given 135) Read preference option should change subqueries read preference when using doesNotMatchQuery No reason given 136) Read preference option should change read preference for GET using API through the beforeFind overriding API option No reason given 137) Read preference option should change subqueries read preference when using matchesKeyInQuery and doesNotMatchKeyInQuery No reason given 138) Read preference option should change includes read preference when getting through API No reason given 139) Read preference option should change read preference for FIND using API through the beforeFind overriding API option No reason given 140) Read preference option should change subqueries read preference when using matchesQuery No reason given 141) Read preference option should change subqueries read preference when using matchesKeyInQuery and doesNotMatchKeyInQuery to find through API No reason given 142) Read preference option should change read preference for FIND directly from API No reason given 143) Read preference option should change includes read preference when finding through API No reason given 144) Read preference option should change read preference for GET directly from API No reason given 145) Read preference option should change read preference for GET using API No reason given 146) Read preference option should preserve the read preference set (#4831) Temporarily disabled with xit 147) Read preference option should change read preference in the beforeFind trigger No reason given 148) Read preference option should check read preference as case insensitive No reason given 149) Read preference option should find in primary by default No reason given 150) Read preference option should change read preference to SECONDARY_PREFERRED No reason given 151) Read preference option should find includes in same replica of readPreference by default No reason given 152) Read preference option should change read preference in the beforeFind trigger even changing query No reason given 153) Read preference option should change read preference in the beforeFind trigger even returning query No reason given 154) Read preference option should change read preference for GET No reason given 155) Read preference option should change read preference in the beforeFind trigger even returning promise No reason given 156) Read preference option should change read preference to PRIMARY_PREFERRED No reason given 157) AudiencesRouter should support legacy parse.com audience fields Temporarily disabled with xit 158) AudiencesRouter query installations with count = 1 Temporarily disabled with xit 159) AudiencesRouter query installations with limit = 0 and count = 1 Temporarily disabled with xit 160) ProtectedFields using pointer-fields and queries with keys projection todo: should be enforced regardless of pointer-field being excluded Temporarily disabled with xit 161) RedisCacheAdapter should get/set/clear No reason given 162) RedisCacheAdapter should find un-expired records No reason given 163) RedisCacheAdapter handleShutdown, close connection No reason given 164) RedisCacheAdapter should not expire when ttl=Infinity No reason given 165) RedisCacheAdapter should expire after ttl No reason given 166) RedisCacheAdapter should fallback to default ttl No reason given 167) RedisCacheAdapter should not store value for ttl=0 No reason given 168) Pointer Permissions Granular on single-pointer fields addField action should have no effect when creating object (and allowed by explicit userid permission) Temporarily disabled with xit 169) Pointer Permissions Granular on single-pointer fields addField action should be denied when creating object (and no explicit permission) Temporarily disabled with xit 170) Parse.Query Aggregate testing group and multiply transform Temporarily disabled with xit 171) Parse.Query Aggregate testing project and multiply transform Temporarily disabled with xit 172) Parse.Query Aggregate testing aggregate geoNear with near GeoJSON point Temporarily disabled with xit 173) Parse.Query Aggregate testing match pointer with operator query Temporarily disabled with xit 174) Parse.Query Aggregate testing match exists query Temporarily disabled with xit 175) Parse.Query Aggregate testing can group by any date field (it does not work if you have dirty data) Temporarily disabled with xit 176) Parse.Query Aggregate testing aggregate geoNear with location query Temporarily disabled with xit 177) Parse.Query Aggregate testing project updatedAt only transform Temporarily disabled with xit 178) Parse.Query Aggregate testing aggregate allow multiple of same stage Temporarily disabled with xit 179) Parse.Query Aggregate testing project without objectId transform Temporarily disabled with xit 180) Parse.Query Aggregate testing aggregate geoNear with near legacy coordinate pair Temporarily disabled with xit 181) Parse.Query Aggregate testing match null values Temporarily disabled with xit 182) Parse.Object testing fetchAllIfNeeded backbone-style callbacks Temporarily disabled with xit 183) Parse.Object testing fetchAll User attributes get merged Temporarily disabled with xit 184) Parse.Object testing fetchAll backbone-style callbacks Temporarily disabled with xit 185) Parse.Object testing beforeSave doesn't make object dirty with existing field Temporarily disabled with xit 186) [mongodb] Parse.Query Full Text Search testing fullTextSearch: $caseSensitive No reason given 187) [mongodb] Parse.Query Full Text Search testing fullTextSearch: does not create text index if compound index exist No reason given 188) [mongodb] Parse.Query Full Text Search testing fullTextSearch: does not create text index if schema compound index exist No reason given 189) [mongodb] Parse.Query Full Text Search testing fullTextSearch: $diacriticSensitive - false No reason given 190) revocable sessions should upgrade legacy session token No reason given 191) revocable sessions should be able to become with revocable session token No reason given 192) revocable sessions should not upgrade bad legacy session token No reason given 193) revocable sessions should not crash without session token #2720 No reason given 194) Parse.Polygon testing polygon coordinates reverse input No reason given 195) Parse.Polygon testing support 2d and 2dsphere No reason given 196) Parse.Polygon testing polygon loop is not valid No reason given 197) schemas index management get compound indexes on startup Temporarily disabled with xit 198) schemas index management cannot update to duplicate value on unique index Temporarily disabled with xit 199) schemas index management get indexes on startup Temporarily disabled with xit 200) schemas index management lets you add index with with pointer like structure Temporarily disabled with xit 201) rest query query with include Temporarily disabled with xit 202) rest query query for user w/ legacy credentials with masterKey has them stripped from results Temporarily disabled with xit 203) rest query query for user w/ legacy credentials without masterKey has them stripped from results Temporarily disabled with xit 204) Schema Performance test saveAll / destroyAll Temporarily disabled with xit 3084 specs, 21 failures, 204 pending specs Finished in 859.52 seconds Randomized with seed 31692 (jasmine --random=true --seed=31692) ************************************************** * Failures * ************************************************** 1) Server Url Checks does not have unhandled promise rejection in the case of load error - Error: spawn UNKNOWN 2) Pages Router pages custom endpoint email verification works with custom endpoint - Expected 'D:\Work\personal\parse\parse-server\public\email_verification_success.html' to match /\/email_verification_success.html/. 3) Pages Router pages custom endpoint password reset works with custom endpoint - Expected 'D:\Work\personal\parse\parse-server\public\password_reset.html' to match /\/password_reset.html/. - Expected 'D:\Work\personal\parse\parse-server\public\password_reset_success.html' to contain '/password_reset_success.html'. 4) Pages Router pages localization returns file for language match - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de\/password_reset_link_invalid.html/. 5) Pages Router pages localization returns file for locale match - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de-AT\/password_reset_link_invalid.html/. 6) Pages Router pages end-to-end tests localizes end-to-end for verify email: success - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_success.html' to match /\/de-AT\/email_verification_success.html/. 7) Pages Router pages end-to-end tests localizes end-to-end for password reset: success - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset.html' to match /\/de-AT\/password_reset.html/. - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_success.html' to contain '/de-AT/password_reset_success.html'. 8) Pages Router pages end-to-end tests localizes end-to-end for verify email: invalid verification link - link send fail - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_link_expired.html' to match /\/de-AT\/email_verification_link_expired.html/. 9) Pages Router pages end-to-end tests localizes end-to-end for password reset: invalid link - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\password_reset_link_invalid.html' to match /\/de-AT\/password_reset_link_invalid.html/. 10) Pages Router pages end-to-end tests localizes end-to-end for verify email: invalid verification link - link send success - Expected 'D:\Work\personal\parse\parse-server\public\de-AT\email_verification_link_expired.html' to match /\/de-AT\/email_verification_link_expired.html/. 11) WinstonLogger should enable JSON logs - Expected '{"key":"value","level":"info","message":"hi"} ' to equal '{"key":"value","level":"info","message":"hi"} '. 12) WinstonLogger console should not be json - Expected 'info: hi {"key":"value"} ' to equal 'info: hi {"key":"value"} '. 13) execution should start Parse Server with GraphQL and Playground - Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT - Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) 14) execution should start Parse Server with GraphQL - Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT - Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) 15) execution should start Parse Server - Uncaught exception: Error: spawn D:\Work\personal\parse\parse-server\bin\parse-server ENOENT - Error: Timeout - Async function did not complete within 10000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL) 16) PushController formatPushTime should format as ISO string - Expected '2017-09-06T11:44:01.048' to be '2017-09-06T11.5:14:01.048', 'No timezone'. 17) PushController Scheduling pushes in local time should preserve the push time - Expected '2017-09-06T11:44:01.048' to be '2017-09-06T11.5:14:01.048'. 18) Cloud Code can load cloud code as a module - Error: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' 19) Cloud Code can load absolute cloud code file - Unhandled promise rejection: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' 20) Cloud Code can load relative cloud code file - Unhandled promise rejection: Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:' 21) verbose logs verbose logs should interpolate stdout - Expected 'verbose: testing verbose logs with {"hello":"world"} ' to be 'verbose: testing verbose logs with {"hello":"world"} '. ************************************************** * Pending * ************************************************** 1) google auth adapter (using client id as string) should throw error with invalid jwt client_id Temporarily disabled with xit 2) google auth adapter should throw error with invalid user id Temporarily disabled with xit 3) FilesController should pass databaseOptions to GridFSBucketAdapter Temporarily disabled with xit 4) GridFSBucket should connect to mongo with the supported database options No reason given 5) GridFSBucket should rotate key of all unencrypted GridFS files to encrypted files No reason given 6) GridFSBucket properly overrides files No reason given 7) GridFSBucket should rotate key of all old encrypted GridFS files to encrypted files No reason given 8) GridFSBucket handleShutdown, close connection No reason given 9) GridFSBucket properly deletes a file from GridFS No reason given 10) GridFSBucket should save an encrypted file that can only be decrypted by a GridFS adapter with the encryptionKey No reason given 11) GridFSBucket should return fileNames of those it can't encrypt with the new key No reason given 12) GridFSBucket should save metadata No reason given 13) GridFSBucket should rotate key of all old encrypted GridFS files to unencrypted files No reason given 14) GridFSBucket should only encrypt specified fileNames No reason given 15) GridFSBucket should handle getMetadata error No reason given 16) GridFSBucket should save metadata with file No reason given 17) GridFSBucket properly fetches a large file from GridFS No reason given 18) Parse.GeoPoint testing updating geo point exception two fields Temporarily disabled with xit 19) ParseLiveQuery can handle live query with fields - enable upon JS SDK support Temporarily disabled with xit 20) Cloud Code Logger should log a changed beforeSave indicating a change needs more work..... 21) DefinedSchemas Indexes should keep protected indexes Temporarily disabled with xit 22) ParseLiveQueryServer initialization can be initialized through ParseServer with liveQueryServerOptions No reason given 23) ParseLiveQueryServer initialization can be initialized through ParseServer without liveQueryServerOptions No reason given 24) Security Advisory GHSA-8w3j-g983-8jh5 should ignore authData field Temporarily disabled with xit 25) Security Advisory GHSA-8w3j-g983-8jh5 should validate credentials first and check if account already linked afterwards () Temporarily disabled with xit 26) Installations update ios device token with duplicate token different app Temporarily disabled with xit 27) Installations creating multiple devices with same device token works Temporarily disabled with xit 28) ParseGraphQLServer Auto API Schema Objects Queries Get read preferences should read from primary by default No reason given 29) ParseGraphQLServer Auto API Schema Objects Queries Get read preferences should support readPreference argument No reason given 30) ParseGraphQLServer Auto API Schema Objects Queries Get read preferences should support includeReadPreference argument No reason given 31) ParseGraphQLServer Auto API Schema Objects Queries Get should return child objects in array fields Temporarily disabled with xit 32) ParseGraphQLServer Auto API Schema Objects Queries Find read preferences should support includeReadPreference argument No reason given 33) ParseGraphQLServer Auto API Schema Objects Queries Find read preferences should support readPreference argument No reason given 34) ParseGraphQLServer Auto API Schema Objects Queries Find read preferences should read from primary by default No reason given 35) ParseGraphQLServer Auto API Schema Objects Queries Find read preferences should support subqueryReadPreference argument No reason given 36) ParseGraphQLServer Auto API Schema Objects Queries Find should order by multiple fields on a relation field Temporarily disabled with xit 37) ParseGraphQLServer Auto API Schema Data Types should support relation and nested relation on update Temporarily disabled with xit 38) ParseGraphQLServer Auto API Schema Data Types should support deep nested creation Temporarily disabled with xit 39) ParseGraphQLServer Auto API Schema Data Types should support nested relation on create with filter Temporarily disabled with xit 40) ParseGraphQLServer Auto API Schema Data Types should support relation and nested relation on create Temporarily disabled with xit 41) ParseGraphQLServer Auto API Schema Data Types should support relation on query Temporarily disabled with xit 42) ParseGraphQLServer Auto API Schema Data Types should support bytes values Temporarily disabled with xit 43) Server Url Checks handleShutdown, close connection Temporarily disabled with xit 44) Parse.File testing Gridstore Range supports bytes range if end is greater than size No reason given 45) Parse.File testing Gridstore Range supports getting first n bytes No reason given 46) Parse.File testing Gridstore Range supports bytes range with 0 length No reason given 47) Parse.File testing Gridstore Range supports large range requests No reason given 48) Parse.File testing Gridstore Range supports bytes range if start and end undefined No reason given 49) Parse.File testing Gridstore Range fails to stream unknown file No reason given 50) Parse.File testing Gridstore Range supports getting one byte No reason given 51) Parse.File testing Gridstore Range supports getting last n bytes No reason given 52) Parse.File testing Gridstore Range supports bytes range if end is greater than size No reason given 53) Parse.File testing Gridstore Range supports range requests No reason given 54) Parse.File testing Gridstore Range supports small range requests No reason given 55) Parse.File testing Gridstore Range supports bytes range if end is undefined No reason given 56) Parse.File testing Gridstore Range supports bytes range if end greater than start No reason given 57) Parse.File testing Gridstore Range supports bytes range if start and end undefined No reason given 58) Parse.File testing Gridstore Range supports bytes range out of range No reason given 59) facebook limited auth adapter should throw error with invalid user id Temporarily disabled with xit 60) facebook limited auth adapter (using client id as array) should throw error with invalid jwt clientId Temporarily disabled with xit 61) facebook limited auth adapter (using client id as array) should throw error with missing id_token Temporarily disabled with xit 62) facebook limited auth adapter (using client id as array) should throw error with with invalid jwt issuer Temporarily disabled with xit 63) facebook limited auth adapter (using client id as string) should throw error with missing id_token Temporarily disabled with xit 64) facebook limited auth adapter (using client id as string) should throw error with invalid jwt clientId Temporarily disabled with xit 65) InstallationsRouter query installations with count = 1 Temporarily disabled with xit 66) InstallationsRouter query installations with limit = 0 and count = 1 Temporarily disabled with xit 67) miscellaneous pointer reassign on nested fields is working properly (#7391) Temporarily disabled with xit 68) parseObjectToMongoObjectForCreate a delete op Temporarily disabled with xit 69) Parse.User testing should not send a verification email if the user signed up using oauth this test fails. See: https://github.com/parse-community/parse-server/issues/5097 70) Parse.User testing should cleanup null authData keys (regression test for #935) Temporarily disabled with xit 71) Parse.User testing issue #4897 should be able to login with a legacy user (no ACL) Temporarily disabled with xit 72) Parse.User testing should not serve null authData keys Temporarily disabled with xit 73) Parse.User testing should let legacy users without ACL login Temporarily disabled with xit 74) RedisCacheAdapter/KeyPromiseQueue it should count per key chained operations correctly No reason given 75) RedisCacheAdapter/KeyPromiseQueue it should clear completed operations from queue No reason given 76) Uniqueness can do compound uniqueness Temporarily disabled with xit 77) MongoStorageAdapter auto-escapes symbols in auth information No reason given 78) MongoStorageAdapter handles object and subdocument No reason given 79) MongoStorageAdapter stores objectId in _id No reason given 80) MongoStorageAdapter should delete field without index No reason given 81) MongoStorageAdapter find succeeds when query is within maxTimeMS No reason given 82) MongoStorageAdapter handleShutdown, close connection No reason given 83) MongoStorageAdapter getClass if exists No reason given 84) MongoStorageAdapter handles nested dates No reason given 85) MongoStorageAdapter handles nested dates in array No reason given 86) MongoStorageAdapter handles creating an array, object, date No reason given 87) MongoStorageAdapter getClass if not exists No reason given 88) MongoStorageAdapter should delete field with index No reason given 89) MongoStorageAdapter should use index for caseInsensitive query Temporarily disabled with xit 90) MongoStorageAdapter find fails when query exceeds maxTimeMS No reason given 91) MongoStorageAdapter doesn't double escape already URI-encoded information No reason given 92) MongoStorageAdapter stores pointers with a _p_ prefix No reason given 93) MongoStorageAdapter should use index for caseInsensitive query Temporarily disabled with xit 94) MongoStorageAdapter preserves replica sets No reason given 95) MongoStorageAdapter handles updating a single object with array, object date No reason given 96) rate limit with RedisCache does work with cache No reason given 97) legacy _acl should have _acl when locking down (regression for #2465) No reason given 98) apple signin auth adapter (using client id as array) should throw error with invalid jwt clientId Temporarily disabled with xit 99) apple signin auth adapter (using client id as string) should throw error with invalid jwt clientId Temporarily disabled with xit 100) apple signin auth adapter should throw error with invalid user id Temporarily disabled with xit 101) apple signin auth adapter (using client id as array) should throw error with with invalid jwt issuer Temporarily disabled with xit 102) Parse.Query testing gracefully handles invalid explain values Temporarily disabled with xit 103) Parse.Query testing querying for null value Temporarily disabled with xit 104) Parse.Query testing supports valid explain values Temporarily disabled with xit 105) Parse.Query testing can use explain on User class Temporarily disabled with xit 106) Parse.Query testing todo: exclude keys with select key (sdk query get) Temporarily disabled with xit 107) Cloud Code should fully delete objects when using `unset` and `set` with beforeSave (regression test for #1840) Temporarily disabled with xit 108) Cloud Code test afterSave ignoring promise, object not found Temporarily disabled with xit 109) Parse.Query hint query aggregate with hint string Temporarily disabled with xit 110) Parse.Query hint query aggregate with hint (rest) Temporarily disabled with xit 111) Parse.Query hint query aggregate with hint (rest) Temporarily disabled with xit 112) Parse.Query hint query find with hint (rest) Temporarily disabled with xit 113) Parse.Query hint query aggregate with hint string Temporarily disabled with xit 114) Parse.Query hint query aggregate with hint (rest) Temporarily disabled with xit 115) Parse.Query hint query find with hint object Temporarily disabled with xit 116) Parse.Query hint query aggregate with hint object Temporarily disabled with xit 117) Parse.Query hint query aggregate with hint object Temporarily disabled with xit 118) Parse.Query hint query aggregate with hint (rest) Temporarily disabled with xit 119) Parse.Query hint query aggregate with hint string Temporarily disabled with xit 120) Parse.Query hint query find with hint string Temporarily disabled with xit 121) Parse.Query hint query find with hint object Temporarily disabled with xit 122) Parse.Query hint query find with hint (rest) Temporarily disabled with xit 123) Parse.Query hint query find with hint string Temporarily disabled with xit 124) Parse.Query hint query aggregate with hint string Temporarily disabled with xit 125) Parse.Query hint query aggregate with hint object Temporarily disabled with xit 126) Parse.Query hint query aggregate with hint object Temporarily disabled with xit 127) Read preference option should change read preference for `aggregate` using `beforeFind` No reason given 128) Read preference option should find subqueries in same replica of readPreference by default No reason given 129) Read preference option should change read preference for count Temporarily disabled with xit 130) Read preference option should change read preference to NEAREST No reason given 131) Read preference option should change read preference for `aggregate` using query option No reason given 132) Read preference option should change includes read preference No reason given 133) Read preference option should change read preference for `find` using query option No reason given 134) Read preference option should change read preference for FIND using API through beforeFind trigger No reason given 135) Read preference option should change subqueries read preference when using doesNotMatchQuery No reason given 136) Read preference option should change read preference for GET using API through the beforeFind overriding API option No reason given 137) Read preference option should change subqueries read preference when using matchesKeyInQuery and doesNotMatchKeyInQuery No reason given 138) Read preference option should change includes read preference when getting through API No reason given 139) Read preference option should change read preference for FIND using API through the beforeFind overriding API option No reason given 140) Read preference option should change subqueries read preference when using matchesQuery No reason given 141) Read preference option should change subqueries read preference when using matchesKeyInQuery and doesNotMatchKeyInQuery to find through API No reason given 142) Read preference option should change read preference for FIND directly from API No reason given 143) Read preference option should change includes read preference when finding through API No reason given 144) Read preference option should change read preference for GET directly from API No reason given 145) Read preference option should change read preference for GET using API No reason given 146) Read preference option should preserve the read preference set (#4831) Temporarily disabled with xit 147) Read preference option should change read preference in the beforeFind trigger No reason given 148) Read preference option should check read preference as case insensitive No reason given 149) Read preference option should find in primary by default No reason given 150) Read preference option should change read preference to SECONDARY_PREFERRED No reason given 151) Read preference option should find includes in same replica of readPreference by default No reason given 152) Read preference option should change read preference in the beforeFind trigger even changing query No reason given 153) Read preference option should change read preference in the beforeFind trigger even returning query No reason given 154) Read preference option should change read preference for GET No reason given 155) Read preference option should change read preference in the beforeFind trigger even returning promise No reason given 156) Read preference option should change read preference to PRIMARY_PREFERRED No reason given 157) AudiencesRouter should support legacy parse.com audience fields Temporarily disabled with xit 158) AudiencesRouter query installations with count = 1 Temporarily disabled with xit 159) AudiencesRouter query installations with limit = 0 and count = 1 Temporarily disabled with xit 160) ProtectedFields using pointer-fields and queries with keys projection todo: should be enforced regardless of pointer-field being excluded Temporarily disabled with xit 161) RedisCacheAdapter should get/set/clear No reason given 162) RedisCacheAdapter should find un-expired records No reason given 163) RedisCacheAdapter handleShutdown, close connection No reason given 164) RedisCacheAdapter should not expire when ttl=Infinity No reason given 165) RedisCacheAdapter should expire after ttl No reason given 166) RedisCacheAdapter should fallback to default ttl No reason given 167) RedisCacheAdapter should not store value for ttl=0 No reason given 168) Pointer Permissions Granular on single-pointer fields addField action should have no effect when creating object (and allowed by explicit userid permission) Temporarily disabled with xit 169) Pointer Permissions Granular on single-pointer fields addField action should be denied when creating object (and no explicit permission) Temporarily disabled with xit 170) Parse.Query Aggregate testing group and multiply transform Temporarily disabled with xit 171) Parse.Query Aggregate testing project and multiply transform Temporarily disabled with xit 172) Parse.Query Aggregate testing aggregate geoNear with near GeoJSON point Temporarily disabled with xit 173) Parse.Query Aggregate testing match pointer with operator query Temporarily disabled with xit 174) Parse.Query Aggregate testing match exists query Temporarily disabled with xit 175) Parse.Query Aggregate testing can group by any date field (it does not work if you have dirty data) Temporarily disabled with xit 176) Parse.Query Aggregate testing aggregate geoNear with location query Temporarily disabled with xit 177) Parse.Query Aggregate testing project updatedAt only transform Temporarily disabled with xit 178) Parse.Query Aggregate testing aggregate allow multiple of same stage Temporarily disabled with xit 179) Parse.Query Aggregate testing project without objectId transform Temporarily disabled with xit 180) Parse.Query Aggregate testing aggregate geoNear with near legacy coordinate pair Temporarily disabled with xit 181) Parse.Query Aggregate testing match null values Temporarily disabled with xit 182) Parse.Object testing fetchAllIfNeeded backbone-style callbacks Temporarily disabled with xit 183) Parse.Object testing fetchAll User attributes get merged Temporarily disabled with xit 184) Parse.Object testing fetchAll backbone-style callbacks Temporarily disabled with xit 185) Parse.Object testing beforeSave doesn't make object dirty with existing field Temporarily disabled with xit 186) [mongodb] Parse.Query Full Text Search testing fullTextSearch: $caseSensitive No reason given 187) [mongodb] Parse.Query Full Text Search testing fullTextSearch: does not create text index if compound index exist No reason given 188) [mongodb] Parse.Query Full Text Search testing fullTextSearch: does not create text index if schema compound index exist No reason given 189) [mongodb] Parse.Query Full Text Search testing fullTextSearch: $diacriticSensitive - false No reason given 190) revocable sessions should upgrade legacy session token No reason given 191) revocable sessions should be able to become with revocable session token No reason given 192) revocable sessions should not upgrade bad legacy session token No reason given 193) revocable sessions should not crash without session token #2720 No reason given 194) Parse.Polygon testing polygon coordinates reverse input No reason given 195) Parse.Polygon testing support 2d and 2dsphere No reason given 196) Parse.Polygon testing polygon loop is not valid No reason given 197) schemas index management get compound indexes on startup Temporarily disabled with xit 198) schemas index management cannot update to duplicate value on unique index Temporarily disabled with xit 199) schemas index management get indexes on startup Temporarily disabled with xit 200) schemas index management lets you add index with with pointer like structure Temporarily disabled with xit 201) rest query query with include Temporarily disabled with xit 202) rest query query for user w/ legacy credentials with masterKey has them stripped from results Temporarily disabled with xit 203) rest query query for user w/ legacy credentials without masterKey has them stripped from results Temporarily disabled with xit 204) Schema Performance test saveAll / destroyAll Temporarily disabled with xit Executed 2880 of 3084 specs (21 FAILED) (204 PENDING) in 14 mins 20 secs. Randomized with seed 31692. =============================== Coverage summary =============================== Statements : 87.83% ( 13059/14868 ) Branches : 83.18% ( 8142/9788 ) Functions : 85.95% ( 2375/2763 ) Lines : 87.71% ( 12706/14486 ) ================================================================================