We recently merged a Discourse core's PR to replace usages of Ember's debounce and discourseDebounce with a new debounce wrapper. The new wrapper works exactly like Ember's debounce but internally calls "run" when called in test mode.
This PR replaces all usages of other debounce functions with the new wrapper and fallbacks to Ember's debounce for backward-compatibility.
By removing the catch and letting the error propagate to the top-level error handler, we can receive more detailed error reports including exactly which request failed.
The assumption that any request failure is a permissions error is replaced by an explicit client-side check before making any requests.
The toString() that was introduced in 80ffc45 was preventing any actively permitted groups from displaying in the group picker when entering a query page.
This rake task is responsible for fixing broken ids - move them back to the original values - ones before migration to a separate table.
Rake task can only fix queries with unique names.
In the test, we are creating duplicated queries and using `original_id` 4. Spec is ensuring that after rake tasks valuation, queries id is different than `4`
However, spec run in random order may create a query with id 4 and in that case, the spec would fail.
Therefore, when we create queries for test purpose, we should control what ids they are given to avoid conflict.
This reverts commit d643cf742e4a46423dd07bb72d532e91346e3855.
A previous change was already made in this repo to import getURL,
this causes a double import which breaks the build.
Reintroduces the migration removed in `cdfc5d4`, and fixes it to work with `query_groups`. Since the code is fairly complex, I moved into a rake task so it can be tested and make sure it works.