Apply prettier formatting

This commit is contained in:
Michael Weimann 2022-12-12 12:24:14 +01:00
parent 1cac306093
commit 526645c791
No known key found for this signature in database
GPG key ID: 53F535A266BB9584
1576 changed files with 65385 additions and 62478 deletions

View file

@ -24,11 +24,10 @@ import defaultDispatcher from "../../../../../src/dispatcher/dispatcher";
import { Action } from "../../../../../src/dispatcher/actions";
import { IRoomState } from "../../../../../src/components/structures/RoomView";
import { createTestClient, flushPromises, getRoomContext, mkEvent, mkStubRoom } from "../../../../test-utils";
import { EditWysiwygComposer }
from "../../../../../src/components/views/rooms/wysiwyg_composer";
import { EditWysiwygComposer } from "../../../../../src/components/views/rooms/wysiwyg_composer";
import EditorStateTransfer from "../../../../../src/utils/EditorStateTransfer";
describe('EditWysiwygComposer', () => {
describe("EditWysiwygComposer", () => {
afterEach(() => {
jest.resetAllMocks();
});
@ -36,18 +35,18 @@ describe('EditWysiwygComposer', () => {
const mockClient = createTestClient();
const mockEvent = mkEvent({
type: "m.room.message",
room: 'myfakeroom',
user: 'myfakeuser',
room: "myfakeroom",
user: "myfakeuser",
content: {
"msgtype": "m.text",
"body": "Replying to this",
"format": "org.matrix.custom.html",
"formatted_body": 'Replying <b>to</b> this new content',
msgtype: "m.text",
body: "Replying to this",
format: "org.matrix.custom.html",
formatted_body: "Replying <b>to</b> this new content",
},
event: true,
});
const mockRoom = mkStubRoom('myfakeroom', 'myfakeroom', mockClient) as any;
mockRoom.findEventById = jest.fn(eventId => {
const mockRoom = mkStubRoom("myfakeroom", "myfakeroom", mockClient) as any;
mockRoom.findEventById = jest.fn((eventId) => {
return eventId === mockEvent.getId() ? mockEvent : null;
});
@ -65,48 +64,48 @@ describe('EditWysiwygComposer', () => {
);
};
describe('Initialize with content', () => {
it('Should initialize useWysiwyg with html content', async () => {
describe("Initialize with content", () => {
it("Should initialize useWysiwyg with html content", async () => {
// When
customRender(false, editorStateTransfer);
await waitFor(() => expect(screen.getByRole('textbox')).toHaveAttribute('contentEditable', "true"));
await waitFor(() => expect(screen.getByRole("textbox")).toHaveAttribute("contentEditable", "true"));
// Then
await waitFor(() =>
expect(screen.getByRole('textbox')).toContainHTML(mockEvent.getContent()['formatted_body']));
expect(screen.getByRole("textbox")).toContainHTML(mockEvent.getContent()["formatted_body"]),
);
});
it('Should initialize useWysiwyg with plain text content', async () => {
it("Should initialize useWysiwyg with plain text content", async () => {
// When
const mockEvent = mkEvent({
type: "m.room.message",
room: 'myfakeroom',
user: 'myfakeuser',
room: "myfakeroom",
user: "myfakeuser",
content: {
"msgtype": "m.text",
"body": "Replying to this",
msgtype: "m.text",
body: "Replying to this",
},
event: true,
});
const editorStateTransfer = new EditorStateTransfer(mockEvent);
customRender(false, editorStateTransfer);
await waitFor(() => expect(screen.getByRole('textbox')).toHaveAttribute('contentEditable', "true"));
await waitFor(() => expect(screen.getByRole("textbox")).toHaveAttribute("contentEditable", "true"));
// Then
await waitFor(() =>
expect(screen.getByRole('textbox')).toContainHTML(mockEvent.getContent()['body']));
await waitFor(() => expect(screen.getByRole("textbox")).toContainHTML(mockEvent.getContent()["body"]));
});
it('Should ignore when formatted_body is not filled', async () => {
it("Should ignore when formatted_body is not filled", async () => {
// When
const mockEvent = mkEvent({
type: "m.room.message",
room: 'myfakeroom',
user: 'myfakeuser',
room: "myfakeroom",
user: "myfakeuser",
content: {
"msgtype": "m.text",
"body": "Replying to this",
"format": "org.matrix.custom.html",
msgtype: "m.text",
body: "Replying to this",
format: "org.matrix.custom.html",
},
event: true,
});
@ -115,40 +114,40 @@ describe('EditWysiwygComposer', () => {
customRender(false, editorStateTransfer);
// Then
await waitFor(() => expect(screen.getByRole('textbox')).toHaveAttribute('contentEditable', "true"));
await waitFor(() => expect(screen.getByRole("textbox")).toHaveAttribute("contentEditable", "true"));
});
it('Should strip <mx-reply> tag from initial content', async () => {
it("Should strip <mx-reply> tag from initial content", async () => {
// When
const mockEvent = mkEvent({
type: "m.room.message",
room: 'myfakeroom',
user: 'myfakeuser',
room: "myfakeroom",
user: "myfakeuser",
content: {
"msgtype": "m.text",
"body": "Replying to this",
"format": "org.matrix.custom.html",
"formatted_body": '<mx-reply>Reply</mx-reply>My content',
msgtype: "m.text",
body: "Replying to this",
format: "org.matrix.custom.html",
formatted_body: "<mx-reply>Reply</mx-reply>My content",
},
event: true,
});
const editorStateTransfer = new EditorStateTransfer(mockEvent);
customRender(false, editorStateTransfer);
await waitFor(() => expect(screen.getByRole('textbox')).toHaveAttribute('contentEditable', "true"));
await waitFor(() => expect(screen.getByRole("textbox")).toHaveAttribute("contentEditable", "true"));
// Then
await waitFor(() => {
expect(screen.getByRole('textbox')).not.toContainHTML("<mx-reply>Reply</mx-reply>");
expect(screen.getByRole('textbox')).toContainHTML("My content");
expect(screen.getByRole("textbox")).not.toContainHTML("<mx-reply>Reply</mx-reply>");
expect(screen.getByRole("textbox")).toContainHTML("My content");
});
});
});
describe('Edit and save actions', () => {
describe("Edit and save actions", () => {
beforeEach(async () => {
customRender();
await waitFor(() => expect(screen.getByRole('textbox')).toHaveAttribute('contentEditable', "true"));
await waitFor(() => expect(screen.getByRole("textbox")).toHaveAttribute("contentEditable", "true"));
});
const spyDispatcher = jest.spyOn(defaultDispatcher, "dispatch");
@ -156,9 +155,9 @@ describe('EditWysiwygComposer', () => {
spyDispatcher.mockRestore();
});
it('Should cancel edit on cancel button click', async () => {
it("Should cancel edit on cancel button click", async () => {
// When
screen.getByText('Cancel').click();
screen.getByText("Cancel").click();
// Then
expect(spyDispatcher).toBeCalledWith({
@ -172,43 +171,43 @@ describe('EditWysiwygComposer', () => {
});
});
it('Should send message on save button click', async () => {
it("Should send message on save button click", async () => {
// When
const spyDispatcher = jest.spyOn(defaultDispatcher, "dispatch");
fireEvent.input(screen.getByRole('textbox'), {
data: 'foo bar',
inputType: 'insertText',
fireEvent.input(screen.getByRole("textbox"), {
data: "foo bar",
inputType: "insertText",
});
await waitFor(() => expect(screen.getByText('Save')).not.toHaveAttribute('disabled'));
await waitFor(() => expect(screen.getByText("Save")).not.toHaveAttribute("disabled"));
// Then
screen.getByText('Save').click();
screen.getByText("Save").click();
const expectedContent = {
"body": ` * foo bar`,
"format": "org.matrix.custom.html",
"formatted_body": ` * foo bar`,
"m.new_content": {
"body": "foo bar",
"format": "org.matrix.custom.html",
"formatted_body": "foo bar",
"msgtype": "m.text",
body: "foo bar",
format: "org.matrix.custom.html",
formatted_body: "foo bar",
msgtype: "m.text",
},
"m.relates_to": {
"event_id": mockEvent.getId(),
"rel_type": "m.replace",
event_id: mockEvent.getId(),
rel_type: "m.replace",
},
"msgtype": "m.text",
};
expect(mockClient.sendMessage).toBeCalledWith(mockEvent.getRoomId(), null, expectedContent);
expect(spyDispatcher).toBeCalledWith({ action: 'message_sent' });
expect(spyDispatcher).toBeCalledWith({ action: "message_sent" });
});
});
it('Should focus when receiving an Action.FocusEditMessageComposer action', async () => {
it("Should focus when receiving an Action.FocusEditMessageComposer action", async () => {
// Given we don't have focus
customRender();
screen.getByLabelText('Bold').focus();
expect(screen.getByRole('textbox')).not.toHaveFocus();
screen.getByLabelText("Bold").focus();
expect(screen.getByRole("textbox")).not.toHaveFocus();
// When we send the right action
defaultDispatcher.dispatch({
@ -217,14 +216,14 @@ describe('EditWysiwygComposer', () => {
});
// Then the component gets the focus
await waitFor(() => expect(screen.getByRole('textbox')).toHaveFocus());
await waitFor(() => expect(screen.getByRole("textbox")).toHaveFocus());
});
it('Should not focus when disabled', async () => {
it("Should not focus when disabled", async () => {
// Given we don't have focus and we are disabled
customRender(true);
screen.getByLabelText('Bold').focus();
expect(screen.getByRole('textbox')).not.toHaveFocus();
screen.getByLabelText("Bold").focus();
expect(screen.getByRole("textbox")).not.toHaveFocus();
// When we send an action that would cause us to get focus
act(() => {
@ -243,7 +242,6 @@ describe('EditWysiwygComposer', () => {
await flushPromises();
// Then we don't get it because we are disabled
expect(screen.getByRole('textbox')).not.toHaveFocus();
expect(screen.getByRole("textbox")).not.toHaveFocus();
});
});