mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-12 13:13:45 +01:00
[web] mock the changes/users request in EditorProviders (#36435)
GitOrigin-RevId: 5f8f5b9317d089ca52ff17ad1307d58d625709d5
This commit is contained in:
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user