You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-07-30 04:23:07 +03:00
Include pending events in thread summary and count again (#2922)
* Include pending events in thread summary and count again * Pass through pending event status
This commit is contained in:
committed by
GitHub
parent
43bfa0c020
commit
720248466f
@ -14,11 +14,13 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import { MatrixClient } from "../../../src/client";
|
||||
import { MatrixClient, PendingEventOrdering } from "../../../src/client";
|
||||
import { Room } from "../../../src/models/room";
|
||||
import { Thread } from "../../../src/models/thread";
|
||||
import { Thread, THREAD_RELATION_TYPE, ThreadEvent } from "../../../src/models/thread";
|
||||
import { mkThread } from "../../test-utils/thread";
|
||||
import { TestClient } from "../../TestClient";
|
||||
import { emitPromise, mkMessage } from "../../test-utils/test-utils";
|
||||
import { EventStatus } from "../../../src";
|
||||
|
||||
describe('Thread', () => {
|
||||
describe("constructor", () => {
|
||||
@ -30,6 +32,50 @@ describe('Thread', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it("includes pending events in replyCount", async () => {
|
||||
const myUserId = "@bob:example.org";
|
||||
const testClient = new TestClient(
|
||||
myUserId,
|
||||
"DEVICE",
|
||||
"ACCESS_TOKEN",
|
||||
undefined,
|
||||
{ timelineSupport: false },
|
||||
);
|
||||
const client = testClient.client;
|
||||
const room = new Room("123", client, myUserId, {
|
||||
pendingEventOrdering: PendingEventOrdering.Detached,
|
||||
});
|
||||
|
||||
jest.spyOn(client, "getRoom").mockReturnValue(room);
|
||||
|
||||
const { thread } = mkThread({
|
||||
room,
|
||||
client,
|
||||
authorId: myUserId,
|
||||
participantUserIds: ["@alice:example.org"],
|
||||
length: 3,
|
||||
});
|
||||
await emitPromise(thread, ThreadEvent.Update);
|
||||
expect(thread.length).toBe(2);
|
||||
|
||||
const event = mkMessage({
|
||||
room: room.roomId,
|
||||
user: myUserId,
|
||||
msg: "thread reply",
|
||||
relatesTo: {
|
||||
rel_type: THREAD_RELATION_TYPE.name,
|
||||
event_id: thread.id,
|
||||
},
|
||||
event: true,
|
||||
});
|
||||
await thread.processEvent(event);
|
||||
event.setStatus(EventStatus.SENDING);
|
||||
room.addPendingEvent(event, "txn01");
|
||||
|
||||
await emitPromise(thread, ThreadEvent.Update);
|
||||
expect(thread.length).toBe(3);
|
||||
});
|
||||
|
||||
describe("hasUserReadEvent", () => {
|
||||
const myUserId = "@bob:example.org";
|
||||
let client: MatrixClient;
|
||||
|
Reference in New Issue
Block a user