mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2026-11-14 22:23:42 +01:00
[web] remove mentions from chat message editing (#35761)
GitOrigin-RevId: 6cd27490485196b82a9c4d9ffa19ba5d8e10922d
This commit is contained in:
@@ -1,84 +0,0 @@
|
||||
import ChatPane from '@/features/chat/components/chat-pane'
|
||||
import {
|
||||
EditorProviders,
|
||||
makeProjectProvider,
|
||||
USER_ID,
|
||||
USER_EMAIL,
|
||||
} from '../../../helpers/editor-providers'
|
||||
import { mockProject } from '../../source-editor/helpers/mock-project'
|
||||
|
||||
describe('<MessageContent /> editing', function () {
|
||||
const message = {
|
||||
id: 'msg_1',
|
||||
content: 'hello world',
|
||||
user: {
|
||||
id: USER_ID,
|
||||
first_name: 'Test',
|
||||
last_name: 'User',
|
||||
email: USER_EMAIL,
|
||||
},
|
||||
timestamp: new Date('2025-01-01T00:00:00.000Z').getTime(),
|
||||
}
|
||||
|
||||
beforeEach(function () {
|
||||
window.metaAttributesCache.set('ol-preventCompileOnLoad', true)
|
||||
window.metaAttributesCache.set('ol-splitTestVariants', {
|
||||
'chat-edit-delete': 'enabled',
|
||||
})
|
||||
|
||||
cy.intercept('GET', '/project/*/messages*', [message]).as('getMessages')
|
||||
cy.intercept('POST', '/project/*/messages/msg_1/edit', {}).as('editMessage')
|
||||
|
||||
cy.mount(
|
||||
<EditorProviders
|
||||
providers={{ ProjectProvider: makeProjectProvider(mockProject()) }}
|
||||
>
|
||||
<ChatPane />
|
||||
</EditorProviders>
|
||||
)
|
||||
|
||||
cy.wait('@getMessages')
|
||||
cy.findByText('hello world')
|
||||
})
|
||||
|
||||
function openEditor() {
|
||||
cy.get('.message-dropdown-menu-btn').click({ force: true })
|
||||
cy.findByText('Edit').click({ force: true })
|
||||
return cy.findByRole('textbox', { name: 'Edit message' })
|
||||
}
|
||||
|
||||
it('saves an edited message on Enter', function () {
|
||||
openEditor().type('{selectAll}edited message{enter}', { force: true })
|
||||
|
||||
cy.wait('@editMessage')
|
||||
.its('request.body.content')
|
||||
.should('equal', 'edited message')
|
||||
})
|
||||
|
||||
it('saves an edited message with the Save button', function () {
|
||||
openEditor().type('{selectAll}edited message', { force: true })
|
||||
cy.findByRole('button', { name: 'Save' }).click({ force: true })
|
||||
|
||||
cy.wait('@editMessage')
|
||||
.its('request.body.content')
|
||||
.should('equal', 'edited message')
|
||||
})
|
||||
|
||||
it('cancels editing on Escape without saving', function () {
|
||||
openEditor().type('{selectAll}discarded{esc}', { force: true })
|
||||
|
||||
// Editor closes and the original message is shown again.
|
||||
cy.findByRole('textbox', { name: 'Edit message' }).should('not.exist')
|
||||
cy.findByText('hello world').should('exist')
|
||||
cy.get('@editMessage.all').should('have.length', 0)
|
||||
})
|
||||
|
||||
it('cancels editing with the Cancel button', function () {
|
||||
openEditor().type('{selectAll}discarded', { force: true })
|
||||
cy.findByRole('button', { name: 'Cancel' }).click({ force: true })
|
||||
|
||||
cy.findByRole('textbox', { name: 'Edit message' }).should('not.exist')
|
||||
cy.findByText('hello world').should('exist')
|
||||
cy.get('@editMessage.all').should('have.length', 0)
|
||||
})
|
||||
})
|
||||
@@ -12,8 +12,6 @@ import { UserProvider } from '@/shared/context/user-context'
|
||||
import { ModalsContextProvider } from '@/features/ide-react/context/modals-context'
|
||||
import { SplitTestProvider } from '@/shared/context/split-test-context'
|
||||
|
||||
import { EditorProviders } from '../../../helpers/editor-providers'
|
||||
|
||||
describe('<MessageGroup />', function () {
|
||||
function ChatProviders({
|
||||
children,
|
||||
@@ -29,17 +27,15 @@ describe('<MessageGroup />', function () {
|
||||
}
|
||||
|
||||
return (
|
||||
<EditorProviders>
|
||||
<UserProvider>
|
||||
<ModalsContextProvider>
|
||||
<SplitTestProvider>
|
||||
<ChatContext.Provider value={mockContextValue as any}>
|
||||
{children}
|
||||
</ChatContext.Provider>
|
||||
</SplitTestProvider>
|
||||
</ModalsContextProvider>
|
||||
</UserProvider>
|
||||
</EditorProviders>
|
||||
<UserProvider>
|
||||
<ModalsContextProvider>
|
||||
<SplitTestProvider>
|
||||
<ChatContext.Provider value={mockContextValue as any}>
|
||||
{children}
|
||||
</ChatContext.Provider>
|
||||
</SplitTestProvider>
|
||||
</ModalsContextProvider>
|
||||
</UserProvider>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -156,7 +152,7 @@ describe('<MessageGroup />', function () {
|
||||
expect(screen.queryByText('(edited)')).to.not.exist
|
||||
})
|
||||
|
||||
it('renders message being edited with a CodeMirror input and action buttons', function () {
|
||||
it('renders message being edited with textarea and action buttons', function () {
|
||||
const messageBeingEdited: MessageType = {
|
||||
content: 'original message content',
|
||||
user: currentUser,
|
||||
@@ -170,8 +166,8 @@ describe('<MessageGroup />', function () {
|
||||
</ChatProviders>
|
||||
)
|
||||
|
||||
const editor = screen.getByRole('textbox', { name: 'Edit message' })
|
||||
expect(editor.textContent).to.contain('original message content')
|
||||
const textarea = screen.getByDisplayValue('original message content')
|
||||
expect(textarea.tagName.toLowerCase()).to.equal('textarea')
|
||||
|
||||
screen.getByRole('button', { name: 'Cancel' })
|
||||
screen.getByRole('button', { name: 'Save' })
|
||||
|
||||
Reference in New Issue
Block a user