You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The directAccess feature defaults to being enabled since Parse Server 6. This was a decision made after the feature has been in an experimental state for years (introduced in 2017) and used by developers in production environments. The goal was to make the feature broadly available to mature it faster and fix any bugs reported.
However, it seems that the feature itself is not tested - at all - in our CI. In fact, not a single test runs with directAccess enabled. The test suite does not allow to use the ParseServerRESTController because the test helper always sets the normal REST controller:
So even if calling await reconfigureServer({ directAccess: true }); in a test, the normal REST controller will be used.
That override was added in #8232. From the past discussions around officially releasing the directAccess feature it seems this was added to make the tests pass, as the refactor would have been to vast to run all the tests once with directAccess enabled and once with directAccess disabled.
The fact that the tests run without directAcess enabled while at the same time directAcess is enabled by default in Parse Server is a contradiction that can easily lead to - especially Cloud Code related - bugs not being discovered by the CI. For example #8806.
Removing the REST controller override to run tests with directAccess: true causes 403 tests to fail, see #8807.
Solution
We should probably run the CI with directAccess enabled and disabled. Running every CI job twice would consume a lot of resources. Instead, depending which of the two the CI should focus on, at least 1 job could run with directAccess enabled and the rest of the jobs with directAccess disabled, or vice-versa.
The text was updated successfully, but these errors were encountered:
🚀 You can help us to fix this issue faster by opening a pull request with a failing test. See our Contribution Guide for how to make a pull request, or read our New Contributor's Guide if this is your first time contributing.
mtrezza
changed the title
Feature directAccess immature and without tests
Feature directAccess without tests
Nov 16, 2023
New Issue Checklist
Issue Description
The
directAccess
feature defaults to being enabled since Parse Server 6. This was a decision made after the feature has been in an experimental state for years (introduced in 2017) and used by developers in production environments. The goal was to make the feature broadly available to mature it faster and fix any bugs reported.However, it seems that the feature itself is not tested - at all - in our CI. In fact, not a single test runs with
directAccess
enabled. The test suite does not allow to use the ParseServerRESTController because the test helper always sets the normal REST controller:parse-server/spec/helper.js
Line 169 in 4b3ce20
This overrides the server config for tests which is deliberately set to enable direct access:
parse-server/spec/helper.js
Line 109 in 4b3ce20
So even if calling
await reconfigureServer({ directAccess: true });
in a test, the normal REST controller will be used.That override was added in #8232. From the past discussions around officially releasing the directAccess feature it seems this was added to make the tests pass, as the refactor would have been to vast to run all the tests once with directAccess enabled and once with directAccess disabled.
The fact that the tests run without directAcess enabled while at the same time directAcess is enabled by default in Parse Server is a contradiction that can easily lead to - especially Cloud Code related - bugs not being discovered by the CI. For example #8806.
Removing the REST controller override to run tests with
directAccess: true
causes 403 tests to fail, see #8807.Solution
We should probably run the CI with directAccess enabled and disabled. Running every CI job twice would consume a lot of resources. Instead, depending which of the two the CI should focus on, at least 1 job could run with directAccess enabled and the rest of the jobs with directAccess disabled, or vice-versa.
The text was updated successfully, but these errors were encountered: