mirror of
https://github.com/matrix-org/matrix-hookshot.git
synced 2025-03-10 21:19:13 +00:00

* Add service bots config * Add joined rooms manager and keep track of joined rooms * Add bot users manager and ensure registration and profiles * Improve joined rooms manager and set up already joined rooms * Handle invites with service bots * Handle messages with service bots * Use service bots for connections * Use service bots in widget and provisioning APIs * Use service bots in setup connections * Use service bots for feed connections * Handle admin rooms for service bots * Fix confused event type and service type in provisioning and widget APIs * Fix generic webhooks service name * Fix enabled services config * Handle power level change * Create widgets with service scope * Use service bots for gitlab repo connections * Use service bots for gitlab issue connections * Use service bots for generic webhook connections * Use service bots for figma file connections * Use service bots when verifying state events * Use service bots for github repo connections * Use service bots for github discussion connections * Use service bots for github discussion space connections * Use service bots for github project connections * Use service bots for github issue connections * Use service bots for github user space connections * Use service bots for jira connections * Make sure ghost users are invited for gitlab issue comments * Configure one service per service bot * Add changelog * Update tests * Fix up following rebase * Fix comment * Use getter for enabled services * Ensure homeserver can be reached before registering bots * Add intent getter on bot user * Update config comment * Merge joined rooms manager with bot users manager * Remove unused localpart from bot user class * Refactor to pass in bot users manager * Improve priority sort function Co-authored-by: Christian Paul <christianp@matrix.org> * Fix priority sort Higher priority should come first * Add debug log when invites are rejected * Use different state key for scoped setup widgets * Use different subtitles to differentiate service bots setup widgets * Refactor bot user setup into bot users manager * Refactor to reduce duplication in widget API * Consistent room ID and intent args order * Add docs and update changelog * Add overrideUserId deprecation warning * Add service bots link Co-authored-by: Christian Paul <christianp@matrix.org> Co-authored-by: Will Hunt <will@half-shot.uk>
57 lines
1.6 KiB
TypeScript
57 lines
1.6 KiB
TypeScript
|
|
import { expect } from "chai";
|
|
export class MatrixClientMock {
|
|
async setDisplayName() {
|
|
return;
|
|
}
|
|
}
|
|
|
|
export class IntentMock {
|
|
public readonly underlyingClient = new MatrixClientMock();
|
|
public sentEvents: {roomId: string, content: any}[] = [];
|
|
|
|
constructor(readonly userId: string) {}
|
|
|
|
static create(userId: string){
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
return new this(userId) as any;
|
|
}
|
|
|
|
sendText(roomId: string, noticeText: string, msgtype: string) {
|
|
this.sentEvents.push({
|
|
roomId,
|
|
content: {
|
|
msgtype,
|
|
body: noticeText,
|
|
}
|
|
});
|
|
}
|
|
|
|
sendEvent(roomId: string, content: any) {
|
|
this.sentEvents.push({
|
|
roomId,
|
|
content,
|
|
});
|
|
}
|
|
|
|
expectNoEvent() {
|
|
expect(this.sentEvents, 'Expected no events to be sent.').to.be.empty;
|
|
}
|
|
|
|
expectEventBodyContains(matcher: string|RegExp, eventIndex?: number) {
|
|
if (eventIndex !== undefined) {
|
|
expect(this.sentEvents[eventIndex], `Expected event ${eventIndex} to exist`).to.not.be.undefined;
|
|
const body = this.sentEvents[eventIndex].content.body;
|
|
expect(
|
|
body.includes(matcher),
|
|
`Expected event body ${eventIndex} to match '${matcher}'.\nMessage was: '${body}'`
|
|
).to.be.true;
|
|
}
|
|
expect(!!this.sentEvents.find(ev => ev.content.body.includes(matcher)), `Expected any event body to match '${matcher}'`).to.be.true;
|
|
}
|
|
|
|
async ensureRegistered() {
|
|
return true;
|
|
}
|
|
}
|