test functional EventUtils (#8386)

* extract poll event test util

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test isContentActionable

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test canEditContent

Signed-off-by: Kerry Archibald <kerrya@element.io>

* test functional eventutils

Signed-off-by: Kerry Archibald <kerrya@element.io>

* copyrights

Signed-off-by: Kerry Archibald <kerrya@element.io>
This commit is contained in:
Kerry 2022-04-21 18:14:10 +02:00 committed by GitHub
parent c70816d763
commit 73e8387799
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 413 additions and 37 deletions

View file

@ -14,11 +14,11 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
import { MatrixEvent, MatrixClient } from "matrix-js-sdk/src/matrix";
import { POLL_ANSWER, M_TEXT, M_POLL_KIND_DISCLOSED, M_POLL_START } from "matrix-events-sdk";
import { MatrixClient } from "matrix-js-sdk/src/matrix";
import { PollStartEventPreview } from "../../../../src/stores/room-list/previews/PollStartEventPreview";
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
import { makePollStartEvent } from "../../../test-utils";
jest.spyOn(MatrixClientPeg, 'get').mockReturnValue({
getUserId: () => "@me:example.com",
@ -26,47 +26,15 @@ jest.spyOn(MatrixClientPeg, 'get').mockReturnValue({
describe("PollStartEventPreview", () => {
it("shows the question for a poll I created", async () => {
const pollStartEvent = newPollStartEvent("My Question", "@me:example.com");
const pollStartEvent = makePollStartEvent("My Question", "@me:example.com");
const preview = new PollStartEventPreview();
expect(preview.getTextFor(pollStartEvent)).toBe("My Question");
});
it("shows the sender and question for a poll created by someone else", async () => {
const pollStartEvent = newPollStartEvent("Your Question", "@yo:example.com");
const pollStartEvent = makePollStartEvent("Your Question", "@yo:example.com");
const preview = new PollStartEventPreview();
expect(preview.getTextFor(pollStartEvent)).toBe("@yo:example.com: Your Question");
});
});
function newPollStartEvent(
question: string,
sender: string,
answers?: POLL_ANSWER[],
): MatrixEvent {
if (!answers) {
answers = [
{ "id": "socks", [M_TEXT.name]: "Socks" },
{ "id": "shoes", [M_TEXT.name]: "Shoes" },
];
}
return new MatrixEvent(
{
"event_id": "$mypoll",
"room_id": "#myroom:example.com",
"sender": sender,
"type": M_POLL_START.name,
"content": {
[M_POLL_START.name]: {
"question": {
[M_TEXT.name]: question,
},
"kind": M_POLL_KIND_DISCLOSED.name,
"answers": answers,
},
[M_TEXT.name]: `${question}: answers`,
},
},
);
}