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

* Ensure we verify the raw payload. * changelog * Tidy up types * Add test for GitHib * Mock out GitHub API to allow tests to pass. * Lint
38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { E2ESetupTestTimeout, E2ETestEnv } from "./util/e2e-test";
|
|
import { describe, it, beforeEach, afterEach } from "@jest/globals";
|
|
import { getBridgeApi } from "./util/bridge-api";
|
|
|
|
describe('Widgets', () => {
|
|
let testEnv: E2ETestEnv;
|
|
|
|
beforeEach(async () => {
|
|
const webhooksPort = 9500 + E2ETestEnv.workerId;
|
|
testEnv = await E2ETestEnv.createTestEnv({matrixLocalparts: ['user'], config: {
|
|
widgets: {
|
|
publicUrl: `http://localhost:${webhooksPort}`
|
|
},
|
|
listeners: [{
|
|
port: webhooksPort,
|
|
bindAddress: '0.0.0.0',
|
|
// Bind to the SAME listener to ensure we don't have conflicts.
|
|
resources: ['webhooks', 'widgets'],
|
|
}],
|
|
|
|
}});
|
|
await testEnv.setUp();
|
|
}, E2ESetupTestTimeout);
|
|
|
|
afterEach(() => {
|
|
return testEnv?.tearDown();
|
|
});
|
|
|
|
it('should be able to authenticate with the widget API', async () => {
|
|
const user = testEnv.getUser('user');
|
|
const bridgeApi = await getBridgeApi(testEnv.opts.config?.widgets?.publicUrl!, user);
|
|
expect(await bridgeApi.verify()).toEqual({
|
|
"type": "widget",
|
|
"userId": "@user:hookshot",
|
|
});
|
|
});
|
|
});
|