From bd209848a39c00fc23975274ef8ef82f6814f4de Mon Sep 17 00:00:00 2001 From: gnuxie Date: Wed, 18 Sep 2024 15:37:45 +0100 Subject: [PATCH] Fix integration test fixtures now safe mode toggle controls draupnir. --- test/integration/fixtures.ts | 12 +----------- test/integration/manualLaunchScript.ts | 9 ++++----- test/integration/mjolnirSetupUtils.ts | 15 ++++++++++++++- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/test/integration/fixtures.ts b/test/integration/fixtures.ts index efaca9a5..5402f4d8 100644 --- a/test/integration/fixtures.ts +++ b/test/integration/fixtures.ts @@ -46,22 +46,12 @@ export const mochaHooks = { this.timeout(30000); const config = (this.config = configRead()); this.managementRoomAlias = config.managementRoom; - this.draupnir = await makeMjolnir(config); + this.draupnir = await makeMjolnir(config, { eraseAccountData: true }); const draupnirMatrixClient = draupnirClient(); if (draupnirMatrixClient === null) { throw new TypeError(`setup code is broken`); } config.RUNTIME.client = draupnirMatrixClient; - await Promise.all([ - this.draupnir.client.setAccountData( - MJOLNIR_PROTECTED_ROOMS_EVENT_TYPE, - { rooms: [] } - ), - this.draupnir.client.setAccountData( - MJOLNIR_WATCHED_POLICY_ROOMS_EVENT_TYPE, - { references: [] } - ), - ]); await this.draupnir.start(); this.apis = constructWebAPIs(this.draupnir); await this.apis.start(); diff --git a/test/integration/manualLaunchScript.ts b/test/integration/manualLaunchScript.ts index 9993b2c6..fcddf5dd 100644 --- a/test/integration/manualLaunchScript.ts +++ b/test/integration/manualLaunchScript.ts @@ -21,13 +21,12 @@ import { DefaultEventDecoder, Task } from "matrix-protection-suite"; void (async () => { const config = configRead(); - const mjolnir = await makeMjolnir( - config, - new SqliteRoomStateBackingStore( + const mjolnir = await makeMjolnir(config, { + backingStore: new SqliteRoomStateBackingStore( path.join(config.dataPath, "room-state-backing-store.db"), DefaultEventDecoder - ) - ); + ), + }); console.info(`management room ${mjolnir.managementRoom.toPermalink()}`); const apis = constructWebAPIs(mjolnir); await draupnirClient()?.start(); diff --git a/test/integration/mjolnirSetupUtils.ts b/test/integration/mjolnirSetupUtils.ts index 170cab4b..b0dac89e 100644 --- a/test/integration/mjolnirSetupUtils.ts +++ b/test/integration/mjolnirSetupUtils.ts @@ -27,6 +27,8 @@ import { } from "matrix-protection-suite-for-matrix-bot-sdk"; import { DefaultEventDecoder, + MJOLNIR_PROTECTED_ROOMS_EVENT_TYPE, + MJOLNIR_WATCHED_POLICY_ROOMS_EVENT_TYPE, RoomStateBackingStore, } from "matrix-protection-suite"; import { WebAPIs } from "../../src/webapis/WebAPIs"; @@ -121,7 +123,10 @@ let globalSafeEmitter: SafeMatrixEmitter | undefined; */ export async function makeMjolnir( config: IConfig, - backingStore?: RoomStateBackingStore + { + backingStore, + eraseAccountData, + }: { backingStore?: RoomStateBackingStore; eraseAccountData?: boolean } = {} ): Promise { await configureMjolnir(config); LogService.setLogger(new RichConsoleLogger()); @@ -135,6 +140,14 @@ export async function makeMjolnir( config.pantalaimon.username, config.pantalaimon.password ); + if (eraseAccountData) { + await Promise.all([ + client.setAccountData(MJOLNIR_PROTECTED_ROOMS_EVENT_TYPE, { rooms: [] }), + client.setAccountData(MJOLNIR_WATCHED_POLICY_ROOMS_EVENT_TYPE, { + references: [], + }), + ]); + } await overrideRatelimitForUser( config.homeserverUrl, await client.getUserId()