Skip to content

Remove third-party network calls from required test jobs #10722

Closed

Description

@mtrezza

Issue

Part of #10681.

Three specs send requests to servers of Apple and Facebook, so their result depends on these servers.

  • test validate_receipt endpoint > should fail at appstore validation in spec/PurchaseValidation.spec.js sends a receipt to the App Store receipt validation at https://buy.itunes.apple.com/verifyReceipt and expects the status 21002 that Apple returns for an invalid receipt. The spec fails if Apple is unreachable, responds with an HTTP error, or doesn't respond within the spec timeout of 20 s:
    Error: Timeout - Async function did not complete within 20000ms (set by jasmine.DEFAULT_TIMEOUT_INTERVAL)
    
    After a timeout, the request of the spec to Parse Server is still waiting for Apple. The next spec that restarts Parse Server with reconfigureServer closes the connection of that request, and fails with Error: socket hang up.
  • apple signin auth adapter > should throw error if public key used to encode token is not available and the same spec in facebook limited auth adapter in spec/AuthenticationAdapters.spec.js download the public keys from https://appleid.apple.com/auth/keys and https://www.facebook.com/.well-known/oauth/openid/jwks/. The adapters report any error of the download as the missing key that the specs expect, so the specs pass whether the download succeeds or fails. They fail if the server doesn't respond within 20 s, because jwks-rsa only cancels the download after 30 s without a response.
  • Holding the connections to Apple and Facebook open without a response reproduces the failures locally with MongoDB and PostgreSQL: the 3 specs time out, and the next spec that restarts Parse Server fails with socket hang up.
  • Of the 292 failed test jobs in CI runs from July 1 to September 29, 2026, 5 failed only because of the App Store spec: between September 22 and 24, in MongoDB 7, MongoDB 8, PostgreSQL 16, PostgreSQL 17 and Redis Cache jobs, once in a push to alpha. In each of them, the App Store spec timed out and one other spec failed with socket hang up. The other two specs never timed out. Logs of earlier runs have expired.
  • The LineAdapter E2E Test > should handle error when no code is provided failure in Flaky and misconfigured CI checks block dependency PRs #10681 was one of these 5 jobs. The spec doesn't send a request to LINE; it was the first spec that restarted Parse Server after the App Store spec timed out.
  • A trace of all connections and DNS lookups in a full local test run with MongoDB and with PostgreSQL found no other spec that sends a request to a server other than localhost. Two specs try to connect to host names that don't exist, and only need the lookup to fail: httpRequest > should fail gracefully (not), and the Parse Server that Server Url Checks > does not have unhandled promise rejection in the case of load error starts from spec/support/FailingServer.js (doesnotexist). The specs that only run in the Redis Cache job, and the Parse Server processes that spec/CLI.spec.js starts, weren't traced; they only connect to localhost.

Activity

  1. parse-github-assistant commented on Sep 29, 2026

    @parse-github-assistant

    🚀 Thanks for opening this issue!

  2. parseplatformorg commented on Sep 30, 2026

    @parseplatformorg
    Contributor

    🎉 This change has been released in version 9.10.2-alpha.6

  3. parseplatformorg commented on Oct 2, 2026

    @parseplatformorg
    Contributor

    🎉 This change has been released in version 9.10.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions