From 42db9c15b3cb77e2e7768e37aefb0b81bc9e2a8c Mon Sep 17 00:00:00 2001 From: Kerry Archibald Date: Wed, 21 Dec 2022 17:56:18 +1300 Subject: [PATCH 1/2] add failing test case --- .../views/elements/PollCreateDialog-test.tsx | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/test/components/views/elements/PollCreateDialog-test.tsx b/test/components/views/elements/PollCreateDialog-test.tsx index 1459e501fca..810bcffbd79 100644 --- a/test/components/views/elements/PollCreateDialog-test.tsx +++ b/test/components/views/elements/PollCreateDialog-test.tsx @@ -252,6 +252,53 @@ describe("PollCreateDialog", () => { }, }); }); + + it("retains poll disclosure type when editing", () => { + const previousEvent: MatrixEvent = new MatrixEvent( + PollStartEvent.from("Poll Q", ["Answer 1", "Answer 2"], M_POLL_KIND_DISCLOSED).serialize(), + ); + previousEvent.event.event_id = "$prevEventId"; + + const dialog = mount( + , + ); + + changeValue(dialog, "Question or topic", "Poll Q updated"); + dialog.find("button").simulate("click"); + + const [, , eventType, sentEventContent] = mockClient.sendEvent.mock.calls[0]; + expect(M_POLL_START.matches(eventType)).toBeTruthy(); + expect(sentEventContent).toEqual({ + "m.new_content": { + [M_TEXT.name]: "Poll Q updated\n1. Answer 1\n2. Answer 2", + [M_POLL_START.name]: { + answers: [ + { + id: expect.any(String), + [M_TEXT.name]: "Answer 1", + }, + { + id: expect.any(String), + [M_TEXT.name]: "Answer 2", + }, + ], + kind: M_POLL_KIND_DISCLOSED.name, + max_selections: 1, + question: { + body: "Poll Q updated", + format: undefined, + formatted_body: undefined, + msgtype: "m.text", + [M_TEXT.name]: "Poll Q updated", + }, + }, + }, + "m.relates_to": { + event_id: previousEvent.getId(), + rel_type: "m.replace", + }, + }); + }); }); function createRoom(): Room { From b19ec37945e0dd2964c4be022de73caf8053687f Mon Sep 17 00:00:00 2001 From: Kerry Archibald Date: Wed, 21 Dec 2022 18:11:01 +1300 Subject: [PATCH 2/2] dont reset poll disclosure on editing --- .../views/elements/PollCreateDialog.tsx | 2 +- .../views/elements/PollCreateDialog-test.tsx | 32 ++----------------- 2 files changed, 3 insertions(+), 31 deletions(-) diff --git a/src/components/views/elements/PollCreateDialog.tsx b/src/components/views/elements/PollCreateDialog.tsx index 3d987c3d966..653d69864df 100644 --- a/src/components/views/elements/PollCreateDialog.tsx +++ b/src/components/views/elements/PollCreateDialog.tsx @@ -138,7 +138,7 @@ export default class PollCreateDialog extends ScrollableBaseModal a.trim()).filter((a) => !!a), - this.state.kind, + this.state.kind.name, ).serialize(); if (!this.props.editingMxEvent) { diff --git a/test/components/views/elements/PollCreateDialog-test.tsx b/test/components/views/elements/PollCreateDialog-test.tsx index 810bcffbd79..fdfb4b50e7f 100644 --- a/test/components/views/elements/PollCreateDialog-test.tsx +++ b/test/components/views/elements/PollCreateDialog-test.tsx @@ -268,36 +268,8 @@ describe("PollCreateDialog", () => { const [, , eventType, sentEventContent] = mockClient.sendEvent.mock.calls[0]; expect(M_POLL_START.matches(eventType)).toBeTruthy(); - expect(sentEventContent).toEqual({ - "m.new_content": { - [M_TEXT.name]: "Poll Q updated\n1. Answer 1\n2. Answer 2", - [M_POLL_START.name]: { - answers: [ - { - id: expect.any(String), - [M_TEXT.name]: "Answer 1", - }, - { - id: expect.any(String), - [M_TEXT.name]: "Answer 2", - }, - ], - kind: M_POLL_KIND_DISCLOSED.name, - max_selections: 1, - question: { - body: "Poll Q updated", - format: undefined, - formatted_body: undefined, - msgtype: "m.text", - [M_TEXT.name]: "Poll Q updated", - }, - }, - }, - "m.relates_to": { - event_id: previousEvent.getId(), - rel_type: "m.replace", - }, - }); + // didnt change + expect(sentEventContent["m.new_content"][M_POLL_START.name].kind).toEqual(M_POLL_KIND_DISCLOSED.name); }); });