[web] mock the changes/users request in EditorProviders (#36435)

GitOrigin-RevId: 5f8f5b9317d089ca52ff17ad1307d58d625709d5
This commit is contained in:
Jakob Ackermann
2026-09-17 11:52:22 +00:00
committed by Copybot
parent 62e4164269
commit 2566455740
@@ -1,5 +1,6 @@
// Disable prop type checks for test harnesses
/* eslint-disable react/prop-types */
import fetchMock from 'fetch-mock'
import { merge } from 'lodash'
import { SocketIOMock } from '@/ide/connection/SocketIoShim'
import { IdeContext } from '@/shared/context/ide-context'
@@ -69,6 +70,22 @@ const defaultUserSettings = {
referencesSearchMode: 'simple',
} satisfies UserSettings
const CHANGES_USERS_ROUTE = 'editor-providers-changes-users'
// ChangesUsersProvider fetches this on mount, so every test rendering the editor
// context needs the route. Tests that care about the response register their own
// route before rendering, which takes precedence over this one.
function mockChangesUsers() {
const alreadyMocked = fetchMock.router.routes.some(
route => route.config.name === CHANGES_USERS_ROUTE
)
if (!alreadyMocked) {
fetchMock.get('express:/project/:projectId/changes/users', [], {
name: CHANGES_USERS_ROUTE,
})
}
}
export type EditorProvidersProps = {
user?: Pick<
User,
@@ -245,6 +262,8 @@ export function EditorProviders({
window.metaAttributesCache.set('ol-user', { ...user, features })
window.metaAttributesCache.set('ol-project_id', projectId)
mockChangesUsers()
const customProviders: Record<string, FC<PropsWithChildren>> = {
ConnectionProvider: makeConnectionProvider(socket),
IdeReactProvider: makeIdeReactProvider(scope, socket),