You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-09 10:22:46 +03:00
Add a catastrophic throw to thread constructor (#2375)
This is an attempt to narrow down https://github.com/vector-im/element-web/issues/22141
This commit is contained in:
28
spec/unit/models/thread.spec.ts
Normal file
28
spec/unit/models/thread.spec.ts
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2022 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.
|
||||||
|
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 { Thread } from "../../../src/models/thread";
|
||||||
|
|
||||||
|
describe('Thread', () => {
|
||||||
|
describe("constructor", () => {
|
||||||
|
it("should explode for element-web#22141 logging", () => {
|
||||||
|
// Logging/debugging for https://github.com/vector-im/element-web/issues/22141
|
||||||
|
expect(() => {
|
||||||
|
new Thread("$event", undefined, {} as any); // deliberate cast to test error case
|
||||||
|
}).toThrow("element-web#22141: A thread requires a room in order to function");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
@@ -79,6 +79,12 @@ export class Thread extends TypedEventEmitter<EmittedEvents, EventHandlerMap> {
|
|||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
|
if (!opts?.room) {
|
||||||
|
// Logging/debugging for https://github.com/vector-im/element-web/issues/22141
|
||||||
|
// Hope is that we end up with a more obvious stack trace.
|
||||||
|
throw new Error("element-web#22141: A thread requires a room in order to function");
|
||||||
|
}
|
||||||
|
|
||||||
this.room = opts.room;
|
this.room = opts.room;
|
||||||
this.client = opts.client;
|
this.client = opts.client;
|
||||||
this.timelineSet = new EventTimelineSet(this.room, {
|
this.timelineSet = new EventTimelineSet(this.room, {
|
||||||
|
Reference in New Issue
Block a user