From 67e20e24150bccb87f74a55266d224db9f729f2b Mon Sep 17 00:00:00 2001 From: gnuxie Date: Wed, 22 Sep 2021 11:57:45 +0100 Subject: [PATCH] Move files in preperation for mx-tester --- test/harness/mjolnirTesting.ts | 42 ----------------- .../mjolnirSetupUtils.ts} | 46 ++++++++++++++++++- 2 files changed, 45 insertions(+), 43 deletions(-) rename test/{harness/mjolnirSetup.ts => integration/mjolnirSetupUtils.ts} (50%) diff --git a/test/harness/mjolnirTesting.ts b/test/harness/mjolnirTesting.ts index aafe5f38..9c5c9460 100644 --- a/test/harness/mjolnirTesting.ts +++ b/test/harness/mjolnirTesting.ts @@ -67,52 +67,10 @@ async function startSynpase() { console.info('starting synapse.') await compose.upOne('synapse_release', {config: composeConfig, log: true}) await sleep(5000); - await registerUser('mjolnir', 'mjolnir', 'mjolnir', true); await registerUser('admin', 'admin', 'admin', true); } -async function configureMjolnir() { - await fs.copyFile(path.join(__dirname, 'config', 'mjolnir', 'harness.yaml'), path.join(__dirname, '../../config/harness.yaml')); - await fs.rm(path.join(__dirname, 'mjolnir-data'), {recursive: true, force: true}); - await fs.mkdir(path.join(__dirname, 'mjolnir-data')).catch (e => { - if (e.code === 'EEXIST') { - console.debug('mjolnir-data already exists'); - } else { - throw e; - } - }); - const pantalaimon = new PantalaimonClient(config.homeserverUrl, new MemoryStorageProvider()); - const client = await pantalaimon.createClientWithCredentials(config.pantalaimon.username, config.pantalaimon.password); - await mjolnirSetup.ensureManagementRoomExists(client); - return await mjolnirSetup.ensureLobbyRoomExists(client); -} -async function startMjolnir() { - await configureMjolnir(); - console.info('starting mjolnir'); - await import('../../src/index'); -} - -async function registerUser(username: string, displayname: string, password: string, admin: boolean) { - let registerUrl = `${config.homeserverUrl}/_synapse/admin/v1/register` - let { data } = await axios.get(registerUrl); - let nonce = data.nonce!; - let mac = HmacSHA1(`${nonce}\0${username}\0${password}\0${admin ? 'admin' : 'notadmin'}`, 'REGISTRATION_SHARED_SECRET'); - return await axios.post(registerUrl, { - nonce, - username, - displayname, - password, - admin, - mac: mac.toString() - }).catch(e => { - if (e.isAxiosError && e.response.data.errcode === 'M_USER_IN_USE') { - console.log(`${username} already registered, skipping`) - } else { - throw e; - } - }); -} export async function upHarness() { try { diff --git a/test/harness/mjolnirSetup.ts b/test/integration/mjolnirSetupUtils.ts similarity index 50% rename from test/harness/mjolnirSetup.ts rename to test/integration/mjolnirSetupUtils.ts index 9c76f79c..9e3d88ec 100644 --- a/test/harness/mjolnirSetup.ts +++ b/test/integration/mjolnirSetupUtils.ts @@ -16,8 +16,14 @@ limitations under the License. import { MatrixClient, Permalinks, + PantalaimonClient, + MemoryStorageProvider } from "matrix-bot-sdk"; import config from "../../src/config"; +import * as HmacSHA1 from 'crypto-js/hmac-sha1'; +import axios from 'axios'; +import * as path from 'path'; +import * as fs from 'fs/promises'; export async function createManagementRoom(client: MatrixClient) { let roomId = await client.createRoom(); @@ -43,4 +49,42 @@ export async function ensureLobbyRoomExists(client: MatrixClient): Promise { + if (e.isAxiosError && e.response.data.errcode === 'M_USER_IN_USE') { + console.log(`${username} already registered, skipping`) + } else { + throw e; + } + }); +} +