diff --git a/apps/draupnir/test/appservice/utils/harness.ts b/apps/draupnir/test/appservice/utils/harness.ts index da047d2c..ff868f7b 100644 --- a/apps/draupnir/test/appservice/utils/harness.ts +++ b/apps/draupnir/test/appservice/utils/harness.ts @@ -37,6 +37,7 @@ export async function setupHarnessWithConfig( ): Promise { const utilityUser = await newTestUser(config.homeserver.url, { name: { contains: "utility" }, + isAdmin: true, }); if ( typeof config.adminRoom !== "string" || @@ -46,7 +47,19 @@ export async function setupHarnessWithConfig( "This test expects the harness config to have a room alias." ); } - await ensureAliasedRoomExists(utilityUser, config.adminRoom); + await utilityUser + .deleteRoomAlias(config.adminRoom) + // we ignore errors here because the admin room alias may not exist. Ex wont exist when at clean state. + .catch((_: unknown) => undefined); + const adminRoomID = await ensureAliasedRoomExists( + utilityUser, + config.adminRoom + ); + await utilityUser.setUserPowerLevel( + "@draupnir-moderation:localhost:9999", + adminRoomID, + 100 + ); return await MjolnirAppService.run( 9000, config, diff --git a/apps/draupnir/test/integration/mjolnirSetupUtils.ts b/apps/draupnir/test/integration/mjolnirSetupUtils.ts index aa98198d..33a18ae0 100644 --- a/apps/draupnir/test/integration/mjolnirSetupUtils.ts +++ b/apps/draupnir/test/integration/mjolnirSetupUtils.ts @@ -33,6 +33,7 @@ import { } from "matrix-protection-suite"; import { SafeModeDraupnir } from "../../src/safemode/DraupnirSafeMode"; import { TopLevelStores } from "../../src/backingstore/DraupnirStores"; +import { StringRoomID } from "@the-draupnir-project/matrix-basic-types"; patchMatrixClient(); @@ -67,9 +68,9 @@ export interface DraupnirTestContext extends SafeMochaContext { export async function ensureAliasedRoomExists( client: MatrixClient, alias: string -): Promise { +): Promise { try { - return await client.resolveRoom(alias); + return (await client.resolveRoom(alias)) as StringRoomID; } catch (e) { if (typeof e !== "object" || e === null) { throw new TypeError("Something is throwing garbage"); @@ -81,11 +82,11 @@ export async function ensureAliasedRoomExists( throw e; } console.info(`${alias} hasn't been created yet, so we're making it now.`); - const roomId = await client.createRoom({ + const roomID = await client.createRoom({ visibility: "public", }); - await client.createRoomAlias(alias, roomId); - return roomId; + await client.createRoomAlias(alias, roomID); + return roomID as StringRoomID; } }