Merge remote-tracking branch 'upstream/develop' into feature/call-event-tile
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
This commit is contained in:
@@ -19,7 +19,7 @@ import ReactDOM from 'react-dom';
|
||||
import ReactTestUtils from 'react-dom/test-utils';
|
||||
|
||||
import MockHttpBackend from 'matrix-mock-request';
|
||||
import {MatrixClientPeg} from '../../../src/MatrixClientPeg';
|
||||
import { MatrixClientPeg } from '../../../src/MatrixClientPeg';
|
||||
import sdk from '../../skinned-sdk';
|
||||
import Matrix from 'matrix-js-sdk';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright 2016 OpenMarket Ltd
|
||||
Copyright 2019 The Matrix.org Foundation C.I.C.
|
||||
Copyright 2019, 2021 The Matrix.org Foundation C.I.C.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -26,11 +26,11 @@ import { EventEmitter } from "events";
|
||||
import sdk from '../../skinned-sdk';
|
||||
|
||||
const MessagePanel = sdk.getComponent('structures.MessagePanel');
|
||||
import {MatrixClientPeg} from '../../../src/MatrixClientPeg';
|
||||
import { MatrixClientPeg } from '../../../src/MatrixClientPeg';
|
||||
import Matrix from 'matrix-js-sdk';
|
||||
|
||||
const test_utils = require('../../test-utils');
|
||||
const mockclock = require('../../mock-clock');
|
||||
const TestUtilsMatrix = require('../../test-utils');
|
||||
import FakeTimers from '@sinonjs/fake-timers';
|
||||
|
||||
import Adapter from "@wojtekmaj/enzyme-adapter-react-17";
|
||||
import { configure, mount } from "enzyme";
|
||||
@@ -42,7 +42,7 @@ import DMRoomMap from "../../../src/utils/DMRoomMap";
|
||||
configure({ adapter: new Adapter() });
|
||||
|
||||
let client;
|
||||
const room = new Matrix.Room();
|
||||
const room = new Matrix.Room("!roomId:server_name");
|
||||
|
||||
// wrap MessagePanel with a component which provides the MatrixClient in the context.
|
||||
class WrappedMessagePanel extends React.Component {
|
||||
@@ -72,14 +72,14 @@ class WrappedMessagePanel extends React.Component {
|
||||
}
|
||||
|
||||
describe('MessagePanel', function() {
|
||||
const clock = mockclock.clock();
|
||||
let clock = null;
|
||||
const realSetTimeout = window.setTimeout;
|
||||
const events = mkEvents();
|
||||
|
||||
beforeEach(function() {
|
||||
test_utils.stubClient();
|
||||
TestUtilsMatrix.stubClient();
|
||||
client = MatrixClientPeg.get();
|
||||
client.credentials = {userId: '@me:here'};
|
||||
client.credentials = { userId: '@me:here' };
|
||||
|
||||
// HACK: We assume all settings want to be disabled
|
||||
SettingsStore.getValue = jest.fn((arg) => {
|
||||
@@ -90,14 +90,17 @@ describe('MessagePanel', function() {
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
clock.uninstall();
|
||||
if (clock) {
|
||||
clock.uninstall();
|
||||
clock = null;
|
||||
}
|
||||
});
|
||||
|
||||
function mkEvents() {
|
||||
const events = [];
|
||||
const ts0 = Date.now();
|
||||
for (let i = 0; i < 10; i++) {
|
||||
events.push(test_utils.mkMessage(
|
||||
events.push(TestUtilsMatrix.mkMessage(
|
||||
{
|
||||
event: true, room: "!room:id", user: "@user:id",
|
||||
ts: ts0 + i * 1000,
|
||||
@@ -111,7 +114,7 @@ describe('MessagePanel', function() {
|
||||
const events = [];
|
||||
const ts0 = Date.parse('09 May 2004 00:12:00 GMT');
|
||||
for (let i = 0; i < 10; i++) {
|
||||
events.push(test_utils.mkMessage(
|
||||
events.push(TestUtilsMatrix.mkMessage(
|
||||
{
|
||||
event: true, room: "!room:id", user: "@user:id",
|
||||
ts: ts0 + i * 1000,
|
||||
@@ -120,7 +123,6 @@ describe('MessagePanel', function() {
|
||||
return events;
|
||||
}
|
||||
|
||||
|
||||
// make a collection of events with some member events that should be collapsed
|
||||
// with a MemberEventListSummary
|
||||
function mkMelsEvents() {
|
||||
@@ -128,13 +130,13 @@ describe('MessagePanel', function() {
|
||||
const ts0 = Date.now();
|
||||
|
||||
let i = 0;
|
||||
events.push(test_utils.mkMessage({
|
||||
events.push(TestUtilsMatrix.mkMessage({
|
||||
event: true, room: "!room:id", user: "@user:id",
|
||||
ts: ts0 + ++i * 1000,
|
||||
}));
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
events.push(test_utils.mkMembership({
|
||||
events.push(TestUtilsMatrix.mkMembership({
|
||||
event: true, room: "!room:id", user: "@user:id",
|
||||
target: {
|
||||
userId: "@user:id",
|
||||
@@ -151,7 +153,7 @@ describe('MessagePanel', function() {
|
||||
}));
|
||||
}
|
||||
|
||||
events.push(test_utils.mkMessage({
|
||||
events.push(TestUtilsMatrix.mkMessage({
|
||||
event: true, room: "!room:id", user: "@user:id",
|
||||
ts: ts0 + ++i*1000,
|
||||
}));
|
||||
@@ -167,7 +169,7 @@ describe('MessagePanel', function() {
|
||||
let i = 0;
|
||||
|
||||
for (i = 0; i < 10; i++) {
|
||||
events.push(test_utils.mkMembership({
|
||||
events.push(TestUtilsMatrix.mkMembership({
|
||||
event: true, room: "!room:id", user: "@user:id",
|
||||
target: {
|
||||
userId: "@user:id",
|
||||
@@ -189,8 +191,8 @@ describe('MessagePanel', function() {
|
||||
|
||||
// A list of room creation, encryption, and invite events.
|
||||
function mkCreationEvents() {
|
||||
const mkEvent = test_utils.mkEvent;
|
||||
const mkMembership = test_utils.mkMembership;
|
||||
const mkEvent = TestUtilsMatrix.mkEvent;
|
||||
const mkMembership = TestUtilsMatrix.mkMembership;
|
||||
const roomId = "!someroom";
|
||||
const alice = "@alice:example.org";
|
||||
const ts0 = Date.now();
|
||||
@@ -363,8 +365,7 @@ describe('MessagePanel', function() {
|
||||
|
||||
it('shows a ghost read-marker when the read-marker moves', function(done) {
|
||||
// fake the clock so that we can test the velocity animation.
|
||||
clock.install();
|
||||
clock.mockDate();
|
||||
clock = FakeTimers.install();
|
||||
|
||||
const parentDiv = document.createElement('div');
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import ReactDOM from 'react-dom';
|
||||
import ReactTestUtils from 'react-dom/test-utils';
|
||||
import sdk from '../../../skinned-sdk';
|
||||
import SdkConfig from '../../../../src/SdkConfig';
|
||||
import {mkServerConfig} from "../../../test-utils";
|
||||
import { mkServerConfig } from "../../../test-utils";
|
||||
|
||||
const Login = sdk.getComponent(
|
||||
'structures.auth.Login',
|
||||
|
||||
@@ -19,7 +19,7 @@ import ReactDOM from 'react-dom';
|
||||
import ReactTestUtils from 'react-dom/test-utils';
|
||||
import sdk from '../../../skinned-sdk';
|
||||
import SdkConfig from '../../../../src/SdkConfig';
|
||||
import {mkServerConfig} from "../../../test-utils";
|
||||
import { mkServerConfig } from "../../../test-utils";
|
||||
|
||||
const Registration = sdk.getComponent(
|
||||
'structures.auth.Registration',
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
import React from 'react';
|
||||
|
||||
export default function({displayName = "StubComponent", render} = {}) {
|
||||
export default function({ displayName = "StubComponent", render } = {}) {
|
||||
if (!render) {
|
||||
render = function() {
|
||||
return <div>{ displayName }</div>;
|
||||
|
||||
@@ -17,7 +17,7 @@ limitations under the License.
|
||||
import React from 'react';
|
||||
import TestRenderer from 'react-test-renderer';
|
||||
import sdk from '../../../skinned-sdk';
|
||||
import {MatrixClientPeg} from '../../../../src/MatrixClientPeg';
|
||||
import { MatrixClientPeg } from '../../../../src/MatrixClientPeg';
|
||||
import { stubClient } from '../../../test-utils';
|
||||
|
||||
const AccessSecretStorageDialog = sdk.getComponent("dialogs.security.AccessSecretStorageDialog");
|
||||
|
||||
@@ -17,14 +17,14 @@ limitations under the License.
|
||||
import "../../../skinned-sdk";
|
||||
|
||||
import React from "react";
|
||||
import {configure, mount} from "enzyme";
|
||||
import { configure, mount } from "enzyme";
|
||||
import Adapter from "@wojtekmaj/enzyme-adapter-react-17";
|
||||
import {act} from "react-dom/test-utils";
|
||||
import { act } from "react-dom/test-utils";
|
||||
|
||||
import * as TestUtils from "../../../test-utils";
|
||||
import {MatrixClientPeg} from "../../../../src/MatrixClientPeg";
|
||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||
import DMRoomMap from "../../../../src/utils/DMRoomMap";
|
||||
import {RoomPermalinkCreator} from "../../../../src/utils/permalinks/Permalinks";
|
||||
import { RoomPermalinkCreator } from "../../../../src/utils/permalinks/Permalinks";
|
||||
import ForwardDialog from "../../../../src/components/views/dialogs/ForwardDialog";
|
||||
|
||||
configure({ adapter: new Adapter() });
|
||||
|
||||
@@ -20,10 +20,10 @@ import ReactTestUtils from 'react-dom/test-utils';
|
||||
import MatrixReactTestUtils from 'matrix-react-test-utils';
|
||||
|
||||
import sdk from '../../../skinned-sdk';
|
||||
import {MatrixClientPeg} from '../../../../src/MatrixClientPeg';
|
||||
import { MatrixClientPeg } from '../../../../src/MatrixClientPeg';
|
||||
|
||||
import * as test_utils from '../../../test-utils';
|
||||
import {sleep} from "../../../../src/utils/promise";
|
||||
import * as TestUtilsMatrix from '../../../test-utils';
|
||||
import { sleep } from "../../../../src/utils/promise";
|
||||
|
||||
const InteractiveAuthDialog = sdk.getComponent(
|
||||
'views.dialogs.InteractiveAuthDialog',
|
||||
@@ -33,7 +33,7 @@ describe('InteractiveAuthDialog', function() {
|
||||
let parentDiv;
|
||||
|
||||
beforeEach(function() {
|
||||
test_utils.stubClient();
|
||||
TestUtilsMatrix.stubClient();
|
||||
parentDiv = document.createElement('div');
|
||||
document.body.appendChild(parentDiv);
|
||||
});
|
||||
@@ -45,11 +45,11 @@ describe('InteractiveAuthDialog', function() {
|
||||
|
||||
it('Should successfully complete a password flow', function() {
|
||||
const onFinished = jest.fn();
|
||||
const doRequest = jest.fn().mockResolvedValue({a: 1});
|
||||
const doRequest = jest.fn().mockResolvedValue({ a: 1 });
|
||||
|
||||
// tell the stub matrixclient to return a real userid
|
||||
const client = MatrixClientPeg.get();
|
||||
client.credentials = {userId: "@user:id"};
|
||||
client.credentials = { userId: "@user:id" };
|
||||
|
||||
const dlg = ReactDOM.render(
|
||||
<InteractiveAuthDialog
|
||||
@@ -57,7 +57,7 @@ describe('InteractiveAuthDialog', function() {
|
||||
authData={{
|
||||
session: "sess",
|
||||
flows: [
|
||||
{"stages": ["m.login.password"]},
|
||||
{ "stages": ["m.login.password"] },
|
||||
],
|
||||
}}
|
||||
makeRequest={doRequest}
|
||||
@@ -105,7 +105,7 @@ describe('InteractiveAuthDialog', function() {
|
||||
return sleep(1);
|
||||
}).then(sleep(1)).then(() => {
|
||||
expect(onFinished).toBeCalledTimes(1);
|
||||
expect(onFinished).toBeCalledWith(true, {a: 1});
|
||||
expect(onFinished).toBeCalledWith(true, { a: 1 });
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -90,7 +90,7 @@ describe('MemberEventListSummary', function() {
|
||||
|
||||
it('renders expanded events if there are less than props.threshold', function() {
|
||||
const events = generateEvents([
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
]);
|
||||
const props = {
|
||||
events: events,
|
||||
@@ -112,8 +112,8 @@ describe('MemberEventListSummary', function() {
|
||||
|
||||
it('renders expanded events if there are less than props.threshold', function() {
|
||||
const events = generateEvents([
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
]);
|
||||
const props = {
|
||||
events: events,
|
||||
@@ -136,9 +136,9 @@ describe('MemberEventListSummary', function() {
|
||||
|
||||
it('renders collapsed events if events.length = props.threshold', function() {
|
||||
const events = generateEvents([
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
]);
|
||||
const props = {
|
||||
events: events,
|
||||
@@ -161,20 +161,20 @@ describe('MemberEventListSummary', function() {
|
||||
|
||||
it('truncates long join,leave repetitions', function() {
|
||||
const events = generateEvents([
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
]);
|
||||
const props = {
|
||||
events: events,
|
||||
@@ -203,20 +203,20 @@ describe('MemberEventListSummary', function() {
|
||||
membership: "leave",
|
||||
senderId: "@some_other_user:some.domain",
|
||||
},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{
|
||||
userId: "@user_1:some.domain",
|
||||
prevMembership: "leave",
|
||||
@@ -253,22 +253,22 @@ describe('MemberEventListSummary', function() {
|
||||
membership: "leave",
|
||||
senderId: "@some_other_user:some.domain",
|
||||
},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{
|
||||
userId: "@user_1:some.domain",
|
||||
prevMembership: "leave",
|
||||
membership: "ban",
|
||||
senderId: "@some_other_user:some.domain",
|
||||
},
|
||||
{userId: "@user_1:some.domain", prevMembership: "ban", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "ban", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{
|
||||
userId: "@user_1:some.domain",
|
||||
prevMembership: "leave",
|
||||
@@ -307,10 +307,10 @@ describe('MemberEventListSummary', function() {
|
||||
membership: "leave",
|
||||
senderId: "@some_other_user:some.domain",
|
||||
},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{
|
||||
userId: "@user_1:some.domain",
|
||||
prevMembership: "leave",
|
||||
@@ -324,10 +324,10 @@ describe('MemberEventListSummary', function() {
|
||||
membership: "leave",
|
||||
senderId: "@some_other_user:some.domain",
|
||||
},
|
||||
{userId: "@user_2:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_2:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_2:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_2:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_2:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_2:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_2:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_2:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{
|
||||
userId: "@user_2:some.domain",
|
||||
prevMembership: "leave",
|
||||
@@ -363,10 +363,10 @@ describe('MemberEventListSummary', function() {
|
||||
membership: "leave",
|
||||
senderId: "@some_other_user:some.domain",
|
||||
},
|
||||
{prevMembership: "leave", membership: "join"},
|
||||
{prevMembership: "join", membership: "leave"},
|
||||
{prevMembership: "leave", membership: "join"},
|
||||
{prevMembership: "join", membership: "leave"},
|
||||
{ prevMembership: "leave", membership: "join" },
|
||||
{ prevMembership: "join", membership: "leave" },
|
||||
{ prevMembership: "leave", membership: "join" },
|
||||
{ prevMembership: "join", membership: "leave" },
|
||||
{
|
||||
prevMembership: "leave",
|
||||
membership: "ban",
|
||||
@@ -408,20 +408,20 @@ describe('MemberEventListSummary', function() {
|
||||
membership: "leave",
|
||||
senderId: "@some_other_user:some.domain",
|
||||
},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{
|
||||
userId: "@user_1:some.domain",
|
||||
prevMembership: "leave",
|
||||
membership: "ban",
|
||||
senderId: "@some_other_user:some.domain",
|
||||
},
|
||||
{userId: "@user_2:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_2:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{userId: "@user_2:some.domain", prevMembership: "leave", membership: "join"},
|
||||
{userId: "@user_2:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_2:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_2:some.domain", prevMembership: "join", membership: "leave" },
|
||||
{ userId: "@user_2:some.domain", prevMembership: "leave", membership: "join" },
|
||||
{ userId: "@user_2:some.domain", prevMembership: "join", membership: "leave" },
|
||||
]);
|
||||
const props = {
|
||||
events: events,
|
||||
@@ -448,11 +448,11 @@ describe('MemberEventListSummary', function() {
|
||||
it('correctly identifies transitions', function() {
|
||||
const events = generateEvents([
|
||||
// invited
|
||||
{userId: "@user_1:some.domain", membership: "invite"},
|
||||
{ userId: "@user_1:some.domain", membership: "invite" },
|
||||
// banned
|
||||
{userId: "@user_1:some.domain", membership: "ban"},
|
||||
{ userId: "@user_1:some.domain", membership: "ban" },
|
||||
// joined
|
||||
{userId: "@user_1:some.domain", membership: "join"},
|
||||
{ userId: "@user_1:some.domain", membership: "join" },
|
||||
// invite_reject
|
||||
{
|
||||
userId: "@user_1:some.domain",
|
||||
@@ -460,7 +460,7 @@ describe('MemberEventListSummary', function() {
|
||||
membership: "leave",
|
||||
},
|
||||
// left
|
||||
{userId: "@user_1:some.domain", prevMembership: "join", membership: "leave"},
|
||||
{ userId: "@user_1:some.domain", prevMembership: "join", membership: "leave" },
|
||||
// invite_withdrawal
|
||||
{
|
||||
userId: "@user_1:some.domain",
|
||||
@@ -602,10 +602,10 @@ describe('MemberEventListSummary', function() {
|
||||
|
||||
it('handles a summary length = 2, with no "others"', function() {
|
||||
const events = generateEvents([
|
||||
{userId: "@user_1:some.domain", membership: "join"},
|
||||
{userId: "@user_1:some.domain", membership: "join"},
|
||||
{userId: "@user_2:some.domain", membership: "join"},
|
||||
{userId: "@user_2:some.domain", membership: "join"},
|
||||
{ userId: "@user_1:some.domain", membership: "join" },
|
||||
{ userId: "@user_1:some.domain", membership: "join" },
|
||||
{ userId: "@user_2:some.domain", membership: "join" },
|
||||
{ userId: "@user_2:some.domain", membership: "join" },
|
||||
]);
|
||||
const props = {
|
||||
events: events,
|
||||
@@ -630,9 +630,9 @@ describe('MemberEventListSummary', function() {
|
||||
|
||||
it('handles a summary length = 2, with 1 "other"', function() {
|
||||
const events = generateEvents([
|
||||
{userId: "@user_1:some.domain", membership: "join"},
|
||||
{userId: "@user_2:some.domain", membership: "join"},
|
||||
{userId: "@user_3:some.domain", membership: "join"},
|
||||
{ userId: "@user_1:some.domain", membership: "join" },
|
||||
{ userId: "@user_2:some.domain", membership: "join" },
|
||||
{ userId: "@user_3:some.domain", membership: "join" },
|
||||
]);
|
||||
const props = {
|
||||
events: events,
|
||||
@@ -657,7 +657,7 @@ describe('MemberEventListSummary', function() {
|
||||
|
||||
it('handles a summary length = 2, with many "others"', function() {
|
||||
const events = generateEventsForUsers("@user_$:some.domain", 20, [
|
||||
{membership: "join"},
|
||||
{ membership: "join" },
|
||||
]);
|
||||
const props = {
|
||||
events: events,
|
||||
|
||||
@@ -19,7 +19,7 @@ import ReactDOM from "react-dom";
|
||||
import ReactTestUtils from "react-dom/test-utils";
|
||||
|
||||
import MockHttpBackend from "matrix-mock-request";
|
||||
import {MatrixClientPeg} from "../../../../src/MatrixClientPeg";
|
||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||
import sdk from "../../../skinned-sdk";
|
||||
import Matrix from "matrix-js-sdk";
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ import Adapter from "@wojtekmaj/enzyme-adapter-react-17";
|
||||
import { configure, mount } from "enzyme";
|
||||
|
||||
import sdk from "../../../skinned-sdk";
|
||||
import {mkEvent, mkStubRoom} from "../../../test-utils";
|
||||
import {MatrixClientPeg} from "../../../../src/MatrixClientPeg";
|
||||
import { mkEvent, mkStubRoom } from "../../../test-utils";
|
||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||
import * as languageHandler from "../../../../src/languageHandler";
|
||||
|
||||
const TextualBody = sdk.getComponent("views.messages.TextualBody");
|
||||
@@ -343,4 +343,3 @@ describe("<TextualBody />", () => {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -1,21 +1,36 @@
|
||||
/*
|
||||
Copyright 2021 Šimon Brandner <simon.bra.ag@gmail.com>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import ReactTestUtils from 'react-dom/test-utils';
|
||||
import ReactDOM from 'react-dom';
|
||||
|
||||
import * as TestUtils from '../../../test-utils';
|
||||
|
||||
import {MatrixClientPeg} from '../../../../src/MatrixClientPeg';
|
||||
import sdk from '../../../skinned-sdk';
|
||||
|
||||
import {Room, RoomMember, User} from 'matrix-js-sdk';
|
||||
|
||||
import { MatrixClientPeg } from '../../../../src/MatrixClientPeg';
|
||||
import { Room } from 'matrix-js-sdk/src/models/room';
|
||||
import { RoomMember } from 'matrix-js-sdk/src/models/room-member';
|
||||
import { User } from "matrix-js-sdk/src/models/user";
|
||||
import { compare } from "../../../../src/utils/strings";
|
||||
import MemberList from "../../../../src/components/views/rooms/MemberList";
|
||||
|
||||
function generateRoomId() {
|
||||
return '!' + Math.random().toString().slice(2, 10) + ':domain';
|
||||
}
|
||||
|
||||
|
||||
describe('MemberList', () => {
|
||||
function createRoom(opts) {
|
||||
const room = new Room(generateRoomId(), null, client.getUserId());
|
||||
@@ -97,13 +112,19 @@ describe('MemberList', () => {
|
||||
memberListRoom.currentState.members[member.userId] = member;
|
||||
}
|
||||
|
||||
const MemberList = sdk.getComponent('views.rooms.MemberList');
|
||||
const WrappedMemberList = TestUtils.wrapInMatrixClientContext(MemberList);
|
||||
const gatherWrappedRef = (r) => {
|
||||
memberList = r;
|
||||
};
|
||||
root = ReactDOM.render(<WrappedMemberList roomId={memberListRoom.roomId}
|
||||
wrappedRef={gatherWrappedRef} />, parentDiv);
|
||||
root = ReactDOM.render(
|
||||
(
|
||||
<WrappedMemberList
|
||||
roomId={memberListRoom.roomId}
|
||||
wrappedRef={gatherWrappedRef}
|
||||
/>
|
||||
),
|
||||
parentDiv,
|
||||
);
|
||||
});
|
||||
|
||||
afterEach((done) => {
|
||||
@@ -213,8 +234,8 @@ describe('MemberList', () => {
|
||||
});
|
||||
|
||||
// Bypass all the event listeners and skip to the good part
|
||||
memberList._showPresence = enablePresence;
|
||||
memberList._updateListNow();
|
||||
memberList.showPresence = enablePresence;
|
||||
memberList.updateListNow();
|
||||
|
||||
const tiles = ReactTestUtils.scryRenderedComponentsWithType(root, MemberTile);
|
||||
expectOrderedByPresenceAndPowerLevel(tiles, enablePresence);
|
||||
@@ -225,7 +246,7 @@ describe('MemberList', () => {
|
||||
|
||||
// Bypass all the event listeners and skip to the good part
|
||||
memberList._showPresence = enablePresence;
|
||||
memberList._updateListNow();
|
||||
memberList.updateListNow();
|
||||
|
||||
const tiles = ReactTestUtils.scryRenderedComponentsWithType(root, MemberTile);
|
||||
expectOrderedByPresenceAndPowerLevel(tiles, enablePresence);
|
||||
@@ -254,8 +275,8 @@ describe('MemberList', () => {
|
||||
});
|
||||
|
||||
// Bypass all the event listeners and skip to the good part
|
||||
memberList._showPresence = enablePresence;
|
||||
memberList._updateListNow();
|
||||
memberList.showPresence = enablePresence;
|
||||
memberList.updateListNow();
|
||||
|
||||
const tiles = ReactTestUtils.scryRenderedComponentsWithType(root, MemberTile);
|
||||
expectOrderedByPresenceAndPowerLevel(tiles, enablePresence);
|
||||
@@ -273,8 +294,8 @@ describe('MemberList', () => {
|
||||
});
|
||||
|
||||
// Bypass all the event listeners and skip to the good part
|
||||
memberList._showPresence = enablePresence;
|
||||
memberList._updateListNow();
|
||||
memberList.showPresence = enablePresence;
|
||||
memberList.updateListNow();
|
||||
|
||||
const tiles = ReactTestUtils.scryRenderedComponentsWithType(root, MemberTile);
|
||||
expectOrderedByPresenceAndPowerLevel(tiles, enablePresence);
|
||||
@@ -291,4 +312,3 @@ describe('MemberList', () => {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -4,16 +4,15 @@ import ReactDOM from 'react-dom';
|
||||
|
||||
import * as TestUtils from '../../../test-utils';
|
||||
|
||||
import {MatrixClientPeg} from '../../../../src/MatrixClientPeg';
|
||||
import { MatrixClientPeg } from '../../../../src/MatrixClientPeg';
|
||||
import sdk from '../../../skinned-sdk';
|
||||
import { DragDropContext } from 'react-beautiful-dnd';
|
||||
|
||||
import dis from '../../../../src/dispatcher/dispatcher';
|
||||
import DMRoomMap from '../../../../src/utils/DMRoomMap';
|
||||
import GroupStore from '../../../../src/stores/GroupStore';
|
||||
|
||||
import { MatrixClient, Room, RoomMember } from 'matrix-js-sdk';
|
||||
import {DefaultTagID} from "../../../../src/stores/room-list/models";
|
||||
import { DefaultTagID } from "../../../../src/stores/room-list/models";
|
||||
import RoomListStore, { LISTS_UPDATE_EVENT, RoomListStoreClass } from "../../../../src/stores/room-list/RoomListStore";
|
||||
import RoomListLayoutStore from "../../../../src/stores/room-list/RoomListLayoutStore";
|
||||
|
||||
@@ -56,7 +55,7 @@ describe('RoomList', () => {
|
||||
|
||||
TestUtils.stubClient();
|
||||
client = MatrixClientPeg.get();
|
||||
client.credentials = {userId: myUserId};
|
||||
client.credentials = { userId: myUserId };
|
||||
//revert this to prototype method as the test-utils monkey-patches this to return a hardcoded value
|
||||
client.getUserId = MatrixClient.prototype.getUserId;
|
||||
|
||||
@@ -68,14 +67,12 @@ describe('RoomList', () => {
|
||||
const RoomList = sdk.getComponent('views.rooms.RoomList');
|
||||
const WrappedRoomList = TestUtils.wrapInMatrixClientContext(RoomList);
|
||||
root = ReactDOM.render(
|
||||
<DragDropContext>
|
||||
<WrappedRoomList searchFilter="" onResize={() => {}} />
|
||||
</DragDropContext>,
|
||||
<WrappedRoomList searchFilter="" onResize={() => {}} />,
|
||||
parentDiv,
|
||||
);
|
||||
ReactTestUtils.findRenderedComponentWithType(root, RoomList);
|
||||
|
||||
movingRoom = createRoom({name: 'Moving room'});
|
||||
movingRoom = createRoom({ name: 'Moving room' });
|
||||
expect(movingRoom.roomId).not.toBe(null);
|
||||
|
||||
// Mock joined member
|
||||
@@ -86,7 +83,7 @@ describe('RoomList', () => {
|
||||
[client.credentials.userId]: myMember,
|
||||
}[userId]);
|
||||
|
||||
otherRoom = createRoom({name: 'Other room'});
|
||||
otherRoom = createRoom({ name: 'Other room' });
|
||||
myOtherMember = new RoomMember(otherRoom.roomId, myUserId);
|
||||
myOtherMember.membership = 'join';
|
||||
otherRoom.updateMyMembership('join');
|
||||
@@ -98,10 +95,10 @@ describe('RoomList', () => {
|
||||
client.getRooms = () => [
|
||||
movingRoom,
|
||||
otherRoom,
|
||||
createRoom({tags: {'m.favourite': {order: 0.1}}, name: 'Some other room'}),
|
||||
createRoom({tags: {'m.favourite': {order: 0.2}}, name: 'Some other room 2'}),
|
||||
createRoom({tags: {'m.lowpriority': {}}, name: 'Some unimportant room'}),
|
||||
createRoom({tags: {'custom.tag': {}}, name: 'Some room customly tagged'}),
|
||||
createRoom({ tags: { 'm.favourite': { order: 0.1 } }, name: 'Some other room' }),
|
||||
createRoom({ tags: { 'm.favourite': { order: 0.2 } }, name: 'Some other room 2' }),
|
||||
createRoom({ tags: { 'm.lowpriority': {} }, name: 'Some unimportant room' }),
|
||||
createRoom({ tags: { 'custom.tag': {} }, name: 'Some room customly tagged' }),
|
||||
];
|
||||
client.getVisibleRooms = client.getRooms;
|
||||
|
||||
@@ -141,7 +138,7 @@ describe('RoomList', () => {
|
||||
let expectedRoomTile;
|
||||
try {
|
||||
const roomTiles = ReactTestUtils.scryRenderedComponentsWithType(containingSubList, RoomTile);
|
||||
console.info({roomTiles: roomTiles.length});
|
||||
console.info({ roomTiles: roomTiles.length });
|
||||
expectedRoomTile = roomTiles.find((tile) => tile.props.room === room);
|
||||
} catch (err) {
|
||||
// truncate the error message because it's spammy
|
||||
@@ -167,7 +164,7 @@ describe('RoomList', () => {
|
||||
// Set up the room that will be moved such that it has the correct state for a room in
|
||||
// the section for oldTagId
|
||||
if (oldTagId === DefaultTagID.Favourite || oldTagId === DefaultTagID.LowPriority) {
|
||||
movingRoom.tags = {[oldTagId]: {}};
|
||||
movingRoom.tags = { [oldTagId]: {} };
|
||||
} else if (oldTagId === DefaultTagID.DM) {
|
||||
// Mock inverse m.direct
|
||||
DMRoomMap.shared().roomToUser = {
|
||||
@@ -175,13 +172,13 @@ describe('RoomList', () => {
|
||||
};
|
||||
}
|
||||
|
||||
dis.dispatch({action: 'MatrixActions.sync', prevState: null, state: 'PREPARED', matrixClient: client});
|
||||
dis.dispatch({ action: 'MatrixActions.sync', prevState: null, state: 'PREPARED', matrixClient: client });
|
||||
|
||||
expectRoomInSubList(movingRoom, srcSubListTest);
|
||||
|
||||
dis.dispatch({action: 'RoomListActions.tagRoom.pending', request: {
|
||||
dis.dispatch({ action: 'RoomListActions.tagRoom.pending', request: {
|
||||
oldTagId, newTagId, room: movingRoom,
|
||||
}});
|
||||
} });
|
||||
|
||||
expectRoomInSubList(movingRoom, destSubListTest);
|
||||
}
|
||||
@@ -282,11 +279,11 @@ describe('RoomList', () => {
|
||||
// We also have to mock the client's getGroup function for the room list to filter it.
|
||||
// It's not smart enough to tell the difference between a real group and a template though.
|
||||
client.getGroup = (groupId) => {
|
||||
return {groupId};
|
||||
return { groupId };
|
||||
};
|
||||
|
||||
// Select tag
|
||||
dis.dispatch({action: 'select_tag', tag: '+group:domain'}, true);
|
||||
dis.dispatch({ action: 'select_tag', tag: '+group:domain' }, true);
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
@@ -312,4 +309,3 @@ describe('RoomList', () => {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -3,10 +3,9 @@ import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import * as testUtils from '../../../test-utils';
|
||||
import sdk from '../../../skinned-sdk';
|
||||
import {MatrixClientPeg} from '../../../../src/MatrixClientPeg';
|
||||
import { MatrixClientPeg } from '../../../../src/MatrixClientPeg';
|
||||
import SettingsStore from '../../../../src/settings/SettingsStore';
|
||||
|
||||
|
||||
describe.skip('RoomSettings', () => {
|
||||
const WrappedRoomSettings = testUtils.wrapInMatrixClientContext(sdk.getComponent('views.rooms.RoomSettings'));
|
||||
|
||||
@@ -36,7 +35,7 @@ describe.skip('RoomSettings', () => {
|
||||
beforeEach(function(done) {
|
||||
testUtils.stubClient();
|
||||
client = MatrixClientPeg.get();
|
||||
client.credentials = {userId: '@me:domain.com'};
|
||||
client.credentials = { userId: '@me:domain.com' };
|
||||
|
||||
client.setRoomName = jest.fn().mockReturnValue(Promise.resolve());
|
||||
client.setRoomTopic = jest.fn().mockReturnValue(Promise.resolve());
|
||||
@@ -128,7 +127,7 @@ describe.skip('RoomSettings', () => {
|
||||
roomSettings.save().then(() => {
|
||||
expectSentStateEvent(
|
||||
"!DdJkzRliezrwpNebLk:matrix.org",
|
||||
"m.room.history_visibility", {history_visibility: historyVisibility},
|
||||
"m.room.history_visibility", { history_visibility: historyVisibility },
|
||||
);
|
||||
done();
|
||||
});
|
||||
|
||||
@@ -18,18 +18,18 @@ import '../../../skinned-sdk'; // Must be first for skinning to work
|
||||
import Adapter from "@wojtekmaj/enzyme-adapter-react-17";
|
||||
import { configure, mount } from "enzyme";
|
||||
import React from "react";
|
||||
import {act} from "react-dom/test-utils";
|
||||
import { act } from "react-dom/test-utils";
|
||||
import SendMessageComposer, {
|
||||
createMessageContent,
|
||||
isQuickReaction,
|
||||
} from "../../../../src/components/views/rooms/SendMessageComposer";
|
||||
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
||||
import EditorModel from "../../../../src/editor/model";
|
||||
import {createPartCreator, createRenderer} from "../../../editor/mock";
|
||||
import {createTestClient, mkEvent, mkStubRoom} from "../../../test-utils";
|
||||
import { createPartCreator, createRenderer } from "../../../editor/mock";
|
||||
import { createTestClient, mkEvent, mkStubRoom } from "../../../test-utils";
|
||||
import BasicMessageComposer from "../../../../src/components/views/rooms/BasicMessageComposer";
|
||||
import {MatrixClientPeg} from "../../../../src/MatrixClientPeg";
|
||||
import {sleep} from "../../../../src/utils/promise";
|
||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||
import { sleep } from "../../../../src/utils/promise";
|
||||
import SpecPermalinkConstructor from "../../../../src/utils/permalinks/SpecPermalinkConstructor";
|
||||
import defaultDispatcher from "../../../../src/dispatcher/dispatcher";
|
||||
|
||||
@@ -43,7 +43,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
|
||||
it("sends plaintext messages correctly", () => {
|
||||
const model = new EditorModel([], createPartCreator(), createRenderer());
|
||||
model.update("hello world", "insertText", {offset: 11, atNodeEnd: true});
|
||||
model.update("hello world", "insertText", { offset: 11, atNodeEnd: true });
|
||||
|
||||
const content = createMessageContent(model, permalinkCreator);
|
||||
|
||||
@@ -55,7 +55,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
|
||||
it("sends markdown messages correctly", () => {
|
||||
const model = new EditorModel([], createPartCreator(), createRenderer());
|
||||
model.update("hello *world*", "insertText", {offset: 13, atNodeEnd: true});
|
||||
model.update("hello *world*", "insertText", { offset: 13, atNodeEnd: true });
|
||||
|
||||
const content = createMessageContent(model, permalinkCreator);
|
||||
|
||||
@@ -69,7 +69,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
|
||||
it("strips /me from messages and marks them as m.emote accordingly", () => {
|
||||
const model = new EditorModel([], createPartCreator(), createRenderer());
|
||||
model.update("/me blinks __quickly__", "insertText", {offset: 22, atNodeEnd: true});
|
||||
model.update("/me blinks __quickly__", "insertText", { offset: 22, atNodeEnd: true });
|
||||
|
||||
const content = createMessageContent(model, permalinkCreator);
|
||||
|
||||
@@ -83,7 +83,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
|
||||
it("allows sending double-slash escaped slash commands correctly", () => {
|
||||
const model = new EditorModel([], createPartCreator(), createRenderer());
|
||||
model.update("//dev/null is my favourite place", "insertText", {offset: 32, atNodeEnd: true});
|
||||
model.update("//dev/null is my favourite place", "insertText", { offset: 32, atNodeEnd: true });
|
||||
|
||||
const content = createMessageContent(model, permalinkCreator);
|
||||
|
||||
@@ -147,7 +147,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
wrapper.update();
|
||||
});
|
||||
|
||||
const key = wrapper.find(SendMessageComposer).instance()._editorStateKey;
|
||||
const key = wrapper.find(SendMessageComposer).instance().editorStateKey;
|
||||
|
||||
expect(wrapper.text()).toBe("Test Text");
|
||||
expect(localStorage.getItem(key)).toBeNull();
|
||||
@@ -155,7 +155,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
// ensure the right state was persisted to localStorage
|
||||
wrapper.unmount();
|
||||
expect(JSON.parse(localStorage.getItem(key))).toStrictEqual({
|
||||
parts: [{"type": "plain", "text": "Test Text"}],
|
||||
parts: [{ "type": "plain", "text": "Test Text" }],
|
||||
replyEventId: mockEvent.getId(),
|
||||
});
|
||||
|
||||
@@ -188,7 +188,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
wrapper.update();
|
||||
});
|
||||
|
||||
const key = wrapper.find(SendMessageComposer).instance()._editorStateKey;
|
||||
const key = wrapper.find(SendMessageComposer).instance().editorStateKey;
|
||||
|
||||
expect(wrapper.text()).toBe("Hello World");
|
||||
expect(localStorage.getItem(key)).toBeNull();
|
||||
@@ -196,7 +196,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
// ensure the right state was persisted to localStorage
|
||||
window.dispatchEvent(new Event('beforeunload'));
|
||||
expect(JSON.parse(localStorage.getItem(key))).toStrictEqual({
|
||||
parts: [{"type": "plain", "text": "Hello World"}],
|
||||
parts: [{ "type": "plain", "text": "Hello World" }],
|
||||
});
|
||||
});
|
||||
|
||||
@@ -225,7 +225,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
expect(wrapper.text()).toBe("");
|
||||
const str = sessionStorage.getItem(`mx_cider_history_${mockRoom.roomId}[0]`);
|
||||
expect(JSON.parse(str)).toStrictEqual({
|
||||
parts: [{"type": "plain", "text": "This is a message"}],
|
||||
parts: [{ "type": "plain", "text": "This is a message" }],
|
||||
replyEventId: mockEvent.getId(),
|
||||
});
|
||||
});
|
||||
@@ -234,7 +234,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
describe("isQuickReaction", () => {
|
||||
it("correctly detects quick reaction", () => {
|
||||
const model = new EditorModel([], createPartCreator(), createRenderer());
|
||||
model.update("+😊", "insertText", {offset: 3, atNodeEnd: true});
|
||||
model.update("+😊", "insertText", { offset: 3, atNodeEnd: true });
|
||||
|
||||
const isReaction = isQuickReaction(model);
|
||||
|
||||
@@ -243,7 +243,7 @@ describe('<SendMessageComposer/>', () => {
|
||||
|
||||
it("correctly detects quick reaction with space", () => {
|
||||
const model = new EditorModel([], createPartCreator(), createRenderer());
|
||||
model.update("+ 😊", "insertText", {offset: 4, atNodeEnd: true});
|
||||
model.update("+ 😊", "insertText", { offset: 4, atNodeEnd: true });
|
||||
|
||||
const isReaction = isQuickReaction(model);
|
||||
|
||||
@@ -255,10 +255,10 @@ describe('<SendMessageComposer/>', () => {
|
||||
const model2 = new EditorModel([], createPartCreator(), createRenderer());
|
||||
const model3 = new EditorModel([], createPartCreator(), createRenderer());
|
||||
const model4 = new EditorModel([], createPartCreator(), createRenderer());
|
||||
model.update("+😊hello", "insertText", {offset: 8, atNodeEnd: true});
|
||||
model2.update(" +😊", "insertText", {offset: 4, atNodeEnd: true});
|
||||
model3.update("+ 😊😊", "insertText", {offset: 6, atNodeEnd: true});
|
||||
model4.update("+smiley", "insertText", {offset: 7, atNodeEnd: true});
|
||||
model.update("+😊hello", "insertText", { offset: 8, atNodeEnd: true });
|
||||
model2.update(" +😊", "insertText", { offset: 4, atNodeEnd: true });
|
||||
model3.update("+ 😊😊", "insertText", { offset: 6, atNodeEnd: true });
|
||||
model4.update("+smiley", "insertText", { offset: 7, atNodeEnd: true });
|
||||
|
||||
expect(isQuickReaction(model)).toBeFalsy();
|
||||
expect(isQuickReaction(model2)).toBeFalsy();
|
||||
@@ -268,4 +268,3 @@ describe('<SendMessageComposer/>', () => {
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user