From 9235f04062abd4004a5e7d9dab4747b3cd9aeef5 Mon Sep 17 00:00:00 2001 From: Dominik Henneke Date: Tue, 1 Aug 2023 15:08:09 +0200 Subject: [PATCH] Format the project with the new prettier rules Signed-off-by: Dominik Henneke --- .prettierrc | 7 - .prettierrc.yaml | 5 + .../widget-server/e2e/container.spec.ts | 2 +- .../widget-server/e2e/fixtures/index.html | 2 +- .../widget-server/e2e/fixtures/index.js | 2 +- example-widget-mui/craco.config.js | 2 +- example-widget-mui/public/index.html | 2 +- .../src/AllRoomsPage/AllRoomsPage.test.tsx | 36 +- .../src/AllRoomsPage/AllRoomsPage.tsx | 2 +- example-widget-mui/src/App/App.test.tsx | 2 +- .../src/DicePage/DicePage.test.tsx | 18 +- example-widget-mui/src/DicePage/DicePage.tsx | 8 +- .../src/IdentityPage/IdentityPage.test.tsx | 30 +- .../src/IdentityPage/IdentityPage.tsx | 4 +- .../InvitationsPage/InvitationsPage.test.tsx | 16 +- .../src/InvitationsPage/InvitationsPage.tsx | 6 +- .../src/ModalPage/ModalDialog.test.tsx | 12 +- .../src/ModalPage/ModalPage.test.tsx | 12 +- .../src/ModalPage/ModalPage.tsx | 2 +- .../NavigationPage/NavigationPage.test.tsx | 2 +- .../PowerLevelsPage/PowerLevelsPage.test.tsx | 28 +- .../src/PowerLevelsPage/PowerLevelsPage.tsx | 14 +- .../PowerLevelsPage/powerLevelsApi.test.ts | 28 +- .../src/PowerLevelsPage/powerLevelsApi.ts | 12 +- .../PowerLevelsPage/roomMembersApi.test.ts | 18 +- .../src/PowerLevelsPage/roomMembersApi.ts | 10 +- .../src/RelationsPage/RelationsPage.test.tsx | 24 +- .../src/RelationsPage/RelationsPage.tsx | 34 +- .../src/RelationsPage/roomMessagesApi.test.ts | 102 +++--- .../src/RelationsPage/roomMessagesApi.ts | 26 +- .../src/RoomPage/RoomPage.test.tsx | 14 +- example-widget-mui/src/RoomPage/RoomPage.tsx | 12 +- .../src/ThemePage/ThemePage.test.tsx | 6 +- .../src/WelcomePage/WelcomePage.test.tsx | 6 +- .../src/events/messageCollectionEvent.test.ts | 6 +- .../src/events/messageCollectionEvent.ts | 4 +- .../src/events/reactionEvent.test.ts | 8 +- .../src/events/reactionEvent.ts | 2 +- .../src/events/roomMessageEvent.test.ts | 6 +- .../src/events/roomMessageEvent.ts | 2 +- .../src/events/roomNameEvent.test.ts | 8 +- .../src/events/roomNameEvent.ts | 2 +- .../src/events/throwDiceEvent.test.ts | 8 +- .../src/events/throwDiceEvent.ts | 2 +- .../src/events/validation.test.ts | 8 +- example-widget-mui/src/events/validation.ts | 2 +- example-widget-mui/src/index.tsx | 4 +- example-widget-semantic-ui/craco.config.js | 2 +- example-widget-semantic-ui/public/index.html | 2 +- .../src/AllRoomsPage/AllRoomsPage.test.tsx | 34 +- .../src/AllRoomsPage/AllRoomsPage.tsx | 2 +- .../src/App/App.test.tsx | 2 +- .../src/DicePage/DicePage.test.tsx | 16 +- .../src/DicePage/DicePage.tsx | 8 +- .../src/IdentityPage/IdentityPage.test.tsx | 24 +- .../src/IdentityPage/IdentityPage.tsx | 4 +- .../src/ModalPage/ModalDialog.test.tsx | 12 +- .../src/ModalPage/ModalPage.test.tsx | 12 +- .../src/ModalPage/ModalPage.tsx | 2 +- .../PowerLevelsPage/PowerLevelsPage.test.tsx | 24 +- .../src/PowerLevelsPage/PowerLevelsPage.tsx | 14 +- .../PowerLevelsPage/powerLevelsApi.test.ts | 28 +- .../src/PowerLevelsPage/powerLevelsApi.ts | 12 +- .../PowerLevelsPage/roomMembersApi.test.ts | 18 +- .../src/PowerLevelsPage/roomMembersApi.ts | 10 +- .../src/RoomPage/RoomPage.test.tsx | 12 +- .../src/RoomPage/RoomPage.tsx | 12 +- .../src/ThemePage/ThemePage.test.tsx | 2 +- .../src/WelcomePage/WelcomePage.test.tsx | 2 +- .../src/events/roomNameEvent.test.ts | 8 +- .../src/events/roomNameEvent.ts | 2 +- .../src/events/throwDiceEvent.test.ts | 8 +- .../src/events/throwDiceEvent.ts | 2 +- .../src/events/validation.test.ts | 8 +- .../src/events/validation.ts | 2 +- example-widget-semantic-ui/src/index.tsx | 4 +- packages/api/README.md | 2 +- packages/api/src/api/WidgetApiImpl.test.ts | 326 +++++++++--------- packages/api/src/api/WidgetApiImpl.ts | 94 ++--- packages/api/src/api/extras/capabilities.ts | 2 +- .../api/src/api/extras/displayName.test.ts | 26 +- packages/api/src/api/extras/displayName.ts | 4 +- packages/api/src/api/extras/events.ts | 2 +- .../api/src/api/extras/navigateTo.test.ts | 12 +- packages/api/src/api/extras/navigateTo.ts | 4 +- packages/api/src/api/extras/originServerTs.ts | 2 +- .../api/src/api/extras/powerLevel.test.ts | 54 +-- packages/api/src/api/extras/powerLevel.ts | 22 +- .../api/src/api/extras/redactions.test.ts | 2 +- packages/api/src/api/extras/redactions.ts | 8 +- packages/api/src/api/extras/relatesTo.test.ts | 12 +- packages/api/src/api/extras/relatesTo.ts | 2 +- packages/api/src/api/extras/roomMember.ts | 2 +- packages/api/src/api/parameters.test.ts | 18 +- packages/api/src/api/parameters.ts | 6 +- packages/api/src/api/registration.test.ts | 26 +- packages/api/src/api/registration.ts | 14 +- packages/api/src/api/types.ts | 32 +- packages/api/src/api/utils.test.ts | 6 +- packages/api/src/api/utils.ts | 4 +- packages/mui/README.md | 2 +- .../ElementAvatar/ElementAvatar.test.tsx | 14 +- .../ElementAvatar/ElementAvatar.tsx | 2 +- .../ElementAvatar/createAvatarUrl.test.ts | 12 +- .../ElementAvatar/createAvatarUrl.ts | 6 +- .../ElementAvatar/getInitialLetter.test.ts | 2 +- .../MissingCapabilitiesError.test.tsx | 4 +- .../MissingCapabilitiesError.tsx | 4 +- .../MuiCapabilitiesGuard.test.tsx | 4 +- .../MuiThemeProvider.test.tsx | 4 +- .../MuiThemeProvider/MuiThemeProvider.tsx | 2 +- .../MuiThemeProvider/environment.test.ts | 2 +- .../MuiThemeProvider/environment.ts | 4 +- .../MuiThemeProvider/theme.test.tsx | 108 +++--- .../MuiWidgetApiProvider/ChildError.test.tsx | 2 +- .../MuiWidgetApiProvider/ChildError.tsx | 2 +- .../CopyableCode.test.tsx | 2 +- .../MissingParametersError.test.tsx | 18 +- .../MissingParametersError.tsx | 10 +- .../MobileClientError.test.tsx | 4 +- .../MobileClientError.tsx | 2 +- .../MuiWidgetApiProvider.test.tsx | 4 +- .../OutsideClientError.test.tsx | 2 +- .../OutsideClientError.tsx | 2 +- .../CapabilitiesGuard.test.tsx | 10 +- .../CapabilitiesGuard/CapabilitiesGuard.tsx | 2 +- .../ThemeSelectionProvider.test.tsx | 4 +- .../ThemeSelectionProvider.tsx | 4 +- .../WidgetApiProvider.test.tsx | 26 +- .../WidgetApiProvider/WidgetApiProvider.tsx | 2 +- .../components/WidgetApiProvider/context.ts | 2 +- .../craco/buildSemanticUiThemePlugin.js | 4 +- .../MissingCapabilitiesError.test.tsx | 2 +- .../MissingCapabilitiesError.tsx | 2 +- .../SemanticUiCapabilitiesGuard.test.tsx | 2 +- .../SemanticUiThemeProvider.test.tsx | 2 +- .../ThemeSwitcher.test.tsx | 6 +- .../ChildError.test.tsx | 2 +- .../ChildError.tsx | 2 +- .../CopyableCode.test.tsx | 2 +- .../MissingParametersError.test.tsx | 16 +- .../MissingParametersError.tsx | 10 +- .../MobileClientError.test.tsx | 4 +- .../MobileClientError.tsx | 2 +- .../OutsideClientError.test.tsx | 2 +- .../OutsideClientError.tsx | 2 +- .../SemanticUiWidgetApiProvider.test.tsx | 4 +- packages/testing/README.md | 4 +- .../testing/src/api/mockWidgetApi.test.ts | 94 ++--- packages/testing/src/api/mockWidgetApi.ts | 30 +- scripts/publishAllPackages.js | 6 +- yarn.lock | 6 +- 152 files changed, 1004 insertions(+), 1006 deletions(-) delete mode 100644 .prettierrc create mode 100644 .prettierrc.yaml diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 123d3e80..00000000 --- a/.prettierrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "semi": true, - "trailingComma": "es5", - "singleQuote": true, - "tabWidth": 2, - "useTabs": false -} diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 00000000..97faa9a5 --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,5 @@ +# Use single quotes instead of double quotes. +# (this will not affect JSX) +singleQuote: true + +plugins: ['prettier-plugin-organize-imports'] diff --git a/containers/widget-server/e2e/container.spec.ts b/containers/widget-server/e2e/container.spec.ts index 333a2af6..257c2af8 100644 --- a/containers/widget-server/e2e/container.spec.ts +++ b/containers/widget-server/e2e/container.spec.ts @@ -32,7 +32,7 @@ test.describe('widget-server', () => { test('should show environment', async ({ page }) => { await expect(page.locator('#environment')).toHaveText( - '{"REACT_APP_EXAMPLE":"example"}' + '{"REACT_APP_EXAMPLE":"example"}', ); }); diff --git a/containers/widget-server/e2e/fixtures/index.html b/containers/widget-server/e2e/fixtures/index.html index cc500246..d96d00b5 100644 --- a/containers/widget-server/e2e/fixtures/index.html +++ b/containers/widget-server/e2e/fixtures/index.html @@ -1,4 +1,4 @@ - + Welcome to the widget toolkit! diff --git a/containers/widget-server/e2e/fixtures/index.js b/containers/widget-server/e2e/fixtures/index.js index 601e16ab..3fa3612b 100644 --- a/containers/widget-server/e2e/fixtures/index.js +++ b/containers/widget-server/e2e/fixtures/index.js @@ -17,7 +17,7 @@ const el = document.getElementById('environment'); try { el.innerText = JSON.stringify( - JSON.parse(window.atob(window.__ENVIRONMENT__)) + JSON.parse(window.atob(window.__ENVIRONMENT__)), ); } catch { el.innerText = 'Could not find the environment :-('; diff --git a/example-widget-mui/craco.config.js b/example-widget-mui/craco.config.js index e08cfa31..17f92c7d 100644 --- a/example-widget-mui/craco.config.js +++ b/example-widget-mui/craco.config.js @@ -13,7 +13,7 @@ function importLocalPackages() { function overrideWebpackConfig({ webpackConfig, context }) { const { isFound, match } = getLoader( webpackConfig, - loaderByName('babel-loader') + loaderByName('babel-loader'), ); if (isFound) { const include = Array.isArray(match.loader.include) diff --git a/example-widget-mui/public/index.html b/example-widget-mui/public/index.html index 67bed2d4..1df343f2 100644 --- a/example-widget-mui/public/index.html +++ b/example-widget-mui/public/index.html @@ -1,4 +1,4 @@ - + diff --git a/example-widget-mui/src/AllRoomsPage/AllRoomsPage.test.tsx b/example-widget-mui/src/AllRoomsPage/AllRoomsPage.test.tsx index 99f95864..17d915ad 100644 --- a/example-widget-mui/src/AllRoomsPage/AllRoomsPage.test.tsx +++ b/example-widget-mui/src/AllRoomsPage/AllRoomsPage.test.tsx @@ -64,15 +64,15 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: /back to navigation/i }) + screen.getByRole('link', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: /all rooms/i }) + screen.findByRole('heading', { name: /all rooms/i }), ).resolves.toBeInTheDocument(); expect(screen.getByText(/you have no rooms/i)).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /refresh the room information/i }) + screen.getByRole('button', { name: /refresh the room information/i }), ).toBeInTheDocument(); }); @@ -80,7 +80,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: /all rooms/i }) + screen.findByRole('heading', { name: /all rooms/i }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); }); @@ -92,7 +92,7 @@ describe('', () => { 'org.matrix.msc2762.timeline:*', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), 'org.matrix.msc2931.navigate', ]); @@ -104,31 +104,31 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/you have no rooms./i) + screen.findByText(/you have no rooms./i), ).resolves.toBeInTheDocument(); }); it('should render a list of rooms', async () => { widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }) + mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }), ); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-2', content: { name: 'Room 2' } }) + mockRoomNameEvent({ room_id: '!room-id-2', content: { name: 'Room 2' } }), ); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-3', content: { name: 'Room 3' } }) + mockRoomNameEvent({ room_id: '!room-id-3', content: { name: 'Room 3' } }), ); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-4', content: { name: 'Room 4' } }) + mockRoomNameEvent({ room_id: '!room-id-4', content: { name: 'Room 4' } }), ); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-5', content: { name: 'Room 5' } }) + mockRoomNameEvent({ room_id: '!room-id-5', content: { name: 'Room 5' } }), ); render(, { wrapper }); await expect( - screen.findByText(/all your rooms:/i) + screen.findByText(/all your rooms:/i), ).resolves.toBeInTheDocument(); expect(screen.getByRole('button', { name: /room 1/i })).toBeInTheDocument(); expect(screen.getByRole('button', { name: /room 2/i })).toBeInTheDocument(); @@ -140,26 +140,26 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/you have no rooms/i) + screen.findByText(/you have no rooms/i), ).resolves.toBeInTheDocument(); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }) + mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }), ); await userEvent.click( - screen.getByRole('button', { name: /refresh the room information/i }) + screen.getByRole('button', { name: /refresh the room information/i }), ); await expect( - screen.findByText(/all your rooms:/i) + screen.findByText(/all your rooms:/i), ).resolves.toBeInTheDocument(); expect(screen.getByRole('button', { name: /room 1/i })).toBeInTheDocument(); }); it('should navigate to the room', async () => { widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }) + mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }), ); render(, { wrapper }); @@ -168,7 +168,7 @@ describe('', () => { await userEvent.click(button); expect(widgetApi.navigateTo).toBeCalledWith( - 'https://matrix.to/#/!room-id-1' + 'https://matrix.to/#/!room-id-1', ); }); }); diff --git a/example-widget-mui/src/AllRoomsPage/AllRoomsPage.tsx b/example-widget-mui/src/AllRoomsPage/AllRoomsPage.tsx index c8fa3c62..a5bd5932 100644 --- a/example-widget-mui/src/AllRoomsPage/AllRoomsPage.tsx +++ b/example-widget-mui/src/AllRoomsPage/AllRoomsPage.tsx @@ -65,7 +65,7 @@ export const AllRoomsPage = (): ReactElement => { ...generateRoomTimelineCapabilities(Symbols.AnyRoom), WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), WIDGET_CAPABILITY_NAVIGATE, ]} diff --git a/example-widget-mui/src/App/App.test.tsx b/example-widget-mui/src/App/App.test.tsx index 31cecd3a..caded32e 100644 --- a/example-widget-mui/src/App/App.test.tsx +++ b/example-widget-mui/src/App/App.test.tsx @@ -24,6 +24,6 @@ it('should render error message', async () => { render(); await expect( - screen.findByText(/only runs as a widget/i) + screen.findByText(/only runs as a widget/i), ).resolves.toBeInTheDocument(); }); diff --git a/example-widget-mui/src/DicePage/DicePage.test.tsx b/example-widget-mui/src/DicePage/DicePage.test.tsx index 94754329..c22ef5b8 100644 --- a/example-widget-mui/src/DicePage/DicePage.test.tsx +++ b/example-widget-mui/src/DicePage/DicePage.test.tsx @@ -44,17 +44,17 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: /back to navigation/i }) + screen.getByRole('link', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: /dice/i }) + screen.findByRole('heading', { name: /dice/i }), ).resolves.toBeInTheDocument(); expect( - screen.getByText(/nobody has thrown the dice in this room yet/i) + screen.getByText(/nobody has thrown the dice in this room yet/i), ).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /throw dice/i }) + screen.getByRole('button', { name: /throw dice/i }), ).toBeInTheDocument(); }); @@ -62,7 +62,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: /dice/i }) + screen.findByRole('heading', { name: /dice/i }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); }); @@ -73,7 +73,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forRoomEvent( EventDirection.Receive, - 'net.nordeck.throw_dice' + 'net.nordeck.throw_dice', ), ]); @@ -83,7 +83,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forRoomEvent( EventDirection.Send, - 'net.nordeck.throw_dice' + 'net.nordeck.throw_dice', ), ]); }); @@ -92,7 +92,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/nobody has thrown the dice in this room yet/i) + screen.findByText(/nobody has thrown the dice in this room yet/i), ).resolves.toBeInTheDocument(); }); @@ -126,7 +126,7 @@ describe('', () => { await userEvent.click(button); await expect( - screen.findByText(/your last throw: ./i) + screen.findByText(/your last throw: ./i), ).resolves.toBeInTheDocument(); expect(widgetApi.sendRoomEvent).toBeCalledWith('net.nordeck.throw_dice', { diff --git a/example-widget-mui/src/DicePage/DicePage.tsx b/example-widget-mui/src/DicePage/DicePage.tsx index ca150912..d27501ec 100644 --- a/example-widget-mui/src/DicePage/DicePage.tsx +++ b/example-widget-mui/src/DicePage/DicePage.tsx @@ -47,7 +47,7 @@ export const DicePage = (): ReactElement => { capabilities={[ WidgetEventCapability.forRoomEvent( EventDirection.Receive, - STATE_EVENT_THROW_DICE + STATE_EVENT_THROW_DICE, ), ]} > @@ -70,7 +70,7 @@ export const DiceView = (): ReactElement => { .observeRoomEvents(STATE_EVENT_THROW_DICE) .pipe( filter(isValidThrowDiceEvent), - map((r) => r.content.pips) + map((r) => r.content.pips), ) .subscribe((d) => { setDices((l) => [...l, d]); @@ -85,14 +85,14 @@ export const DiceView = (): ReactElement => { await widgetApi.requestCapabilities([ WidgetEventCapability.forRoomEvent( EventDirection.Send, - STATE_EVENT_THROW_DICE + STATE_EVENT_THROW_DICE, ), ]); const pips = Math.floor(Math.random() * 6) + 1; const result = await widgetApi.sendRoomEvent( STATE_EVENT_THROW_DICE, - { pips } + { pips }, ); setLastOwnDice(result.content.pips); } diff --git a/example-widget-mui/src/IdentityPage/IdentityPage.test.tsx b/example-widget-mui/src/IdentityPage/IdentityPage.test.tsx index 0861363c..b76b9da9 100644 --- a/example-widget-mui/src/IdentityPage/IdentityPage.test.tsx +++ b/example-widget-mui/src/IdentityPage/IdentityPage.test.tsx @@ -49,11 +49,11 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: /back to navigation/i }) + screen.getByRole('link', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: /Identity/i }) + screen.findByRole('heading', { name: /Identity/i }), ).resolves.toBeInTheDocument(); expect(screen.getByText('Error')).toBeInTheDocument(); expect(screen.getByText(/error: .+/i)).toBeInTheDocument(); @@ -63,7 +63,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: /Identity/i }) + screen.findByRole('heading', { name: /Identity/i }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); }); @@ -85,29 +85,29 @@ describe('', () => { } return res(ctx.json({ sub: '@alice:example.com' })); - } - ) + }, + ), ); render(, { wrapper }); await expect( - screen.findByText(/identity verified/i) + screen.findByText(/identity verified/i), ).resolves.toBeInTheDocument(); expect( - screen.getByText(`{ "sub": "@alice:example.com" }`) + screen.getByText(`{ "sub": "@alice:example.com" }`), ).toBeInTheDocument(); }); it('should show an error if the user rejected the token capability', async () => { widgetApi.requestOpenIDConnectToken.mockRejectedValue( - new Error('The user rejected the request') + new Error('The user rejected the request'), ); render(, { wrapper }); await expect( - screen.findByText(/error: the user rejected the request/i) + screen.findByText(/error: the user rejected the request/i), ).resolves.toBeInTheDocument(); }); @@ -117,7 +117,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/error: unknown home server/i) + screen.findByText(/error: unknown home server/i), ).resolves.toBeInTheDocument(); }); @@ -129,7 +129,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/error: unknown token type/i) + screen.findByText(/error: unknown token type/i), ).resolves.toBeInTheDocument(); }); @@ -146,16 +146,16 @@ describe('', () => { 'https://synapse.local/_matrix/federation/v1/openid/userinfo', (req, res, ctx) => { return res(ctx.status(500), ctx.json('Internal Server Error')); - } - ) + }, + ), ); render(, { wrapper }); await expect( screen.findByText( - /error: error while retrieving identity: "Internal Server Error"/i - ) + /error: error while retrieving identity: "Internal Server Error"/i, + ), ).resolves.toBeInTheDocument(); }); }); diff --git a/example-widget-mui/src/IdentityPage/IdentityPage.tsx b/example-widget-mui/src/IdentityPage/IdentityPage.tsx index c44e385c..ea0c1b81 100644 --- a/example-widget-mui/src/IdentityPage/IdentityPage.tsx +++ b/example-widget-mui/src/IdentityPage/IdentityPage.tsx @@ -61,8 +61,8 @@ export const IdentityView = (): ReactElement => { `Error while retrieving identity: ${JSON.stringify( value, undefined, - ' ' - )}` + ' ', + )}`, ); } diff --git a/example-widget-mui/src/InvitationsPage/InvitationsPage.test.tsx b/example-widget-mui/src/InvitationsPage/InvitationsPage.test.tsx index 49e68a36..c06b306f 100644 --- a/example-widget-mui/src/InvitationsPage/InvitationsPage.test.tsx +++ b/example-widget-mui/src/InvitationsPage/InvitationsPage.test.tsx @@ -43,11 +43,11 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: /back to navigation/i }) + screen.getByRole('link', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByRole('combobox', { name: 'Users' }) + screen.findByRole('combobox', { name: 'Users' }), ).resolves.toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Invite' })).toBeInTheDocument(); @@ -56,7 +56,7 @@ describe('', () => { }); expect(within(invitedUsersList).getByRole('listitem')).toHaveTextContent( - 'Please invite a user' + 'Please invite a user', ); }); @@ -64,7 +64,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: 'Invitations' }) + screen.findByRole('heading', { name: 'Invitations' }), ).resolves.toBeInTheDocument(); await waitFor(() => { @@ -87,8 +87,8 @@ describe('', () => { it('should show an error message when the search failed', async () => { widgetApi.searchUserDirectory.mockRejectedValue( new Error( - 'The user_directory_search action is not supported by the client.' - ) + 'The user_directory_search action is not supported by the client.', + ), ); render(, { wrapper }); @@ -96,7 +96,7 @@ describe('', () => { const alert = await screen.findByRole('alert'); expect(alert).toHaveTextContent( - 'The user_directory_search action is not supported by the client.' + 'The user_directory_search action is not supported by the client.', ); }); @@ -117,7 +117,7 @@ describe('', () => { await userEvent.type(combobox, 'search'); await userEvent.click( - await screen.findByRole('option', { name: 'User 1' }) + await screen.findByRole('option', { name: 'User 1' }), ); const userButton = screen.getByRole('button', { name: 'User 1' }); diff --git a/example-widget-mui/src/InvitationsPage/InvitationsPage.tsx b/example-widget-mui/src/InvitationsPage/InvitationsPage.tsx index 458f984a..01bfa9db 100644 --- a/example-widget-mui/src/InvitationsPage/InvitationsPage.tsx +++ b/example-widget-mui/src/InvitationsPage/InvitationsPage.tsx @@ -153,8 +153,8 @@ export const InvitationsView = (): ReactElement => { onClick={() => { setInvitedUsers((old) => old.concat( - selected.map((u) => u.userId).filter((u) => !old.includes(u)) - ) + selected.map((u) => u.userId).filter((u) => !old.includes(u)), + ), ); setSelected([]); }} @@ -196,7 +196,7 @@ type SearchResults = Array<{ function useUserSearchResults( input: string, - delay: number + delay: number, ): { loading: boolean; results: SearchResults; diff --git a/example-widget-mui/src/ModalPage/ModalDialog.test.tsx b/example-widget-mui/src/ModalPage/ModalDialog.test.tsx index 0865946f..5478bab8 100644 --- a/example-widget-mui/src/ModalPage/ModalDialog.test.tsx +++ b/example-widget-mui/src/ModalPage/ModalDialog.test.tsx @@ -54,7 +54,7 @@ describe('', () => { expect(screen.getByText(/some content…/i)).toBeInTheDocument(); expect(screen.getByText(/Room ID: !room-id/i)).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /i am confident!/i }) + screen.getByRole('button', { name: /i am confident!/i }), ).toBeInTheDocument(); }); @@ -71,7 +71,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/this widget was not opened in a modal\./i) + screen.findByText(/this widget was not opened in a modal\./i), ).resolves.toBeInTheDocument(); }); @@ -81,14 +81,14 @@ describe('', () => { await waitFor(() => { expect(widgetApi.setModalButtonEnabled).toBeCalledWith( 'net.nordeck.create.poll.yes', - true + true, ); }); await waitFor(() => { expect(widgetApi.setModalButtonEnabled).toBeCalledWith( 'net.nordeck.create.poll.no', - true + true, ); }); }); @@ -97,13 +97,13 @@ describe('', () => { render(, { wrapper }); await userEvent.click( - screen.getByRole('button', { name: /i am confident!/i }) + screen.getByRole('button', { name: /i am confident!/i }), ); await waitFor(() => { expect(widgetApi.setModalButtonEnabled).toBeCalledWith( 'net.nordeck.create.poll.yessssss', - true + true, ); }); }); diff --git a/example-widget-mui/src/ModalPage/ModalPage.test.tsx b/example-widget-mui/src/ModalPage/ModalPage.test.tsx index e391ed70..fb0c4421 100644 --- a/example-widget-mui/src/ModalPage/ModalPage.test.tsx +++ b/example-widget-mui/src/ModalPage/ModalPage.test.tsx @@ -44,14 +44,14 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: /back to navigation/i }) + screen.getByRole('link', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: /example for modals/i }) + screen.findByRole('heading', { name: /example for modals/i }), ).resolves.toBeInTheDocument(); expect( - screen.getByRole('button', { name: /open modal/i }) + screen.getByRole('button', { name: /open modal/i }), ).toBeInTheDocument(); }); @@ -59,7 +59,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: /example for modals/i }) + screen.findByRole('heading', { name: /example for modals/i }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); }); @@ -70,7 +70,7 @@ describe('', () => { await userEvent.click(screen.getByRole('button', { name: /open modal/i })); await expect( - screen.findByText(/no answer :-\(/i) + screen.findByText(/no answer :-\(/i), ).resolves.toBeInTheDocument(); expect(widgetApi.openModal).toBeCalledWith( @@ -100,7 +100,7 @@ describe('', () => { data: { title: 'This is a custom title!', }, - } + }, ); }); diff --git a/example-widget-mui/src/ModalPage/ModalPage.tsx b/example-widget-mui/src/ModalPage/ModalPage.tsx index c26e57f5..8e38cbeb 100644 --- a/example-widget-mui/src/ModalPage/ModalPage.tsx +++ b/example-widget-mui/src/ModalPage/ModalPage.tsx @@ -62,7 +62,7 @@ export const ModalPage = (): ReactElement => { }, ], data: { title: 'This is a custom title!' }, - } + }, ); if (!data) { diff --git a/example-widget-mui/src/NavigationPage/NavigationPage.test.tsx b/example-widget-mui/src/NavigationPage/NavigationPage.test.tsx index d006ace3..e832142d 100644 --- a/example-widget-mui/src/NavigationPage/NavigationPage.test.tsx +++ b/example-widget-mui/src/NavigationPage/NavigationPage.test.tsx @@ -35,7 +35,7 @@ describe('', () => { const list = screen.getByRole('list', { name: 'Navigation' }); expect( - within(list).getByRole('listitem', { name: 'Welcome' }) + within(list).getByRole('listitem', { name: 'Welcome' }), ).toHaveAccessibleDescription('Example on widget parameters'); }); diff --git a/example-widget-mui/src/PowerLevelsPage/PowerLevelsPage.test.tsx b/example-widget-mui/src/PowerLevelsPage/PowerLevelsPage.test.tsx index 3957dc4e..5b946bd1 100644 --- a/example-widget-mui/src/PowerLevelsPage/PowerLevelsPage.test.tsx +++ b/example-widget-mui/src/PowerLevelsPage/PowerLevelsPage.test.tsx @@ -77,15 +77,15 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: /back to navigation/i }) + screen.getByRole('link', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: /room power levels/i }) + screen.findByRole('heading', { name: /room power levels/i }), ).resolves.toBeInTheDocument(); await userEvent.click( - await screen.findByRole('button', { name: 'Username' }) + await screen.findByRole('button', { name: 'Username' }), ); const listbox = await screen.findByRole('listbox', { name: 'Username' }); @@ -95,7 +95,7 @@ describe('', () => { name: '@another-user', selected: true, checked: true, - }) + }), ); expect(screen.getByText(/state events/i)).toBeInTheDocument(); @@ -103,7 +103,7 @@ describe('', () => { expect(screen.getByText(/actions/i)).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /promote/i }) + screen.getByRole('button', { name: /promote/i }), ).toBeInTheDocument(); expect(screen.getByRole('button', { name: /demote/i })).toBeInTheDocument(); }); @@ -112,7 +112,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: /room power levels/i }) + screen.findByRole('heading', { name: /room power levels/i }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); }); @@ -121,7 +121,7 @@ describe('', () => { render(, { wrapper }); await userEvent.click( - await screen.findByRole('button', { name: 'Username' }) + await screen.findByRole('button', { name: 'Username' }), ); const listbox = await screen.findByRole('listbox', { name: 'Username' }); @@ -130,13 +130,13 @@ describe('', () => { within(listbox).getByRole('option', { name: '@user-id You', selected: false, - }) + }), ); expect( screen.getByRole('button', { name: 'Username', - }) + }), ).toHaveTextContent('@user-id'); }); @@ -146,11 +146,11 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.power_levels' + 'm.room.power_levels', ), WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.member' + 'm.room.member', ), ]); @@ -161,7 +161,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forStateEvent( EventDirection.Send, - 'm.room.power_levels' + 'm.room.power_levels', ), ]); }); @@ -171,7 +171,7 @@ describe('', () => { render(, { wrapper }); await userEvent.click( - await screen.findByRole('button', { name: 'Username' }) + await screen.findByRole('button', { name: 'Username' }), ); const listbox = await screen.findByRole('listbox', { name: 'Username' }); @@ -180,7 +180,7 @@ describe('', () => { within(listbox).getByRole('option', { name: '@user-id You', selected: false, - }) + }), ); const promoteButton = screen.getByRole('button', { diff --git a/example-widget-mui/src/PowerLevelsPage/PowerLevelsPage.tsx b/example-widget-mui/src/PowerLevelsPage/PowerLevelsPage.tsx index 9c72b824..543c5341 100644 --- a/example-widget-mui/src/PowerLevelsPage/PowerLevelsPage.tsx +++ b/example-widget-mui/src/PowerLevelsPage/PowerLevelsPage.tsx @@ -86,11 +86,11 @@ export const PowerLevelsPage = (): ReactElement => { capabilities={[ WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ), WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_MEMBER + STATE_EVENT_ROOM_MEMBER, ), ]} > @@ -184,14 +184,14 @@ export const PowerLevelsView = (): ReactElement => { const canPromoteOrDemote = hasStateEventPower( powerLevelsEvent?.content, widgetApi.widgetParameters.userId, - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ); // we assume that users that can change the name can be promoted or demoted const userIsModerator = hasStateEventPower( powerLevelsEvent?.content, selectedMember, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ); return ( @@ -234,7 +234,7 @@ export const PowerLevelsView = (): ReactElement => { permitted={hasStateEventPower( powerLevelsEvent?.content, selectedMember, - type + type, )} /> ))} @@ -255,7 +255,7 @@ export const PowerLevelsView = (): ReactElement => { permitted={hasRoomEventPower( powerLevelsEvent?.content, selectedMember, - type + type, )} /> ))} @@ -276,7 +276,7 @@ export const PowerLevelsView = (): ReactElement => { permitted={hasActionPower( powerLevelsEvent?.content, selectedMember, - action + action, )} /> ))} diff --git a/example-widget-mui/src/PowerLevelsPage/powerLevelsApi.test.ts b/example-widget-mui/src/PowerLevelsPage/powerLevelsApi.test.ts index 8e3801ab..6c8da24e 100644 --- a/example-widget-mui/src/PowerLevelsPage/powerLevelsApi.test.ts +++ b/example-widget-mui/src/PowerLevelsPage/powerLevelsApi.test.ts @@ -44,7 +44,7 @@ describe('getPowerLevels', () => { await expect( store .dispatch(powerLevelsApi.endpoints.getPowerLevels.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual({ content: { users_default: 50 } }); }); @@ -56,7 +56,7 @@ describe('getPowerLevels', () => { await expect( store .dispatch(powerLevelsApi.endpoints.getPowerLevels.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual({ content: undefined }); }); @@ -69,8 +69,8 @@ describe('getPowerLevels', () => { // wait for the initial load await waitFor(() => expect( - powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data - ).toEqual({ content: { users_default: 50 } }) + powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data, + ).toEqual({ content: { users_default: 50 } }), ); widgetApi.mockSendStateEvent({ @@ -86,8 +86,8 @@ describe('getPowerLevels', () => { // wait for the change await waitFor(() => expect( - powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data - ).toEqual({ content: { users_default: 0 } }) + powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data, + ).toEqual({ content: { users_default: 0 } }), ); }); }); @@ -101,9 +101,9 @@ describe('updatePowerLevels', () => { .dispatch( powerLevelsApi.endpoints.updatePowerLevels.initiate({ users_default: 100, - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toMatchObject({ content: { users_default: 100, @@ -139,13 +139,13 @@ describe('updatePowerLevels', () => { .dispatch( powerLevelsApi.endpoints.updatePowerLevels.initiate({ users_default: 100, - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toBeDefined(); expect( - powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data + powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data, ).toEqual({ content: { users_default: 100 } }); }); @@ -165,13 +165,13 @@ describe('updatePowerLevels', () => { .dispatch( powerLevelsApi.endpoints.updatePowerLevels.initiate({ users_default: 100, - }) + }), ) - .unwrap() + .unwrap(), ).rejects.toBeDefined(); expect( - powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data + powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data, ).toEqual({ content: { users_default: 50 } }); }); }); diff --git a/example-widget-mui/src/PowerLevelsPage/powerLevelsApi.ts b/example-widget-mui/src/PowerLevelsPage/powerLevelsApi.ts index de3dfa82..c15baefd 100644 --- a/example-widget-mui/src/PowerLevelsPage/powerLevelsApi.ts +++ b/example-widget-mui/src/PowerLevelsPage/powerLevelsApi.ts @@ -43,7 +43,7 @@ export const powerLevelsApi = baseApi.injectEndpoints({ try { const events = await widgetApi.receiveStateEvents( - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ); const event = first(events.filter(isValidPowerLevelStateEvent)); @@ -65,7 +65,7 @@ export const powerLevelsApi = baseApi.injectEndpoints({ // see also https://redux-toolkit.js.org/rtk-query/usage/streaming-updates#using-the-oncacheentryadded-lifecycle async onCacheEntryAdded( _, - { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData } + { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData }, ) { const { widgetApi } = extra as ThunkExtraArgument; @@ -106,8 +106,8 @@ export const powerLevelsApi = baseApi.injectEndpoints({ if (draft.content) { draft.content = content; } - } - ) + }, + ), ); try { @@ -124,13 +124,13 @@ export const powerLevelsApi = baseApi.injectEndpoints({ await widgetApi.requestCapabilities([ WidgetEventCapability.forStateEvent( EventDirection.Send, - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ), ]); const newEvent = await widgetApi.sendStateEvent( STATE_EVENT_POWER_LEVELS, - content + content, ); return { data: newEvent }; diff --git a/example-widget-mui/src/PowerLevelsPage/roomMembersApi.test.ts b/example-widget-mui/src/PowerLevelsPage/roomMembersApi.test.ts index 9caf1a08..2d24d842 100644 --- a/example-widget-mui/src/PowerLevelsPage/roomMembersApi.test.ts +++ b/example-widget-mui/src/PowerLevelsPage/roomMembersApi.test.ts @@ -55,13 +55,13 @@ beforeEach(() => { mockRoomMemberEvent({ state_key: '@user-1', content: { membership: 'join' }, - }) + }), ); user2 = widgetApi.mockSendStateEvent( mockRoomMemberEvent({ state_key: '@user-2', content: { membership: 'invite' }, - }) + }), ); }); @@ -72,7 +72,7 @@ describe('getRoomMembers', () => { await expect( store .dispatch(roomMembersApi.endpoints.getRoomMembers.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual({ entities: { [user1.state_key]: user1, @@ -90,7 +90,7 @@ describe('getRoomMembers', () => { await expect( store .dispatch(roomMembersApi.endpoints.getRoomMembers.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual({ entities: {}, ids: [] }); }); @@ -103,24 +103,24 @@ describe('getRoomMembers', () => { // wait for the initial load await waitFor(() => expect( - roomMembersApi.endpoints.getRoomMembers.select()(store.getState()).data + roomMembersApi.endpoints.getRoomMembers.select()(store.getState()).data, ).toEqual({ entities: { [user1.state_key]: user1, [user2.state_key]: user2, }, ids: [user1.state_key, user2.state_key], - }) + }), ); const userNew = widgetApi.mockSendStateEvent( - mockRoomMemberEvent({ state_key: '@user-new' }) + mockRoomMemberEvent({ state_key: '@user-new' }), ); // wait for the change await waitFor(() => expect( - roomMembersApi.endpoints.getRoomMembers.select()(store.getState()).data + roomMembersApi.endpoints.getRoomMembers.select()(store.getState()).data, ).toEqual({ entities: { [user1.state_key]: user1, @@ -128,7 +128,7 @@ describe('getRoomMembers', () => { [userNew.state_key]: userNew, }, ids: [user1.state_key, user2.state_key, userNew.state_key], - }) + }), ); }); }); diff --git a/example-widget-mui/src/PowerLevelsPage/roomMembersApi.ts b/example-widget-mui/src/PowerLevelsPage/roomMembersApi.ts index e710909c..1725f35e 100644 --- a/example-widget-mui/src/PowerLevelsPage/roomMembersApi.ts +++ b/example-widget-mui/src/PowerLevelsPage/roomMembersApi.ts @@ -51,13 +51,13 @@ export const roomMembersApi = baseApi.injectEndpoints({ try { const events = await widgetApi.receiveStateEvents( - STATE_EVENT_ROOM_MEMBER + STATE_EVENT_ROOM_MEMBER, ); return { data: roomMembersEntityAdapter.addMany( roomMembersEntityAdapter.getInitialState(), - events.filter(isValidRoomMemberStateEvent) + events.filter(isValidRoomMemberStateEvent), ), }; } catch (e) { @@ -76,7 +76,7 @@ export const roomMembersApi = baseApi.injectEndpoints({ // see also https://redux-toolkit.js.org/rtk-query/usage/streaming-updates#using-the-oncacheentryadded-lifecycle async onCacheEntryAdded( _, - { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData } + { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData }, ) { const { widgetApi } = extra as ThunkExtraArgument; @@ -89,11 +89,11 @@ export const roomMembersApi = baseApi.injectEndpoints({ // update the cached data if the event changes in the room if (isValidRoomMemberStateEvent(event)) { updateCachedData((state) => - roomMembersEntityAdapter.upsertOne(state, event) + roomMembersEntityAdapter.upsertOne(state, event), ); } else { updateCachedData((state) => - roomMembersEntityAdapter.removeOne(state, event.state_key) + roomMembersEntityAdapter.removeOne(state, event.state_key), ); } }); diff --git a/example-widget-mui/src/RelationsPage/RelationsPage.test.tsx b/example-widget-mui/src/RelationsPage/RelationsPage.test.tsx index b4b04ef2..656f570a 100644 --- a/example-widget-mui/src/RelationsPage/RelationsPage.test.tsx +++ b/example-widget-mui/src/RelationsPage/RelationsPage.test.tsx @@ -50,7 +50,7 @@ beforeEach(() => { widgetApi.mockSendRoomEvent(mockRoomMessageEvent()); widgetApi.mockSendRoomEvent( - mockReactionEvent({ 'm.relates_to': { key: '❄️' } }) + mockReactionEvent({ 'm.relates_to': { key: '❄️' } }), ); widgetApi.mockSendStateEvent(mockMessageCollectionEvent()); @@ -68,15 +68,15 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: 'Back to navigation' }) + screen.getByRole('link', { name: 'Back to navigation' }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: 'Event Relations' }) + screen.findByRole('heading', { name: 'Event Relations' }), ).resolves.toBeInTheDocument(); expect( - screen.getByRole('textbox', { name: 'Send a message' }) + screen.getByRole('textbox', { name: 'Send a message' }), ).toBeInTheDocument(); expect(screen.getByRole('button', { name: 'Send' })).toBeInTheDocument(); @@ -92,14 +92,14 @@ describe('', () => { name: 'Remove reaction "Snowflake"', description: 'My message @user-id', pressed: true, - }) + }), ).toBeInTheDocument(); expect( within(listitem).getByRole('button', { name: 'Add reaction "Thumbs Up"', description: 'My message @user-id', pressed: false, - }) + }), ).toBeInTheDocument(); }); @@ -107,7 +107,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: 'Event Relations' }) + screen.findByRole('heading', { name: 'Event Relations' }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); @@ -132,14 +132,14 @@ describe('', () => { name: 'Add reaction "Snowflake"', description: 'Hey, how are you? @user-id', pressed: false, - }) + }), ).toBeInTheDocument(); expect( within(listbox).getByRole('button', { name: 'Add reaction "Thumbs Up"', description: 'Hey, how are you? @user-id', pressed: false, - }) + }), ).toBeInTheDocument(); }); @@ -151,7 +151,7 @@ describe('', () => { name: 'Add reaction "Thumbs Up"', description: 'My message @user-id', pressed: false, - }) + }), ); await screen.findByRole('button', { @@ -169,7 +169,7 @@ describe('', () => { name: 'Remove reaction "Snowflake"', description: 'My message @user-id', pressed: true, - }) + }), ); await screen.findByRole('button', { @@ -193,7 +193,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText("You don't have the permission to send new messages.") + screen.findByText("You don't have the permission to send new messages."), ).resolves.toBeInTheDocument(); }); diff --git a/example-widget-mui/src/RelationsPage/RelationsPage.tsx b/example-widget-mui/src/RelationsPage/RelationsPage.tsx index 57c28af8..1cd92e2c 100644 --- a/example-widget-mui/src/RelationsPage/RelationsPage.tsx +++ b/example-widget-mui/src/RelationsPage/RelationsPage.tsx @@ -78,39 +78,39 @@ export const RelationsPage = (): ReactElement => { capabilities={[ WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ), WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_MESSAGE_COLLECTION + STATE_EVENT_MESSAGE_COLLECTION, ), WidgetEventCapability.forStateEvent( EventDirection.Send, - STATE_EVENT_MESSAGE_COLLECTION + STATE_EVENT_MESSAGE_COLLECTION, ), WidgetEventCapability.forRoomEvent( EventDirection.Receive, - ROOM_EVENT_ROOM_MESSAGE + ROOM_EVENT_ROOM_MESSAGE, ), WidgetEventCapability.forRoomEvent( EventDirection.Send, - ROOM_EVENT_ROOM_MESSAGE + ROOM_EVENT_ROOM_MESSAGE, ), WidgetEventCapability.forRoomEvent( EventDirection.Receive, - ROOM_EVENT_REACTION + ROOM_EVENT_REACTION, ), WidgetEventCapability.forRoomEvent( EventDirection.Send, - ROOM_EVENT_REACTION + ROOM_EVENT_REACTION, ), WidgetEventCapability.forRoomEvent( EventDirection.Receive, - ROOM_EVENT_REDACTION + ROOM_EVENT_REDACTION, ), WidgetEventCapability.forRoomEvent( EventDirection.Send, - ROOM_EVENT_REDACTION + ROOM_EVENT_REDACTION, ), ]} > @@ -321,7 +321,7 @@ const ReactionButton = ({ const reactionEvent = data?.reactions.find( (r) => r.sender === widgetApi.widgetParameters.userId && - r.content['m.relates_to'].key === reaction + r.content['m.relates_to'].key === reaction, ); const onClick = () => { @@ -362,31 +362,31 @@ function usePermissions() { hasStateEventPower( ev.content, widgetApi.widgetParameters.userId, - STATE_EVENT_MESSAGE_COLLECTION + STATE_EVENT_MESSAGE_COLLECTION, ) && hasRoomEventPower( ev.content, widgetApi.widgetParameters.userId, - ROOM_EVENT_REDACTION + ROOM_EVENT_REDACTION, ) && hasActionPower( ev.content, widgetApi.widgetParameters.userId, - 'redact' + 'redact', ), canSendReaction: hasRoomEventPower( ev.content, widgetApi.widgetParameters.userId, - ROOM_EVENT_REACTION + ROOM_EVENT_REACTION, ), canSendRedaction: hasRoomEventPower( ev.content, widgetApi.widgetParameters.userId, - ROOM_EVENT_REDACTION + ROOM_EVENT_REDACTION, ), - })) + })), ), - [widgetApi] + [widgetApi], ); return useObservable(observable, { diff --git a/example-widget-mui/src/RelationsPage/roomMessagesApi.test.ts b/example-widget-mui/src/RelationsPage/roomMessagesApi.test.ts index 2bd089b4..e446649d 100644 --- a/example-widget-mui/src/RelationsPage/roomMessagesApi.test.ts +++ b/example-widget-mui/src/RelationsPage/roomMessagesApi.test.ts @@ -40,7 +40,7 @@ describe('getRelevantEvents', () => { content: { eventIds: ['$event-0', '$event-1'], }, - }) + }), ); const store = createStore({ widgetApi }); @@ -48,7 +48,7 @@ describe('getRelevantEvents', () => { await expect( store .dispatch(roomMessagesApi.endpoints.getRelevantEvents.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual(['$event-0', '$event-1']); }); @@ -59,7 +59,7 @@ describe('getRelevantEvents', () => { content: { eventIds: ['$event-0', '$event-1'], }, - }) + }), ); const store = createStore({ widgetApi }); @@ -67,7 +67,7 @@ describe('getRelevantEvents', () => { await expect( store .dispatch(roomMessagesApi.endpoints.getRelevantEvents.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual([]); }); @@ -79,13 +79,13 @@ describe('getRelevantEvents', () => { await expect( store .dispatch(roomMessagesApi.endpoints.getRelevantEvents.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual([]); }); it('should return error if read fails', async () => { widgetApi.receiveSingleStateEvent.mockRejectedValue( - new Error('Unexpected error') + new Error('Unexpected error'), ); const store = createStore({ widgetApi }); @@ -93,7 +93,7 @@ describe('getRelevantEvents', () => { await expect( store .dispatch(roomMessagesApi.endpoints.getRelevantEvents.initiate()) - .unwrap() + .unwrap(), ).rejects.toEqual({ name: 'LoadFailed', message: 'Could not load events: Unexpected error', @@ -110,20 +110,20 @@ describe('getRelevantEvents', () => { await waitFor(() => expect( roomMessagesApi.endpoints.getRelevantEvents.select()(store.getState()) - .data - ).toEqual([]) + .data, + ).toEqual([]), ); widgetApi.mockSendStateEvent( - mockMessageCollectionEvent({ content: { eventIds: ['$event-id'] } }) + mockMessageCollectionEvent({ content: { eventIds: ['$event-id'] } }), ); // wait for the change await waitFor(() => expect( roomMessagesApi.endpoints.getRelevantEvents.select()(store.getState()) - .data - ).toEqual(['$event-id']) + .data, + ).toEqual(['$event-id']), ); }); }); @@ -135,7 +135,7 @@ describe('getMessage', () => { widgetApi.mockSendRoomEvent( mockReactionEvent({ 'm.relates_to': { event_id: '$another-id', key: 'O' }, - }) + }), ); const store = createStore({ widgetApi }); @@ -145,9 +145,9 @@ describe('getMessage', () => { .dispatch( roomMessagesApi.endpoints.getMessage.initiate({ eventId: messageEvent.event_id, - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toEqual({ event: messageEvent, reactions: [reactionEvent], @@ -156,7 +156,7 @@ describe('getMessage', () => { it('should return error if read fails', async () => { widgetApi.readEventRelations.mockRejectedValue( - new Error('Unexpected error') + new Error('Unexpected error'), ); const store = createStore({ widgetApi }); @@ -166,9 +166,9 @@ describe('getMessage', () => { .dispatch( roomMessagesApi.endpoints.getMessage.initiate({ eventId: '$event-id', - }) + }), ) - .unwrap() + .unwrap(), ).rejects.toEqual({ name: 'LoadFailed', message: 'Could not load events: Unexpected error', @@ -185,7 +185,7 @@ describe('getMessage', () => { store.dispatch( roomMessagesApi.endpoints.getMessage.initiate({ eventId: messageEvent.event_id, - }) + }), ); // wait for the initial load @@ -193,15 +193,15 @@ describe('getMessage', () => { expect( roomMessagesApi.endpoints.getMessage.select({ eventId: messageEvent.event_id, - })(store.getState()).data + })(store.getState()).data, ).toEqual({ event: messageEvent, reactions: [reactionEvent0], - }) + }), ); const reactionEvent1 = widgetApi.mockSendRoomEvent( - mockReactionEvent({ event_id: '$event-id-1' }) + mockReactionEvent({ event_id: '$event-id-1' }), ); // wait for the change @@ -209,11 +209,11 @@ describe('getMessage', () => { expect( roomMessagesApi.endpoints.getMessage.select({ eventId: messageEvent.event_id, - })(store.getState()).data + })(store.getState()).data, ).toEqual({ event: messageEvent, reactions: [reactionEvent0, reactionEvent1], - }) + }), ); await redactEvent(widgetApi, reactionEvent0.event_id); @@ -223,11 +223,11 @@ describe('getMessage', () => { expect( roomMessagesApi.endpoints.getMessage.select({ eventId: messageEvent.event_id, - })(store.getState()).data + })(store.getState()).data, ).toEqual({ event: messageEvent, reactions: [reactionEvent1], - }) + }), ); }); }); @@ -235,7 +235,7 @@ describe('getMessage', () => { describe('sendMessage', () => { it('should send message to the room and update the message collection', async () => { widgetApi.mockSendStateEvent( - mockMessageCollectionEvent({ content: { eventIds: ['$event-id-0'] } }) + mockMessageCollectionEvent({ content: { eventIds: ['$event-id-0'] } }), ); const store = createStore({ widgetApi }); @@ -245,9 +245,9 @@ describe('sendMessage', () => { .dispatch( roomMessagesApi.endpoints.sendMessage.initiate({ message: 'My message', - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toEqual({}); expect(widgetApi.sendRoomEvent).toBeCalledWith('m.room.message', { @@ -257,7 +257,7 @@ describe('sendMessage', () => { expect(widgetApi.sendStateEvent).toBeCalledWith( 'net.nordeck.message_collection', - { eventIds: ['$event-id-0', expect.stringMatching(/\$event-[\d]+/)] } + { eventIds: ['$event-id-0', expect.stringMatching(/\$event-[\d]+/)] }, ); }); @@ -269,9 +269,9 @@ describe('sendMessage', () => { .dispatch( roomMessagesApi.endpoints.sendMessage.initiate({ message: 'My message', - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toEqual({}); expect(widgetApi.sendRoomEvent).toBeCalledWith('m.room.message', { @@ -281,7 +281,7 @@ describe('sendMessage', () => { expect(widgetApi.sendStateEvent).toBeCalledWith( 'net.nordeck.message_collection', - { eventIds: [expect.stringMatching(/\$event-[\d]+/)] } + { eventIds: [expect.stringMatching(/\$event-[\d]+/)] }, ); }); @@ -295,9 +295,9 @@ describe('sendMessage', () => { .dispatch( roomMessagesApi.endpoints.sendMessage.initiate({ message: 'My message', - }) + }), ) - .unwrap() + .unwrap(), ).rejects.toEqual({ name: 'SendFailed', message: 'Could not send message: Unexpected error', @@ -315,9 +315,9 @@ describe('sendReaction', () => { roomMessagesApi.endpoints.sendReaction.initiate({ eventId: '$event-id', reaction: 'X', - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toEqual({}); expect(widgetApi.sendRoomEvent).toBeCalledWith('m.reaction', { @@ -340,9 +340,9 @@ describe('sendReaction', () => { roomMessagesApi.endpoints.sendReaction.initiate({ eventId: '$event-id', reaction: 'X', - }) + }), ) - .unwrap() + .unwrap(), ).rejects.toEqual({ name: 'SendFailed', message: 'Could not send annotation: Unexpected error', @@ -359,9 +359,9 @@ describe('sendRedaction', () => { .dispatch( roomMessagesApi.endpoints.sendRedaction.initiate({ eventId: '$event-id', - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toEqual({}); expect(widgetApi.sendRoomEvent).toBeCalledWith('m.room.redaction', { @@ -379,9 +379,9 @@ describe('sendRedaction', () => { .dispatch( roomMessagesApi.endpoints.sendRedaction.initiate({ eventId: '$event-id', - }) + }), ) - .unwrap() + .unwrap(), ).rejects.toEqual({ name: 'SendFailed', message: 'Could not redact event: Unexpected error', @@ -400,14 +400,14 @@ describe('dropMessageFromCollection', () => { .dispatch( roomMessagesApi.endpoints.dropMessageFromCollection.initiate({ eventId: '$message-event-id', - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toEqual({}); expect(widgetApi.sendStateEvent).toBeCalledWith( 'net.nordeck.message_collection', - { eventIds: [] } + { eventIds: [] }, ); }); @@ -421,9 +421,9 @@ describe('dropMessageFromCollection', () => { .dispatch( roomMessagesApi.endpoints.dropMessageFromCollection.initiate({ eventId: '$another-event-id', - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toEqual({}); expect(widgetApi.sendStateEvent).not.toBeCalled(); @@ -431,7 +431,7 @@ describe('dropMessageFromCollection', () => { it('should handle send error', async () => { widgetApi.receiveSingleStateEvent.mockRejectedValue( - new Error('Unexpected error') + new Error('Unexpected error'), ); const store = createStore({ widgetApi }); @@ -441,9 +441,9 @@ describe('dropMessageFromCollection', () => { .dispatch( roomMessagesApi.endpoints.dropMessageFromCollection.initiate({ eventId: '$event-id', - }) + }), ) - .unwrap() + .unwrap(), ).rejects.toEqual({ name: 'SendFailed', message: 'Could not update the collection: Unexpected error', diff --git a/example-widget-mui/src/RelationsPage/roomMessagesApi.ts b/example-widget-mui/src/RelationsPage/roomMessagesApi.ts index 8ba481a5..c389b83b 100644 --- a/example-widget-mui/src/RelationsPage/roomMessagesApi.ts +++ b/example-widget-mui/src/RelationsPage/roomMessagesApi.ts @@ -51,7 +51,7 @@ export const roomMessagesApi = baseApi.injectEndpoints({ try { const event = await widgetApi.receiveSingleStateEvent( STATE_EVENT_MESSAGE_COLLECTION, - '' + '', ); return { @@ -76,7 +76,7 @@ export const roomMessagesApi = baseApi.injectEndpoints({ // see also https://redux-toolkit.js.org/rtk-query/usage/streaming-updates#using-the-oncacheentryadded-lifecycle async onCacheEntryAdded( _, - { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData } + { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData }, ) { const { widgetApi } = extra as ThunkExtraArgument; @@ -144,7 +144,7 @@ export const roomMessagesApi = baseApi.injectEndpoints({ // see also https://redux-toolkit.js.org/rtk-query/usage/streaming-updates#using-the-oncacheentryadded-lifecycle async onCacheEntryAdded( { eventId }, - { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData } + { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData }, ) { const { widgetApi } = extra as ThunkExtraArgument; @@ -173,10 +173,10 @@ export const roomMessagesApi = baseApi.injectEndpoints({ (redaction) => { updateCachedData((data) => { data.reactions = data.reactions.filter( - (r) => r.event_id !== redaction.redacts + (r) => r.event_id !== redaction.redacts, ); }); - } + }, ); const messageSubscription = widgetApi @@ -211,12 +211,12 @@ export const roomMessagesApi = baseApi.injectEndpoints({ { msgtype: 'm.text', body: message, - } + }, ); const stateEvent = await widgetApi.receiveSingleStateEvent( STATE_EVENT_MESSAGE_COLLECTION, - '' + '', ); if (stateEvent && isValidMessageCollectionEvent(stateEvent)) { @@ -225,16 +225,16 @@ export const roomMessagesApi = baseApi.injectEndpoints({ { ...stateEvent.content, eventIds: stateEvent.content.eventIds.concat( - messageEvent.event_id + messageEvent.event_id, ), - } + }, ); } else { await widgetApi.sendStateEvent( STATE_EVENT_MESSAGE_COLLECTION, { eventIds: [messageEvent.event_id], - } + }, ); } @@ -312,7 +312,7 @@ export const roomMessagesApi = baseApi.injectEndpoints({ try { const stateEvent = await widgetApi.receiveSingleStateEvent( STATE_EVENT_MESSAGE_COLLECTION, - '' + '', ); if ( @@ -325,9 +325,9 @@ export const roomMessagesApi = baseApi.injectEndpoints({ { ...stateEvent.content, eventIds: stateEvent.content.eventIds.filter( - (id) => id !== eventId + (id) => id !== eventId, ), - } + }, ); } diff --git a/example-widget-mui/src/RoomPage/RoomPage.test.tsx b/example-widget-mui/src/RoomPage/RoomPage.test.tsx index d0b0704c..dd3bf03b 100644 --- a/example-widget-mui/src/RoomPage/RoomPage.test.tsx +++ b/example-widget-mui/src/RoomPage/RoomPage.test.tsx @@ -56,15 +56,15 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: /back to navigation/i }) + screen.getByRole('link', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: /room admin tool/i }) + screen.findByRole('heading', { name: /room admin tool/i }), ).resolves.toBeInTheDocument(); expect(screen.getByText(/current room name:/i)).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /rename room/i }) + screen.getByRole('button', { name: /rename room/i }), ).toBeInTheDocument(); }); @@ -72,7 +72,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: /room admin tool/i }) + screen.findByRole('heading', { name: /room admin tool/i }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); }); @@ -83,7 +83,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), ]); @@ -101,7 +101,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/current room name: a test room/i) + screen.findByText(/current room name: a test room/i), ).resolves.toBeInTheDocument(); }); @@ -112,7 +112,7 @@ describe('', () => { await userEvent.click(button); await expect( - screen.findByText(/current room name: a test room!/i) + screen.findByText(/current room name: a test room!/i), ).resolves.toBeInTheDocument(); expect(widgetApi.sendStateEvent).toBeCalledWith('m.room.name', { diff --git a/example-widget-mui/src/RoomPage/RoomPage.tsx b/example-widget-mui/src/RoomPage/RoomPage.tsx index 58347add..823870e9 100644 --- a/example-widget-mui/src/RoomPage/RoomPage.tsx +++ b/example-widget-mui/src/RoomPage/RoomPage.tsx @@ -37,7 +37,7 @@ export const RoomPage = (): ReactElement => { capabilities={[ WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), ]} > @@ -54,9 +54,9 @@ export const RoomView = (): ReactElement => { () => widgetApi.observeStateEvents(STATE_EVENT_ROOM_NAME).pipe( filter(isValidRoomNameEvent), - map((r) => r?.content.name) + map((r) => r?.content.name), ), - [widgetApi] + [widgetApi], ); const roomName = useObservable(roomName$, undefined); @@ -65,12 +65,12 @@ export const RoomView = (): ReactElement => { await widgetApi.requestCapabilities([ WidgetEventCapability.forStateEvent( EventDirection.Send, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), ]); const readResult = await widgetApi.receiveSingleStateEvent( - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ); if (readResult && isValidRoomNameEvent(readResult)) { @@ -79,7 +79,7 @@ export const RoomView = (): ReactElement => { STATE_EVENT_ROOM_NAME, { name: `${oldName}!`, - } + }, ); } } catch (err) { diff --git a/example-widget-mui/src/ThemePage/ThemePage.test.tsx b/example-widget-mui/src/ThemePage/ThemePage.test.tsx index 3e2534e3..032e7869 100644 --- a/example-widget-mui/src/ThemePage/ThemePage.test.tsx +++ b/example-widget-mui/src/ThemePage/ThemePage.test.tsx @@ -33,11 +33,11 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: 'Back to navigation' }) + screen.getByRole('link', { name: 'Back to navigation' }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: /theme/i }) + screen.findByRole('heading', { name: /theme/i }), ).resolves.toBeInTheDocument(); }); @@ -45,7 +45,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: /theme/i }) + screen.findByRole('heading', { name: /theme/i }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); }, 15000); diff --git a/example-widget-mui/src/WelcomePage/WelcomePage.test.tsx b/example-widget-mui/src/WelcomePage/WelcomePage.test.tsx index 37333958..c24e2c40 100644 --- a/example-widget-mui/src/WelcomePage/WelcomePage.test.tsx +++ b/example-widget-mui/src/WelcomePage/WelcomePage.test.tsx @@ -42,11 +42,11 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('link', { name: /back to navigation/i }) + screen.getByRole('link', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByRole('heading', { name: /welcome/i }) + screen.findByRole('heading', { name: /welcome/i }), ).resolves.toBeInTheDocument(); expect(screen.getByText(/welcome .+/i)).toBeInTheDocument(); @@ -56,7 +56,7 @@ describe('', () => { const { container } = render(, { wrapper }); await expect( - screen.findByRole('heading', { name: /welcome/i }) + screen.findByRole('heading', { name: /welcome/i }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); }); diff --git a/example-widget-mui/src/events/messageCollectionEvent.test.ts b/example-widget-mui/src/events/messageCollectionEvent.test.ts index 9679f6af..39e7fb8c 100644 --- a/example-widget-mui/src/events/messageCollectionEvent.test.ts +++ b/example-widget-mui/src/events/messageCollectionEvent.test.ts @@ -29,7 +29,7 @@ describe('isValidMessageCollectionEvent', () => { state_key: '', sender: '@user-id', type: 'net.nordeck.message_collection', - }) + }), ).toBe(true); }); @@ -46,7 +46,7 @@ describe('isValidMessageCollectionEvent', () => { state_key: '', sender: '@user-id', type: 'net.nordeck.message_collection', - }) + }), ).toBe(true); }); @@ -69,7 +69,7 @@ describe('isValidMessageCollectionEvent', () => { state_key: '', sender: '@user-id', type: 'net.nordeck.message_collection', - }) + }), ).toBe(false); }); }); diff --git a/example-widget-mui/src/events/messageCollectionEvent.ts b/example-widget-mui/src/events/messageCollectionEvent.ts index 22ae513c..775d6278 100644 --- a/example-widget-mui/src/events/messageCollectionEvent.ts +++ b/example-widget-mui/src/events/messageCollectionEvent.ts @@ -39,13 +39,13 @@ const messageCollectionEventSchema = Joi.object({ * @returns true, if the event is valid. */ export function isValidMessageCollectionEvent( - event: StateEvent + event: StateEvent, ): event is StateEvent { return ( isValidEvent( event, STATE_EVENT_MESSAGE_COLLECTION, - messageCollectionEventSchema + messageCollectionEventSchema, ) && isStateEvent(event) ); } diff --git a/example-widget-mui/src/events/reactionEvent.test.ts b/example-widget-mui/src/events/reactionEvent.test.ts index 5caad32d..902f1beb 100644 --- a/example-widget-mui/src/events/reactionEvent.test.ts +++ b/example-widget-mui/src/events/reactionEvent.test.ts @@ -32,7 +32,7 @@ describe('isValidReactionEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'm.reaction', - }) + }), ).toBe(true); }); @@ -53,7 +53,7 @@ describe('isValidReactionEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'm.reaction', - }) + }), ).toBe(true); }); @@ -77,7 +77,7 @@ describe('isValidReactionEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'm.reaction', - }) + }), ).toBe(false); }); @@ -107,7 +107,7 @@ describe('isValidReactionEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'm.reaction', - }) + }), ).toBe(false); }); }); diff --git a/example-widget-mui/src/events/reactionEvent.ts b/example-widget-mui/src/events/reactionEvent.ts index 7714178e..90c420bf 100644 --- a/example-widget-mui/src/events/reactionEvent.ts +++ b/example-widget-mui/src/events/reactionEvent.ts @@ -49,7 +49,7 @@ const reactionEventSchema = Joi.object({ * @returns true, if the event is valid. */ export function isValidReactionEvent( - event: RoomEvent + event: RoomEvent, ): event is RoomEvent { return isValidEvent(event, ROOM_EVENT_REACTION, reactionEventSchema); } diff --git a/example-widget-mui/src/events/roomMessageEvent.test.ts b/example-widget-mui/src/events/roomMessageEvent.test.ts index a5760de8..a69a425d 100644 --- a/example-widget-mui/src/events/roomMessageEvent.test.ts +++ b/example-widget-mui/src/events/roomMessageEvent.test.ts @@ -29,7 +29,7 @@ describe('isValidRoomMessageEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'm.room.message', - }) + }), ).toBe(true); }); @@ -46,7 +46,7 @@ describe('isValidRoomMessageEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'm.room.message', - }) + }), ).toBe(true); }); @@ -70,7 +70,7 @@ describe('isValidRoomMessageEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'm.room.message', - }) + }), ).toBe(false); }); }); diff --git a/example-widget-mui/src/events/roomMessageEvent.ts b/example-widget-mui/src/events/roomMessageEvent.ts index 2d82ef2a..7d2b8d1e 100644 --- a/example-widget-mui/src/events/roomMessageEvent.ts +++ b/example-widget-mui/src/events/roomMessageEvent.ts @@ -41,7 +41,7 @@ const roomMessageEventSchema = Joi.object({ * @returns true, if the event is valid. */ export function isValidRoomMessageEvent( - event: RoomEvent + event: RoomEvent, ): event is RoomEvent { return isValidEvent(event, ROOM_EVENT_ROOM_MESSAGE, roomMessageEventSchema); } diff --git a/example-widget-mui/src/events/roomNameEvent.test.ts b/example-widget-mui/src/events/roomNameEvent.test.ts index e25680de..e31e4460 100644 --- a/example-widget-mui/src/events/roomNameEvent.test.ts +++ b/example-widget-mui/src/events/roomNameEvent.test.ts @@ -29,7 +29,7 @@ describe('isValidRoomNameEvent', () => { state_key: '', sender: '@user-id', type: 'm.room.name', - }) + }), ).toBe(true); }); @@ -46,7 +46,7 @@ describe('isValidRoomNameEvent', () => { state_key: '', sender: '@user-id', type: 'm.room.name', - }) + }), ).toBe(true); }); @@ -65,8 +65,8 @@ describe('isValidRoomNameEvent', () => { state_key: '', sender: '@user-id', type: 'm.room.name', - }) + }), ).toBe(false); - } + }, ); }); diff --git a/example-widget-mui/src/events/roomNameEvent.ts b/example-widget-mui/src/events/roomNameEvent.ts index d16b7958..0fd74ee1 100644 --- a/example-widget-mui/src/events/roomNameEvent.ts +++ b/example-widget-mui/src/events/roomNameEvent.ts @@ -40,7 +40,7 @@ const roomNameEventSchema = Joi.object({ * @returns true, if the event is valid. */ export function isValidRoomNameEvent( - event: StateEvent + event: StateEvent, ): event is StateEvent { return isValidEvent(event, STATE_EVENT_ROOM_NAME, roomNameEventSchema); } diff --git a/example-widget-mui/src/events/throwDiceEvent.test.ts b/example-widget-mui/src/events/throwDiceEvent.test.ts index 2b90aa0a..37b36861 100644 --- a/example-widget-mui/src/events/throwDiceEvent.test.ts +++ b/example-widget-mui/src/events/throwDiceEvent.test.ts @@ -28,7 +28,7 @@ describe('isValidThrowDiceEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'net.nordeck.throw_dice', - }) + }), ).toBe(true); }); @@ -44,7 +44,7 @@ describe('isValidThrowDiceEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'net.nordeck.throw_dice', - }) + }), ).toBe(true); }); @@ -62,8 +62,8 @@ describe('isValidThrowDiceEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'net.nordeck.throw_dice', - }) + }), ).toBe(false); - } + }, ); }); diff --git a/example-widget-mui/src/events/throwDiceEvent.ts b/example-widget-mui/src/events/throwDiceEvent.ts index 07e830e4..f11c0067 100644 --- a/example-widget-mui/src/events/throwDiceEvent.ts +++ b/example-widget-mui/src/events/throwDiceEvent.ts @@ -39,7 +39,7 @@ const throwDiceEventSchema = Joi.object({ * @returns true, if the event is valid. */ export function isValidThrowDiceEvent( - event: RoomEvent + event: RoomEvent, ): event is RoomEvent { return isValidEvent(event, STATE_EVENT_THROW_DICE, throwDiceEventSchema); } diff --git a/example-widget-mui/src/events/validation.test.ts b/example-widget-mui/src/events/validation.test.ts index f68e88d2..a6a99df1 100644 --- a/example-widget-mui/src/events/validation.test.ts +++ b/example-widget-mui/src/events/validation.test.ts @@ -42,7 +42,7 @@ describe('isValidEvent', () => { event.type = 'com.example.other'; expect(isValidEvent(event, 'com.example.event', exampleSchema)).toEqual( - false + false, ); }); @@ -50,7 +50,7 @@ describe('isValidEvent', () => { event.content = undefined; expect(isValidEvent(event, 'com.example.event', exampleSchema)).toEqual( - false + false, ); }); @@ -58,13 +58,13 @@ describe('isValidEvent', () => { event.content = { other: 'my-value' }; expect(isValidEvent(event, 'com.example.event', exampleSchema)).toEqual( - false + false, ); }); it('should validate successful', () => { expect(isValidEvent(event, 'com.example.event', exampleSchema)).toEqual( - true + true, ); }); }); diff --git a/example-widget-mui/src/events/validation.ts b/example-widget-mui/src/events/validation.ts index d54a02b6..8472a7df 100644 --- a/example-widget-mui/src/events/validation.ts +++ b/example-widget-mui/src/events/validation.ts @@ -20,7 +20,7 @@ import Joi from 'joi'; export function isValidEvent( event: RoomEvent | StateEvent, eventType: string, - schema: Joi.AnySchema + schema: Joi.AnySchema, ): boolean { if (event.type !== eventType) { return false; diff --git a/example-widget-mui/src/index.tsx b/example-widget-mui/src/index.tsx index c9460fe5..2a7368e8 100644 --- a/example-widget-mui/src/index.tsx +++ b/example-widget-mui/src/index.tsx @@ -31,7 +31,7 @@ const widgetApiPromise = WidgetApiImpl.create({ capabilities: [ WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), ], }); @@ -40,5 +40,5 @@ ReactDOM.render( , - document.getElementById('root') + document.getElementById('root'), ); diff --git a/example-widget-semantic-ui/craco.config.js b/example-widget-semantic-ui/craco.config.js index 376893d4..8fabedb0 100644 --- a/example-widget-semantic-ui/craco.config.js +++ b/example-widget-semantic-ui/craco.config.js @@ -18,7 +18,7 @@ function importLocalPackages() { function overrideWebpackConfig({ webpackConfig, context }) { const { isFound, match } = getLoader( webpackConfig, - loaderByName('babel-loader') + loaderByName('babel-loader'), ); if (isFound) { const include = Array.isArray(match.loader.include) diff --git a/example-widget-semantic-ui/public/index.html b/example-widget-semantic-ui/public/index.html index 67bed2d4..1df343f2 100644 --- a/example-widget-semantic-ui/public/index.html +++ b/example-widget-semantic-ui/public/index.html @@ -1,4 +1,4 @@ - + diff --git a/example-widget-semantic-ui/src/AllRoomsPage/AllRoomsPage.test.tsx b/example-widget-semantic-ui/src/AllRoomsPage/AllRoomsPage.test.tsx index 41989245..4a5be20c 100644 --- a/example-widget-semantic-ui/src/AllRoomsPage/AllRoomsPage.test.tsx +++ b/example-widget-semantic-ui/src/AllRoomsPage/AllRoomsPage.test.tsx @@ -63,15 +63,15 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('button', { name: /back to navigation/i }) + screen.getByRole('button', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect(screen.findByText(/room list/i)).resolves.toBeInTheDocument(); expect( - screen.getByText(/you have no rooms. click the button to refresh\./i) + screen.getByText(/you have no rooms. click the button to refresh\./i), ).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /refresh the room information/i }) + screen.getByRole('button', { name: /refresh the room information/i }), ).toBeInTheDocument(); }); @@ -82,7 +82,7 @@ describe('', () => { 'org.matrix.msc2762.timeline:*', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), 'org.matrix.msc2931.navigate', ]); @@ -94,31 +94,31 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/you have no rooms. click the button to refresh\./i) + screen.findByText(/you have no rooms. click the button to refresh\./i), ).resolves.toBeInTheDocument(); }); it('should render a list of rooms', async () => { widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }) + mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }), ); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-2', content: { name: 'Room 2' } }) + mockRoomNameEvent({ room_id: '!room-id-2', content: { name: 'Room 2' } }), ); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-3', content: { name: 'Room 3' } }) + mockRoomNameEvent({ room_id: '!room-id-3', content: { name: 'Room 3' } }), ); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-4', content: { name: 'Room 4' } }) + mockRoomNameEvent({ room_id: '!room-id-4', content: { name: 'Room 4' } }), ); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-5', content: { name: 'Room 5' } }) + mockRoomNameEvent({ room_id: '!room-id-5', content: { name: 'Room 5' } }), ); render(, { wrapper }); await expect( - screen.findByText(/all your rooms:/i) + screen.findByText(/all your rooms:/i), ).resolves.toBeInTheDocument(); expect(screen.getByRole('button', { name: /room 1/i })).toBeInTheDocument(); expect(screen.getByRole('button', { name: /room 2/i })).toBeInTheDocument(); @@ -130,26 +130,26 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/you have no rooms. click the button to refresh\./i) + screen.findByText(/you have no rooms. click the button to refresh\./i), ).resolves.toBeInTheDocument(); widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }) + mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }), ); await userEvent.click( - screen.getByRole('button', { name: /refresh the room information/i }) + screen.getByRole('button', { name: /refresh the room information/i }), ); await expect( - screen.findByText(/all your rooms:/i) + screen.findByText(/all your rooms:/i), ).resolves.toBeInTheDocument(); expect(screen.getByRole('button', { name: /room 1/i })).toBeInTheDocument(); }); it('should navigate to the room', async () => { widgetApi.mockSendStateEvent( - mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }) + mockRoomNameEvent({ room_id: '!room-id-1', content: { name: 'Room 1' } }), ); render(, { wrapper }); @@ -158,7 +158,7 @@ describe('', () => { await userEvent.click(button); expect(widgetApi.navigateTo).toBeCalledWith( - 'https://matrix.to/#/!room-id-1' + 'https://matrix.to/#/!room-id-1', ); }); }); diff --git a/example-widget-semantic-ui/src/AllRoomsPage/AllRoomsPage.tsx b/example-widget-semantic-ui/src/AllRoomsPage/AllRoomsPage.tsx index 7a70d7de..e0a188a5 100644 --- a/example-widget-semantic-ui/src/AllRoomsPage/AllRoomsPage.tsx +++ b/example-widget-semantic-ui/src/AllRoomsPage/AllRoomsPage.tsx @@ -60,7 +60,7 @@ export const AllRoomsPage = (): ReactElement => { ...generateRoomTimelineCapabilities(Symbols.AnyRoom), WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), WIDGET_CAPABILITY_NAVIGATE, ]} diff --git a/example-widget-semantic-ui/src/App/App.test.tsx b/example-widget-semantic-ui/src/App/App.test.tsx index 31cecd3a..caded32e 100644 --- a/example-widget-semantic-ui/src/App/App.test.tsx +++ b/example-widget-semantic-ui/src/App/App.test.tsx @@ -24,6 +24,6 @@ it('should render error message', async () => { render(); await expect( - screen.findByText(/only runs as a widget/i) + screen.findByText(/only runs as a widget/i), ).resolves.toBeInTheDocument(); }); diff --git a/example-widget-semantic-ui/src/DicePage/DicePage.test.tsx b/example-widget-semantic-ui/src/DicePage/DicePage.test.tsx index a18f1abd..a09000fc 100644 --- a/example-widget-semantic-ui/src/DicePage/DicePage.test.tsx +++ b/example-widget-semantic-ui/src/DicePage/DicePage.test.tsx @@ -43,17 +43,17 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('button', { name: /back to navigation/i }) + screen.getByRole('button', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByText(/dice simulator/i) + screen.findByText(/dice simulator/i), ).resolves.toBeInTheDocument(); expect( - screen.getByText(/nobody has thrown the dice in this room yet/i) + screen.getByText(/nobody has thrown the dice in this room yet/i), ).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /throw dice/i }) + screen.getByRole('button', { name: /throw dice/i }), ).toBeInTheDocument(); }); @@ -63,7 +63,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forRoomEvent( EventDirection.Receive, - 'net.nordeck.throw_dice' + 'net.nordeck.throw_dice', ), ]); @@ -73,7 +73,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forRoomEvent( EventDirection.Send, - 'net.nordeck.throw_dice' + 'net.nordeck.throw_dice', ), ]); }); @@ -82,7 +82,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/nobody has thrown the dice in this room yet/i) + screen.findByText(/nobody has thrown the dice in this room yet/i), ).resolves.toBeInTheDocument(); }); @@ -116,7 +116,7 @@ describe('', () => { await userEvent.click(button); await expect( - screen.findByText(/your last throw: ./i) + screen.findByText(/your last throw: ./i), ).resolves.toBeInTheDocument(); expect(widgetApi.sendRoomEvent).toBeCalledWith('net.nordeck.throw_dice', { diff --git a/example-widget-semantic-ui/src/DicePage/DicePage.tsx b/example-widget-semantic-ui/src/DicePage/DicePage.tsx index 22153d34..446cbee7 100644 --- a/example-widget-semantic-ui/src/DicePage/DicePage.tsx +++ b/example-widget-semantic-ui/src/DicePage/DicePage.tsx @@ -53,7 +53,7 @@ export const DicePage = (): ReactElement => { capabilities={[ WidgetEventCapability.forRoomEvent( EventDirection.Receive, - STATE_EVENT_THROW_DICE + STATE_EVENT_THROW_DICE, ), ]} > @@ -75,7 +75,7 @@ export const DiceView = (): ReactElement => { .observeRoomEvents(STATE_EVENT_THROW_DICE) .pipe( filter(isValidThrowDiceEvent), - map((r) => r.content.pips) + map((r) => r.content.pips), ) .subscribe((d) => { setDices((l) => [...l, d]); @@ -90,14 +90,14 @@ export const DiceView = (): ReactElement => { await widgetApi.requestCapabilities([ WidgetEventCapability.forRoomEvent( EventDirection.Send, - STATE_EVENT_THROW_DICE + STATE_EVENT_THROW_DICE, ), ]); const pips = Math.floor(Math.random() * 6) + 1; const result = await widgetApi.sendRoomEvent( STATE_EVENT_THROW_DICE, - { pips } + { pips }, ); setLastOwnDice(result.content.pips); } diff --git a/example-widget-semantic-ui/src/IdentityPage/IdentityPage.test.tsx b/example-widget-semantic-ui/src/IdentityPage/IdentityPage.test.tsx index e09f276d..8dcc1956 100644 --- a/example-widget-semantic-ui/src/IdentityPage/IdentityPage.test.tsx +++ b/example-widget-semantic-ui/src/IdentityPage/IdentityPage.test.tsx @@ -50,7 +50,7 @@ describe('', () => { expect(screen.getByText(/loading/i)).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /back to navigation/i }) + screen.getByRole('button', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect(screen.findByText(/Identity/i)).resolves.toBeInTheDocument(); @@ -75,8 +75,8 @@ describe('', () => { } return res(ctx.json({ sub: '@alice:example.com' })); - } - ) + }, + ), ); render(, { wrapper }); @@ -85,13 +85,13 @@ describe('', () => { await expect(screen.findByText(/result/i)).resolves.toBeInTheDocument(); expect( - screen.getByText(`{ "sub": "@alice:example.com" }`) + screen.getByText(`{ "sub": "@alice:example.com" }`), ).toBeInTheDocument(); }); it('should show an error if the user rejected the token capability', async () => { widgetApi.requestOpenIDConnectToken.mockRejectedValue( - new Error('The user rejected the request') + new Error('The user rejected the request'), ); render(, { wrapper }); @@ -99,7 +99,7 @@ describe('', () => { expect(screen.getByText(/loading/i)).toBeInTheDocument(); await expect( - screen.findByText(/error: the user rejected the request/i) + screen.findByText(/error: the user rejected the request/i), ).resolves.toBeInTheDocument(); }); @@ -111,7 +111,7 @@ describe('', () => { expect(screen.getByText(/loading/i)).toBeInTheDocument(); await expect( - screen.findByText(/error: unknown home server/i) + screen.findByText(/error: unknown home server/i), ).resolves.toBeInTheDocument(); }); @@ -125,7 +125,7 @@ describe('', () => { expect(screen.getByText(/loading/i)).toBeInTheDocument(); await expect( - screen.findByText(/error: unknown token type/i) + screen.findByText(/error: unknown token type/i), ).resolves.toBeInTheDocument(); }); @@ -142,8 +142,8 @@ describe('', () => { 'https://synapse.local/_matrix/federation/v1/openid/userinfo', (req, res, ctx) => { return res(ctx.status(500), ctx.json('Internal Server Error')); - } - ) + }, + ), ); render(, { wrapper }); @@ -152,8 +152,8 @@ describe('', () => { await expect( screen.findByText( - /error: error while retrieving identity: "Internal Server Error"/i - ) + /error: error while retrieving identity: "Internal Server Error"/i, + ), ).resolves.toBeInTheDocument(); }); }); diff --git a/example-widget-semantic-ui/src/IdentityPage/IdentityPage.tsx b/example-widget-semantic-ui/src/IdentityPage/IdentityPage.tsx index 7271d808..c8e7cb20 100644 --- a/example-widget-semantic-ui/src/IdentityPage/IdentityPage.tsx +++ b/example-widget-semantic-ui/src/IdentityPage/IdentityPage.tsx @@ -72,8 +72,8 @@ export const IdentityView = (): ReactElement => { `Error while retrieving identity: ${JSON.stringify( value, undefined, - ' ' - )}` + ' ', + )}`, ); } diff --git a/example-widget-semantic-ui/src/ModalPage/ModalDialog.test.tsx b/example-widget-semantic-ui/src/ModalPage/ModalDialog.test.tsx index 4fb36081..0a82b88c 100644 --- a/example-widget-semantic-ui/src/ModalPage/ModalDialog.test.tsx +++ b/example-widget-semantic-ui/src/ModalPage/ModalDialog.test.tsx @@ -53,7 +53,7 @@ describe('', () => { expect(screen.getByText(/some content…/i)).toBeInTheDocument(); expect(screen.getByText(/Room ID: !room-id/i)).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /i am confident!/i }) + screen.getByRole('button', { name: /i am confident!/i }), ).toBeInTheDocument(); }); @@ -63,7 +63,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/this widget was not opened in a modal\./i) + screen.findByText(/this widget was not opened in a modal\./i), ).resolves.toBeInTheDocument(); }); @@ -73,14 +73,14 @@ describe('', () => { await waitFor(() => { expect(widgetApi.setModalButtonEnabled).toBeCalledWith( 'net.nordeck.create.poll.yes', - true + true, ); }); await waitFor(() => { expect(widgetApi.setModalButtonEnabled).toBeCalledWith( 'net.nordeck.create.poll.no', - true + true, ); }); }); @@ -89,13 +89,13 @@ describe('', () => { render(, { wrapper }); await userEvent.click( - screen.getByRole('button', { name: /i am confident!/i }) + screen.getByRole('button', { name: /i am confident!/i }), ); await waitFor(() => { expect(widgetApi.setModalButtonEnabled).toBeCalledWith( 'net.nordeck.create.poll.yessssss', - true + true, ); }); }); diff --git a/example-widget-semantic-ui/src/ModalPage/ModalPage.test.tsx b/example-widget-semantic-ui/src/ModalPage/ModalPage.test.tsx index ceaaebde..d86d3a8c 100644 --- a/example-widget-semantic-ui/src/ModalPage/ModalPage.test.tsx +++ b/example-widget-semantic-ui/src/ModalPage/ModalPage.test.tsx @@ -43,14 +43,14 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('button', { name: /back to navigation/i }) + screen.getByRole('button', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByText(/example for modals/i) + screen.findByText(/example for modals/i), ).resolves.toBeInTheDocument(); expect( - screen.getByRole('button', { name: /open modal/i }) + screen.getByRole('button', { name: /open modal/i }), ).toBeInTheDocument(); }); @@ -60,7 +60,7 @@ describe('', () => { await userEvent.click(screen.getByRole('button', { name: /open modal/i })); await expect( - screen.findByText(/no answer :-\(/i) + screen.findByText(/no answer :-\(/i), ).resolves.toBeInTheDocument(); expect(widgetApi.openModal).toBeCalledWith( @@ -90,7 +90,7 @@ describe('', () => { data: { title: 'This is a custom title!', }, - } + }, ); }); @@ -104,7 +104,7 @@ describe('', () => { await userEvent.click(screen.getByRole('button', { name: /open modal/i })); await expect( - screen.findByText(/result: yes!!!!!/i) + screen.findByText(/result: yes!!!!!/i), ).resolves.toBeInTheDocument(); }); }); diff --git a/example-widget-semantic-ui/src/ModalPage/ModalPage.tsx b/example-widget-semantic-ui/src/ModalPage/ModalPage.tsx index 2bc3a8d8..11719b73 100644 --- a/example-widget-semantic-ui/src/ModalPage/ModalPage.tsx +++ b/example-widget-semantic-ui/src/ModalPage/ModalPage.tsx @@ -62,7 +62,7 @@ export const ModalPage = (): ReactElement => { }, ], data: { title: 'This is a custom title!' }, - } + }, ); if (!data) { diff --git a/example-widget-semantic-ui/src/PowerLevelsPage/PowerLevelsPage.test.tsx b/example-widget-semantic-ui/src/PowerLevelsPage/PowerLevelsPage.test.tsx index 7989efab..b76ee0a7 100644 --- a/example-widget-semantic-ui/src/PowerLevelsPage/PowerLevelsPage.test.tsx +++ b/example-widget-semantic-ui/src/PowerLevelsPage/PowerLevelsPage.test.tsx @@ -76,11 +76,11 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('button', { name: /back to navigation/i }) + screen.getByRole('button', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByText(/room power levels/i) + screen.findByText(/room power levels/i), ).resolves.toBeInTheDocument(); const listbox = screen.getByRole('listbox', { expanded: false }); @@ -90,7 +90,7 @@ describe('', () => { name: '@another-user', selected: true, checked: true, - }) + }), ).toBeInTheDocument(); expect(screen.getByText(/state events/i)).toBeInTheDocument(); @@ -98,7 +98,7 @@ describe('', () => { expect(screen.getByText(/actions/i)).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /promote/i }) + screen.getByRole('button', { name: /promote/i }), ).toBeInTheDocument(); expect(screen.getByRole('button', { name: /demote/i })).toBeInTheDocument(); }); @@ -112,28 +112,28 @@ describe('', () => { within(listbox).getByRole('option', { name: '@another-user', selected: true, - }) + }), ).toBeInTheDocument(); await userEvent.click( within(listbox).getByRole('option', { name: '@user-id You', selected: false, - }) + }), ); expect( within(listbox).getByRole('option', { name: '@another-user', selected: false, - }) + }), ).toBeInTheDocument(); expect( within(listbox).getByRole('option', { name: '@user-id You', selected: true, - }) + }), ).toBeInTheDocument(); }); @@ -143,11 +143,11 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.power_levels' + 'm.room.power_levels', ), WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.member' + 'm.room.member', ), ]); @@ -158,7 +158,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forStateEvent( EventDirection.Send, - 'm.room.power_levels' + 'm.room.power_levels', ), ]); }); @@ -173,7 +173,7 @@ describe('', () => { within(listbox).getByRole('option', { name: '@user-id You', selected: false, - }) + }), ); const promoteButton = screen.getByRole('button', { diff --git a/example-widget-semantic-ui/src/PowerLevelsPage/PowerLevelsPage.tsx b/example-widget-semantic-ui/src/PowerLevelsPage/PowerLevelsPage.tsx index 2ac3363a..1f5148c1 100644 --- a/example-widget-semantic-ui/src/PowerLevelsPage/PowerLevelsPage.tsx +++ b/example-widget-semantic-ui/src/PowerLevelsPage/PowerLevelsPage.tsx @@ -87,11 +87,11 @@ export const PowerLevelsPage = (): ReactElement => { capabilities={[ WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ), WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_MEMBER + STATE_EVENT_ROOM_MEMBER, ), ]} > @@ -174,14 +174,14 @@ export const PowerLevelsView = (): ReactElement => { const canPromoteOrDemote = hasStateEventPower( powerLevelsEvent?.content, widgetApi.widgetParameters.userId, - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ); // we assume that users that can change the name can be promoted or demoted const userIsModerator = hasStateEventPower( powerLevelsEvent?.content, selectedMember, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ); return ( @@ -212,7 +212,7 @@ export const PowerLevelsView = (): ReactElement => { permitted={hasStateEventPower( powerLevelsEvent?.content, selectedMember, - type + type, )} /> {type} @@ -227,7 +227,7 @@ export const PowerLevelsView = (): ReactElement => { permitted={hasRoomEventPower( powerLevelsEvent?.content, selectedMember, - type + type, )} /> {type} @@ -242,7 +242,7 @@ export const PowerLevelsView = (): ReactElement => { permitted={hasActionPower( powerLevelsEvent?.content, selectedMember, - action + action, )} /> {action} diff --git a/example-widget-semantic-ui/src/PowerLevelsPage/powerLevelsApi.test.ts b/example-widget-semantic-ui/src/PowerLevelsPage/powerLevelsApi.test.ts index 8e3801ab..6c8da24e 100644 --- a/example-widget-semantic-ui/src/PowerLevelsPage/powerLevelsApi.test.ts +++ b/example-widget-semantic-ui/src/PowerLevelsPage/powerLevelsApi.test.ts @@ -44,7 +44,7 @@ describe('getPowerLevels', () => { await expect( store .dispatch(powerLevelsApi.endpoints.getPowerLevels.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual({ content: { users_default: 50 } }); }); @@ -56,7 +56,7 @@ describe('getPowerLevels', () => { await expect( store .dispatch(powerLevelsApi.endpoints.getPowerLevels.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual({ content: undefined }); }); @@ -69,8 +69,8 @@ describe('getPowerLevels', () => { // wait for the initial load await waitFor(() => expect( - powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data - ).toEqual({ content: { users_default: 50 } }) + powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data, + ).toEqual({ content: { users_default: 50 } }), ); widgetApi.mockSendStateEvent({ @@ -86,8 +86,8 @@ describe('getPowerLevels', () => { // wait for the change await waitFor(() => expect( - powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data - ).toEqual({ content: { users_default: 0 } }) + powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data, + ).toEqual({ content: { users_default: 0 } }), ); }); }); @@ -101,9 +101,9 @@ describe('updatePowerLevels', () => { .dispatch( powerLevelsApi.endpoints.updatePowerLevels.initiate({ users_default: 100, - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toMatchObject({ content: { users_default: 100, @@ -139,13 +139,13 @@ describe('updatePowerLevels', () => { .dispatch( powerLevelsApi.endpoints.updatePowerLevels.initiate({ users_default: 100, - }) + }), ) - .unwrap() + .unwrap(), ).resolves.toBeDefined(); expect( - powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data + powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data, ).toEqual({ content: { users_default: 100 } }); }); @@ -165,13 +165,13 @@ describe('updatePowerLevels', () => { .dispatch( powerLevelsApi.endpoints.updatePowerLevels.initiate({ users_default: 100, - }) + }), ) - .unwrap() + .unwrap(), ).rejects.toBeDefined(); expect( - powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data + powerLevelsApi.endpoints.getPowerLevels.select()(store.getState()).data, ).toEqual({ content: { users_default: 50 } }); }); }); diff --git a/example-widget-semantic-ui/src/PowerLevelsPage/powerLevelsApi.ts b/example-widget-semantic-ui/src/PowerLevelsPage/powerLevelsApi.ts index de3dfa82..c15baefd 100644 --- a/example-widget-semantic-ui/src/PowerLevelsPage/powerLevelsApi.ts +++ b/example-widget-semantic-ui/src/PowerLevelsPage/powerLevelsApi.ts @@ -43,7 +43,7 @@ export const powerLevelsApi = baseApi.injectEndpoints({ try { const events = await widgetApi.receiveStateEvents( - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ); const event = first(events.filter(isValidPowerLevelStateEvent)); @@ -65,7 +65,7 @@ export const powerLevelsApi = baseApi.injectEndpoints({ // see also https://redux-toolkit.js.org/rtk-query/usage/streaming-updates#using-the-oncacheentryadded-lifecycle async onCacheEntryAdded( _, - { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData } + { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData }, ) { const { widgetApi } = extra as ThunkExtraArgument; @@ -106,8 +106,8 @@ export const powerLevelsApi = baseApi.injectEndpoints({ if (draft.content) { draft.content = content; } - } - ) + }, + ), ); try { @@ -124,13 +124,13 @@ export const powerLevelsApi = baseApi.injectEndpoints({ await widgetApi.requestCapabilities([ WidgetEventCapability.forStateEvent( EventDirection.Send, - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ), ]); const newEvent = await widgetApi.sendStateEvent( STATE_EVENT_POWER_LEVELS, - content + content, ); return { data: newEvent }; diff --git a/example-widget-semantic-ui/src/PowerLevelsPage/roomMembersApi.test.ts b/example-widget-semantic-ui/src/PowerLevelsPage/roomMembersApi.test.ts index 9caf1a08..2d24d842 100644 --- a/example-widget-semantic-ui/src/PowerLevelsPage/roomMembersApi.test.ts +++ b/example-widget-semantic-ui/src/PowerLevelsPage/roomMembersApi.test.ts @@ -55,13 +55,13 @@ beforeEach(() => { mockRoomMemberEvent({ state_key: '@user-1', content: { membership: 'join' }, - }) + }), ); user2 = widgetApi.mockSendStateEvent( mockRoomMemberEvent({ state_key: '@user-2', content: { membership: 'invite' }, - }) + }), ); }); @@ -72,7 +72,7 @@ describe('getRoomMembers', () => { await expect( store .dispatch(roomMembersApi.endpoints.getRoomMembers.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual({ entities: { [user1.state_key]: user1, @@ -90,7 +90,7 @@ describe('getRoomMembers', () => { await expect( store .dispatch(roomMembersApi.endpoints.getRoomMembers.initiate()) - .unwrap() + .unwrap(), ).resolves.toEqual({ entities: {}, ids: [] }); }); @@ -103,24 +103,24 @@ describe('getRoomMembers', () => { // wait for the initial load await waitFor(() => expect( - roomMembersApi.endpoints.getRoomMembers.select()(store.getState()).data + roomMembersApi.endpoints.getRoomMembers.select()(store.getState()).data, ).toEqual({ entities: { [user1.state_key]: user1, [user2.state_key]: user2, }, ids: [user1.state_key, user2.state_key], - }) + }), ); const userNew = widgetApi.mockSendStateEvent( - mockRoomMemberEvent({ state_key: '@user-new' }) + mockRoomMemberEvent({ state_key: '@user-new' }), ); // wait for the change await waitFor(() => expect( - roomMembersApi.endpoints.getRoomMembers.select()(store.getState()).data + roomMembersApi.endpoints.getRoomMembers.select()(store.getState()).data, ).toEqual({ entities: { [user1.state_key]: user1, @@ -128,7 +128,7 @@ describe('getRoomMembers', () => { [userNew.state_key]: userNew, }, ids: [user1.state_key, user2.state_key, userNew.state_key], - }) + }), ); }); }); diff --git a/example-widget-semantic-ui/src/PowerLevelsPage/roomMembersApi.ts b/example-widget-semantic-ui/src/PowerLevelsPage/roomMembersApi.ts index e710909c..1725f35e 100644 --- a/example-widget-semantic-ui/src/PowerLevelsPage/roomMembersApi.ts +++ b/example-widget-semantic-ui/src/PowerLevelsPage/roomMembersApi.ts @@ -51,13 +51,13 @@ export const roomMembersApi = baseApi.injectEndpoints({ try { const events = await widgetApi.receiveStateEvents( - STATE_EVENT_ROOM_MEMBER + STATE_EVENT_ROOM_MEMBER, ); return { data: roomMembersEntityAdapter.addMany( roomMembersEntityAdapter.getInitialState(), - events.filter(isValidRoomMemberStateEvent) + events.filter(isValidRoomMemberStateEvent), ), }; } catch (e) { @@ -76,7 +76,7 @@ export const roomMembersApi = baseApi.injectEndpoints({ // see also https://redux-toolkit.js.org/rtk-query/usage/streaming-updates#using-the-oncacheentryadded-lifecycle async onCacheEntryAdded( _, - { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData } + { cacheDataLoaded, cacheEntryRemoved, extra, updateCachedData }, ) { const { widgetApi } = extra as ThunkExtraArgument; @@ -89,11 +89,11 @@ export const roomMembersApi = baseApi.injectEndpoints({ // update the cached data if the event changes in the room if (isValidRoomMemberStateEvent(event)) { updateCachedData((state) => - roomMembersEntityAdapter.upsertOne(state, event) + roomMembersEntityAdapter.upsertOne(state, event), ); } else { updateCachedData((state) => - roomMembersEntityAdapter.removeOne(state, event.state_key) + roomMembersEntityAdapter.removeOne(state, event.state_key), ); } }); diff --git a/example-widget-semantic-ui/src/RoomPage/RoomPage.test.tsx b/example-widget-semantic-ui/src/RoomPage/RoomPage.test.tsx index 13db2db1..9a694850 100644 --- a/example-widget-semantic-ui/src/RoomPage/RoomPage.test.tsx +++ b/example-widget-semantic-ui/src/RoomPage/RoomPage.test.tsx @@ -55,15 +55,15 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('button', { name: /back to navigation/i }) + screen.getByRole('button', { name: /back to navigation/i }), ).toBeInTheDocument(); await expect( - screen.findByText(/room admin tool/i) + screen.findByText(/room admin tool/i), ).resolves.toBeInTheDocument(); expect(screen.getByText(/current room name:/i)).toBeInTheDocument(); expect( - screen.getByRole('button', { name: /rename room/i }) + screen.getByRole('button', { name: /rename room/i }), ).toBeInTheDocument(); }); @@ -73,7 +73,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledWith([ WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), ]); @@ -91,7 +91,7 @@ describe('', () => { render(, { wrapper }); await expect( - screen.findByText(/current room name: a test room/i) + screen.findByText(/current room name: a test room/i), ).resolves.toBeInTheDocument(); }); @@ -102,7 +102,7 @@ describe('', () => { await userEvent.click(button); await expect( - screen.findByText(/current room name: a test room!/i) + screen.findByText(/current room name: a test room!/i), ).resolves.toBeInTheDocument(); expect(widgetApi.sendStateEvent).toBeCalledWith('m.room.name', { diff --git a/example-widget-semantic-ui/src/RoomPage/RoomPage.tsx b/example-widget-semantic-ui/src/RoomPage/RoomPage.tsx index 56ae1388..dd3263be 100644 --- a/example-widget-semantic-ui/src/RoomPage/RoomPage.tsx +++ b/example-widget-semantic-ui/src/RoomPage/RoomPage.tsx @@ -48,7 +48,7 @@ export const RoomPage = (): ReactElement => { capabilities={[ WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), ]} > @@ -64,9 +64,9 @@ export const RoomView = (): ReactElement => { () => widgetApi.observeStateEvents(STATE_EVENT_ROOM_NAME).pipe( filter(isValidRoomNameEvent), - map((r) => r?.content.name) + map((r) => r?.content.name), ), - [widgetApi] + [widgetApi], ); const roomName = useObservable(roomName$, undefined); @@ -75,12 +75,12 @@ export const RoomView = (): ReactElement => { await widgetApi.requestCapabilities([ WidgetEventCapability.forStateEvent( EventDirection.Send, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), ]); const readResult = await widgetApi.receiveSingleStateEvent( - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ); if (readResult && isValidRoomNameEvent(readResult)) { @@ -89,7 +89,7 @@ export const RoomView = (): ReactElement => { STATE_EVENT_ROOM_NAME, { name: `${oldName}!`, - } + }, ); } } catch (err) { diff --git a/example-widget-semantic-ui/src/ThemePage/ThemePage.test.tsx b/example-widget-semantic-ui/src/ThemePage/ThemePage.test.tsx index a364b2f7..63f01dff 100644 --- a/example-widget-semantic-ui/src/ThemePage/ThemePage.test.tsx +++ b/example-widget-semantic-ui/src/ThemePage/ThemePage.test.tsx @@ -25,7 +25,7 @@ describe('', () => { }); expect( - screen.getByRole('button', { name: 'Back to navigation' }) + screen.getByRole('button', { name: 'Back to navigation' }), ).toBeInTheDocument(); }); diff --git a/example-widget-semantic-ui/src/WelcomePage/WelcomePage.test.tsx b/example-widget-semantic-ui/src/WelcomePage/WelcomePage.test.tsx index 7e9bc555..598db09e 100644 --- a/example-widget-semantic-ui/src/WelcomePage/WelcomePage.test.tsx +++ b/example-widget-semantic-ui/src/WelcomePage/WelcomePage.test.tsx @@ -41,7 +41,7 @@ describe('', () => { render(, { wrapper }); expect( - screen.getByRole('button', { name: /back to navigation/i }) + screen.getByRole('button', { name: /back to navigation/i }), ).toBeInTheDocument(); expect(screen.getByText(/welcome .+/i)).toBeInTheDocument(); diff --git a/example-widget-semantic-ui/src/events/roomNameEvent.test.ts b/example-widget-semantic-ui/src/events/roomNameEvent.test.ts index e25680de..e31e4460 100644 --- a/example-widget-semantic-ui/src/events/roomNameEvent.test.ts +++ b/example-widget-semantic-ui/src/events/roomNameEvent.test.ts @@ -29,7 +29,7 @@ describe('isValidRoomNameEvent', () => { state_key: '', sender: '@user-id', type: 'm.room.name', - }) + }), ).toBe(true); }); @@ -46,7 +46,7 @@ describe('isValidRoomNameEvent', () => { state_key: '', sender: '@user-id', type: 'm.room.name', - }) + }), ).toBe(true); }); @@ -65,8 +65,8 @@ describe('isValidRoomNameEvent', () => { state_key: '', sender: '@user-id', type: 'm.room.name', - }) + }), ).toBe(false); - } + }, ); }); diff --git a/example-widget-semantic-ui/src/events/roomNameEvent.ts b/example-widget-semantic-ui/src/events/roomNameEvent.ts index d16b7958..0fd74ee1 100644 --- a/example-widget-semantic-ui/src/events/roomNameEvent.ts +++ b/example-widget-semantic-ui/src/events/roomNameEvent.ts @@ -40,7 +40,7 @@ const roomNameEventSchema = Joi.object({ * @returns true, if the event is valid. */ export function isValidRoomNameEvent( - event: StateEvent + event: StateEvent, ): event is StateEvent { return isValidEvent(event, STATE_EVENT_ROOM_NAME, roomNameEventSchema); } diff --git a/example-widget-semantic-ui/src/events/throwDiceEvent.test.ts b/example-widget-semantic-ui/src/events/throwDiceEvent.test.ts index 2b90aa0a..37b36861 100644 --- a/example-widget-semantic-ui/src/events/throwDiceEvent.test.ts +++ b/example-widget-semantic-ui/src/events/throwDiceEvent.test.ts @@ -28,7 +28,7 @@ describe('isValidThrowDiceEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'net.nordeck.throw_dice', - }) + }), ).toBe(true); }); @@ -44,7 +44,7 @@ describe('isValidThrowDiceEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'net.nordeck.throw_dice', - }) + }), ).toBe(true); }); @@ -62,8 +62,8 @@ describe('isValidThrowDiceEvent', () => { room_id: '!room-id', sender: '@user-id', type: 'net.nordeck.throw_dice', - }) + }), ).toBe(false); - } + }, ); }); diff --git a/example-widget-semantic-ui/src/events/throwDiceEvent.ts b/example-widget-semantic-ui/src/events/throwDiceEvent.ts index 07e830e4..f11c0067 100644 --- a/example-widget-semantic-ui/src/events/throwDiceEvent.ts +++ b/example-widget-semantic-ui/src/events/throwDiceEvent.ts @@ -39,7 +39,7 @@ const throwDiceEventSchema = Joi.object({ * @returns true, if the event is valid. */ export function isValidThrowDiceEvent( - event: RoomEvent + event: RoomEvent, ): event is RoomEvent { return isValidEvent(event, STATE_EVENT_THROW_DICE, throwDiceEventSchema); } diff --git a/example-widget-semantic-ui/src/events/validation.test.ts b/example-widget-semantic-ui/src/events/validation.test.ts index f68e88d2..a6a99df1 100644 --- a/example-widget-semantic-ui/src/events/validation.test.ts +++ b/example-widget-semantic-ui/src/events/validation.test.ts @@ -42,7 +42,7 @@ describe('isValidEvent', () => { event.type = 'com.example.other'; expect(isValidEvent(event, 'com.example.event', exampleSchema)).toEqual( - false + false, ); }); @@ -50,7 +50,7 @@ describe('isValidEvent', () => { event.content = undefined; expect(isValidEvent(event, 'com.example.event', exampleSchema)).toEqual( - false + false, ); }); @@ -58,13 +58,13 @@ describe('isValidEvent', () => { event.content = { other: 'my-value' }; expect(isValidEvent(event, 'com.example.event', exampleSchema)).toEqual( - false + false, ); }); it('should validate successful', () => { expect(isValidEvent(event, 'com.example.event', exampleSchema)).toEqual( - true + true, ); }); }); diff --git a/example-widget-semantic-ui/src/events/validation.ts b/example-widget-semantic-ui/src/events/validation.ts index d54a02b6..8472a7df 100644 --- a/example-widget-semantic-ui/src/events/validation.ts +++ b/example-widget-semantic-ui/src/events/validation.ts @@ -20,7 +20,7 @@ import Joi from 'joi'; export function isValidEvent( event: RoomEvent | StateEvent, eventType: string, - schema: Joi.AnySchema + schema: Joi.AnySchema, ): boolean { if (event.type !== eventType) { return false; diff --git a/example-widget-semantic-ui/src/index.tsx b/example-widget-semantic-ui/src/index.tsx index 2d63cfee..5db9c8ea 100644 --- a/example-widget-semantic-ui/src/index.tsx +++ b/example-widget-semantic-ui/src/index.tsx @@ -32,7 +32,7 @@ const widgetApiPromise = WidgetApiImpl.create({ capabilities: [ WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), ], }); @@ -41,5 +41,5 @@ ReactDOM.render( , - document.getElementById('root') + document.getElementById('root'), ); diff --git a/packages/api/README.md b/packages/api/README.md index 64360542..ce0c345e 100644 --- a/packages/api/README.md +++ b/packages/api/README.md @@ -38,7 +38,7 @@ import { WidgetEventCapability } from 'matrix-widget-api'; await widgetApi.requestCapabilities([ WidgetEventCapability.forStateEvent( EventDirection.Send, - STATE_EVENT_POWER_LEVELS + STATE_EVENT_POWER_LEVELS, ), ]); ``` diff --git a/packages/api/src/api/WidgetApiImpl.test.ts b/packages/api/src/api/WidgetApiImpl.test.ts index 57c7a278..67280d35 100644 --- a/packages/api/src/api/WidgetApiImpl.test.ts +++ b/packages/api/src/api/WidgetApiImpl.test.ts @@ -87,10 +87,10 @@ describe('WidgetApiImpl', () => { 'my.capability', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), ], - } + }, ); parseWidgetId.mockReturnValue({ isModal: false, @@ -114,7 +114,7 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.once).toBeCalledWith( 'ready', - expect.any(Function) + expect.any(Function), ); }); @@ -136,11 +136,11 @@ describe('WidgetApiImpl', () => { 'my.capability', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), ], supportStandalone: true, - } + }, ); await expect(widgetApi.initialize()).resolves.toBeUndefined(); @@ -151,7 +151,7 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.once).toBeCalledWith( 'ready', - expect.any(Function) + expect.any(Function), ); }); @@ -192,15 +192,15 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.once).toBeCalledWith( 'ready', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.on).toBeCalledWith( `action:${WidgetApiToWidgetAction.WidgetConfig}`, - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( `action:${WidgetApiToWidgetAction.WidgetConfig}`, - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalled(); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -245,21 +245,21 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.off.mockReturnThis(); await expect(() => widgetApi.initialize()).rejects.toThrowError( - 'Transport Error' + 'Transport Error', ); expect(matrixWidgetApi.start).toBeCalled(); expect(matrixWidgetApi.requestCapabilities).toBeCalled(); expect(matrixWidgetApi.once).toBeCalledWith( 'ready', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.on).toBeCalledWith( `action:${WidgetApiToWidgetAction.WidgetConfig}`, - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( `action:${WidgetApiToWidgetAction.WidgetConfig}`, - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalled(); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -298,7 +298,7 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.off.mockReturnThis(); await expect( - widgetApi.rerequestInitialCapabilities() + widgetApi.rerequestInitialCapabilities(), ).resolves.toBeUndefined(); expect(matrixWidgetApi.hasCapability).toBeCalled(); @@ -310,11 +310,11 @@ describe('WidgetApiImpl', () => { expect(matrixWidgetApi.updateRequestedCapabilities).toBeCalled(); expect(matrixWidgetApi.on).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); }); }); @@ -327,10 +327,10 @@ describe('WidgetApiImpl', () => { expect(matrixWidgetApi.hasCapability).toBeCalledWith('my.capability'); expect(matrixWidgetApi.hasCapability).toBeCalledWith( - 'org.matrix.msc2762.receive.state_event:m.room.name' + 'org.matrix.msc2762.receive.state_event:m.room.name', ); expect(matrixWidgetApi.hasCapability).toBeCalledWith( - 'io.element.requires_client' + 'io.element.requires_client', ); }); @@ -341,7 +341,7 @@ describe('WidgetApiImpl', () => { expect(widgetApi.hasInitialCapabilities()).toEqual(false); expect(matrixWidgetApi.hasCapability).toBeCalledWith('my.capability'); expect(matrixWidgetApi.hasCapability).toBeCalledWith( - 'org.matrix.msc2762.receive.state_event:m.room.name' + 'org.matrix.msc2762.receive.state_event:m.room.name', ); }); }); @@ -374,9 +374,9 @@ describe('WidgetApiImpl', () => { 'my.capability', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), - ]) + ]), ).resolves.toBeUndefined(); expect(matrixWidgetApi.hasCapability).toBeCalled(); @@ -387,11 +387,11 @@ describe('WidgetApiImpl', () => { expect(matrixWidgetApi.updateRequestedCapabilities).toBeCalled(); expect(matrixWidgetApi.on).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); }); @@ -403,14 +403,14 @@ describe('WidgetApiImpl', () => { 'my.capability', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), - ]) + ]), ).resolves.toBeUndefined(); expect(matrixWidgetApi.hasCapability).toBeCalledWith('my.capability'); expect(matrixWidgetApi.hasCapability).toBeCalledWith( - 'org.matrix.msc2762.receive.state_event:m.room.name' + 'org.matrix.msc2762.receive.state_event:m.room.name', ); expect(matrixWidgetApi.requestCapabilities).not.toBeCalled(); expect(matrixWidgetApi.updateRequestedCapabilities).not.toBeCalled(); @@ -440,11 +440,11 @@ describe('WidgetApiImpl', () => { 'my.capability', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), - ]) + ]), ).rejects.toThrowError( - 'Capabilities rejected: org.matrix.msc2762.receive.state_event:m.room.name' + 'Capabilities rejected: org.matrix.msc2762.receive.state_event:m.room.name', ); expect(matrixWidgetApi.hasCapability).toBeCalled(); @@ -455,11 +455,11 @@ describe('WidgetApiImpl', () => { expect(matrixWidgetApi.updateRequestedCapabilities).toBeCalled(); expect(matrixWidgetApi.on).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); }); @@ -489,7 +489,7 @@ describe('WidgetApiImpl', () => { Promise.all([ widgetApi.requestCapabilities(['my.capability']), widgetApi.requestCapabilities(['my.capability']), - ]) + ]), ).resolves.toEqual([undefined, undefined]); expect(matrixWidgetApi.hasCapability).toBeCalledWith('my.capability'); @@ -499,11 +499,11 @@ describe('WidgetApiImpl', () => { expect(matrixWidgetApi.updateRequestedCapabilities).toBeCalledTimes(1); expect(matrixWidgetApi.on).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); }); @@ -544,7 +544,7 @@ describe('WidgetApiImpl', () => { const promiseSuccess = widgetApi.requestCapabilities(['my.capability']); await expect(promiseFailure).rejects.toThrowError( - 'Capabilities rejected: my.capability' + 'Capabilities rejected: my.capability', ); await expect(promiseSuccess).resolves.toBeUndefined(); @@ -555,11 +555,11 @@ describe('WidgetApiImpl', () => { expect(matrixWidgetApi.updateRequestedCapabilities).toBeCalledTimes(2); expect(matrixWidgetApi.on).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); }); @@ -568,11 +568,11 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.on.mockReturnThis(); matrixWidgetApi.off.mockReturnThis(); matrixWidgetApi.updateRequestedCapabilities.mockRejectedValue( - new Error('Transport Error') + new Error('Transport Error'), ); await expect( - widgetApi.requestCapabilities(['my.capability']) + widgetApi.requestCapabilities(['my.capability']), ).rejects.toThrowError('Transport Error'); expect(matrixWidgetApi.hasCapability).toBeCalled(); @@ -582,11 +582,11 @@ describe('WidgetApiImpl', () => { expect(matrixWidgetApi.updateRequestedCapabilities).toBeCalled(); expect(matrixWidgetApi.on).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - expect.any(Function) + expect.any(Function), ); }); }); @@ -600,9 +600,9 @@ describe('WidgetApiImpl', () => { 'my.capability', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), - ]) + ]), ).toEqual(true); }); @@ -615,13 +615,13 @@ describe('WidgetApiImpl', () => { 'my.capability', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), - ]) + ]), ).toEqual(false); expect(matrixWidgetApi.hasCapability).toBeCalledWith('my.capability'); expect(matrixWidgetApi.hasCapability).toBeCalledWith( - 'org.matrix.msc2762.receive.state_event:m.room.name' + 'org.matrix.msc2762.receive.state_event:m.room.name', ); }); }); @@ -636,13 +636,13 @@ describe('WidgetApiImpl', () => { ]); await expect( - widgetApi.receiveSingleStateEvent('com.example.test') + widgetApi.receiveSingleStateEvent('com.example.test'), ).resolves.toMatchObject({ content: { hello: 'world' }, state_key: '' }); expect(matrixWidgetApi.readStateEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, '', - undefined + undefined, ); }); @@ -657,8 +657,8 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.receiveSingleStateEvent( 'com.example.test', - 'custom-state-key' - ) + 'custom-state-key', + ), ).resolves.toMatchObject({ type: 'com.example.test', content: { hello: 'world' }, @@ -668,23 +668,23 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, 'custom-state-key', - undefined + undefined, ); }); it('should reject if receiving state event fails', async () => { matrixWidgetApi.readStateEvents.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); await expect( - widgetApi.receiveSingleStateEvent('com.example.test') + widgetApi.receiveSingleStateEvent('com.example.test'), ).rejects.toThrowError('Power to low'); expect(matrixWidgetApi.readStateEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, '', - undefined + undefined, ); }); @@ -692,13 +692,13 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.readStateEvents.mockResolvedValue([]); await expect( - widgetApi.receiveSingleStateEvent('com.example.test') + widgetApi.receiveSingleStateEvent('com.example.test'), ).resolves.toBeUndefined(); expect(matrixWidgetApi.readStateEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, '', - undefined + undefined, ); }); }); @@ -710,7 +710,7 @@ describe('WidgetApiImpl', () => { ]); await expect( - widgetApi.receiveStateEvents('com.example.test') + widgetApi.receiveStateEvents('com.example.test'), ).resolves.toEqual([ expect.objectContaining({ content: { hello: 'world' }, state_key: '' }), ]); @@ -718,7 +718,7 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - undefined + undefined, ); }); @@ -733,7 +733,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.receiveStateEvents('com.example.test', { stateKey: 'custom-state-key', - }) + }), ).resolves.toEqual([ expect.objectContaining({ type: 'com.example.test', @@ -745,7 +745,7 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, 'custom-state-key', - undefined + undefined, ); }); @@ -761,7 +761,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.receiveStateEvents('com.example.test', { roomIds: ['!custom-room'], - }) + }), ).resolves.toEqual([ expect.objectContaining({ type: 'com.example.test', @@ -774,7 +774,7 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - ['!custom-room'] + ['!custom-room'], ); }); @@ -789,7 +789,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.receiveStateEvents('com.example.test', { roomIds: Symbols.AnyRoom, - }) + }), ).resolves.toEqual([ expect.objectContaining({ type: 'com.example.test', @@ -801,23 +801,23 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - [Symbols.AnyRoom] + [Symbols.AnyRoom], ); }); it('should reject if receiving state event fails', async () => { matrixWidgetApi.readStateEvents.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); await expect( - widgetApi.receiveStateEvents('com.example.test') + widgetApi.receiveStateEvents('com.example.test'), ).rejects.toThrowError('Power to low'); expect(matrixWidgetApi.readStateEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - undefined + undefined, ); }); @@ -825,13 +825,13 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.readStateEvents.mockResolvedValue([]); await expect( - widgetApi.receiveStateEvents('com.example.test') + widgetApi.receiveStateEvents('com.example.test'), ).resolves.toEqual([]); expect(matrixWidgetApi.readStateEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - undefined + undefined, ); }); }); @@ -893,17 +893,17 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.readStateEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - undefined + undefined, ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(2); expect(matrixWidgetApi.transport.reply).toBeCalledTimes(2); @@ -951,17 +951,17 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.readStateEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, 'custom-state-key', - undefined + undefined, ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(1); expect(matrixWidgetApi.transport.reply).toBeCalledTimes(1); @@ -1011,17 +1011,17 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.readStateEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - ['!another-room'] + ['!another-room'], ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(1); expect(matrixWidgetApi.transport.reply).toBeCalledTimes(1); @@ -1029,12 +1029,12 @@ describe('WidgetApiImpl', () => { it('should error observable if receiving fails', async () => { matrixWidgetApi.readStateEvents.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); const $events = widgetApi.observeStateEvents('com.example.test'); await expect(firstValueFrom($events)).rejects.toThrowError( - 'Power to low' + 'Power to low', ); }); }); @@ -1066,7 +1066,7 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.off.mockReturnThis(); await expect( - widgetApi.sendStateEvent('com.example.test', stateEvent) + widgetApi.sendStateEvent('com.example.test', stateEvent), ).resolves.toMatchObject({ room_id: '!current-room', sender: '@my-user-id', @@ -1076,12 +1076,12 @@ describe('WidgetApiImpl', () => { }); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.sendStateEvent).toBeCalled(); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalled(); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -1115,7 +1115,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.sendStateEvent('com.example.test', stateEvent, { stateKey: 'custom-state-key', - }) + }), ).resolves.toMatchObject({ room_id: '!current-room', sender: '@my-user-id', @@ -1125,12 +1125,12 @@ describe('WidgetApiImpl', () => { }); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.sendStateEvent).toBeCalled(); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalled(); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -1165,7 +1165,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.sendStateEvent('com.example.test', stateEvent, { roomId: '!another-room', - }) + }), ).resolves.toMatchObject({ room_id: '!another-room', sender: '@my-user-id', @@ -1175,12 +1175,12 @@ describe('WidgetApiImpl', () => { }); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.sendStateEvent).toBeCalled(); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalled(); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -1190,22 +1190,22 @@ describe('WidgetApiImpl', () => { const stateEvent = { hello: 'world' }; matrixWidgetApi.sendStateEvent.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); matrixWidgetApi.on.mockReturnThis(); matrixWidgetApi.off.mockReturnThis(); await expect(() => - widgetApi.sendStateEvent('com.example.test', stateEvent) + widgetApi.sendStateEvent('com.example.test', stateEvent), ).rejects.toThrowError('Power to low'); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.sendStateEvent).toBeCalled(); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); }); }); @@ -1218,7 +1218,7 @@ describe('WidgetApiImpl', () => { ]); await expect( - widgetApi.receiveRoomEvents('com.example.test') + widgetApi.receiveRoomEvents('com.example.test'), ).resolves.toEqual([ expect.objectContaining({ content: { hello: 'world' } }), expect.objectContaining({ content: { bye: 'world' } }), @@ -1227,7 +1227,7 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - undefined + undefined, ); }); @@ -1239,7 +1239,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.receiveRoomEvents('com.example.test', { messageType: 'custom-message-type', - }) + }), ).resolves.toEqual([ expect.objectContaining({ content: { hello: 'world' } }), ]); @@ -1247,7 +1247,7 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, 'custom-message-type', - undefined + undefined, ); }); @@ -1259,7 +1259,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.receiveRoomEvents('com.example.test', { roomIds: ['!custom-room'], - }) + }), ).resolves.toEqual([ expect.objectContaining({ content: { hello: 'world' }, @@ -1270,7 +1270,7 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - ['!custom-room'] + ['!custom-room'], ); }); @@ -1282,7 +1282,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.receiveRoomEvents('com.example.test', { roomIds: Symbols.AnyRoom, - }) + }), ).resolves.toEqual([ expect.objectContaining({ content: { hello: 'world' } }), ]); @@ -1290,23 +1290,23 @@ describe('WidgetApiImpl', () => { 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - [Symbols.AnyRoom] + [Symbols.AnyRoom], ); }); it('should reject if receiving room event fails', async () => { matrixWidgetApi.readRoomEvents.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); await expect( - widgetApi.receiveRoomEvents('com.example.test') + widgetApi.receiveRoomEvents('com.example.test'), ).rejects.toThrowError('Power to low'); expect(matrixWidgetApi.readRoomEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - undefined + undefined, ); }); }); @@ -1365,17 +1365,17 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.readRoomEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - undefined + undefined, ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(2); expect(matrixWidgetApi.transport.reply).toBeCalledTimes(2); @@ -1421,17 +1421,17 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.readRoomEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, 'my-message-type', - undefined + undefined, ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(1); expect(matrixWidgetApi.transport.reply).toBeCalledTimes(1); @@ -1479,17 +1479,17 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.readRoomEvents).toBeCalledWith( 'com.example.test', Number.MAX_SAFE_INTEGER, undefined, - ['!another-room'] + ['!another-room'], ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(1); expect(matrixWidgetApi.transport.reply).toBeCalledTimes(1); @@ -1497,12 +1497,12 @@ describe('WidgetApiImpl', () => { it('should error observable if receiving fails', async () => { matrixWidgetApi.readRoomEvents.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); const $events = widgetApi.observeRoomEvents('com.example.test'); await expect(firstValueFrom($events)).rejects.toThrowError( - 'Power to low' + 'Power to low', ); }); }); @@ -1534,7 +1534,7 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.off.mockReturnThis(); await expect( - widgetApi.sendRoomEvent('com.example.test', roomEvent) + widgetApi.sendRoomEvent('com.example.test', roomEvent), ).resolves.toMatchObject({ room_id: '!current-room', sender: '@my-user-id', @@ -1543,12 +1543,12 @@ describe('WidgetApiImpl', () => { }); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.sendRoomEvent).toBeCalled(); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalled(); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -1582,7 +1582,7 @@ describe('WidgetApiImpl', () => { await expect( widgetApi.sendRoomEvent('com.example.test', roomEvent, { roomId: '!another-room', - }) + }), ).resolves.toMatchObject({ room_id: '!another-room', sender: '@my-user-id', @@ -1591,12 +1591,12 @@ describe('WidgetApiImpl', () => { }); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.sendRoomEvent).toBeCalled(); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalled(); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -1606,7 +1606,7 @@ describe('WidgetApiImpl', () => { const roomEvent = { hello: 'world' }; matrixWidgetApi.sendRoomEvent.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); matrixWidgetApi.on.mockImplementationOnce((eventName) => { expect(eventName).toEqual('action:send_event'); @@ -1615,16 +1615,16 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.off.mockReturnThis(); await expect(() => - widgetApi.sendRoomEvent('com.example.test', roomEvent) + widgetApi.sendRoomEvent('com.example.test', roomEvent), ).rejects.toThrowError('Power to low'); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.sendRoomEvent).toBeCalled(); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_event', - expect.any(Function) + expect.any(Function), ); }); }); @@ -1642,7 +1642,7 @@ describe('WidgetApiImpl', () => { expect(matrixWidgetApi.sendToDevice).toBeCalledWith( 'com.example.message', false, - { '@user-id': { '*': { hello: 'world' } } } + { '@user-id': { '*': { hello: 'world' } } }, ); }); }); @@ -1702,11 +1702,11 @@ describe('WidgetApiImpl', () => { ]); expect(matrixWidgetApi.on).toBeCalledWith( 'action:send_to_device', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:send_to_device', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(3); expect(matrixWidgetApi.transport.reply).toBeCalledTimes(3); @@ -1735,7 +1735,7 @@ describe('WidgetApiImpl', () => { widgetApi.openModal('/modal', 'My Modal', { buttons: [], data: { string: 'example' }, - }) + }), ).resolves.toEqual({ data: 'my-return-data', }); @@ -1745,15 +1745,15 @@ describe('WidgetApiImpl', () => { 'http://localhost/modal#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=@my-user-id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=!current-room&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language', 'My Modal', [], - { string: 'example' } + { string: 'example' }, ); expect(matrixWidgetApi.on).toBeCalledWith( 'action:close_modal', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:close_modal', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(1); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -1783,7 +1783,7 @@ describe('WidgetApiImpl', () => { widgetApi.openModal('/modal', 'My Modal', { buttons: [], data: { string: 'example' }, - }) + }), ).rejects.toThrowError('Transport Error'); expect(parseWidgetId).toBeCalledWith('widget-id'); @@ -1791,15 +1791,15 @@ describe('WidgetApiImpl', () => { 'http://localhost/modal#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=@my-user-id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=!current-room&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language', 'My Modal', [], - { string: 'example' } + { string: 'example' }, ); expect(matrixWidgetApi.on).toBeCalledWith( 'action:close_modal', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:close_modal', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(1); expect(matrixWidgetApi.transport.reply).toBeCalled(); @@ -1812,7 +1812,7 @@ describe('WidgetApiImpl', () => { }); await expect(widgetApi.openModal('/example', 'My Modal')).rejects.toThrow( - /Modals can't be opened from another modal widget/ + /Modals can't be opened from another modal widget/, ); expect(parseWidgetId).toBeCalledWith('widget-id'); @@ -1827,13 +1827,13 @@ describe('WidgetApiImpl', () => { }); await expect( - widgetApi.setModalButtonEnabled('button.id', true) + widgetApi.setModalButtonEnabled('button.id', true), ).resolves.toBeUndefined(); expect(parseWidgetId).toBeCalledWith('widget-id'); expect(matrixWidgetApi.setModalButtonEnabled).toBeCalledWith( 'button.id', - true + true, ); }); @@ -1844,9 +1844,9 @@ describe('WidgetApiImpl', () => { }); await expect( - widgetApi.setModalButtonEnabled('button.id', true) + widgetApi.setModalButtonEnabled('button.id', true), ).rejects.toThrow( - /Modal buttons can only be enabled from a modal widget/ + /Modal buttons can only be enabled from a modal widget/, ); expect(parseWidgetId).toBeCalledWith('widget-id'); @@ -1880,11 +1880,11 @@ describe('WidgetApiImpl', () => { expect(parseWidgetId).toBeCalledWith('widget-id'); expect(matrixWidgetApi.on).toBeCalledWith( 'action:button_clicked', - expect.any(Function) + expect.any(Function), ); expect(matrixWidgetApi.off).toBeCalledWith( 'action:button_clicked', - expect.any(Function) + expect.any(Function), ); expect(preventDefault).toBeCalledTimes(1); expect(matrixWidgetApi.transport.reply).toBeCalledTimes(1); @@ -1897,7 +1897,7 @@ describe('WidgetApiImpl', () => { }); expect(() => widgetApi.observeModalButtons()).toThrow( - /Modal buttons can only be observed from a modal widget/ + /Modal buttons can only be observed from a modal widget/, ); expect(parseWidgetId).toBeCalledWith('widget-id'); @@ -1926,7 +1926,7 @@ describe('WidgetApiImpl', () => { }); await expect( - widgetApi.closeModal({ my: 'data' }) + widgetApi.closeModal({ my: 'data' }), ).resolves.toBeUndefined(); expect(parseWidgetId).toBeCalledWith('widget-id'); @@ -1942,7 +1942,7 @@ describe('WidgetApiImpl', () => { }); await expect(widgetApi.closeModal()).rejects.toThrow( - /Modals can only be closed from a modal widget/ + /Modals can only be closed from a modal widget/, ); expect(parseWidgetId).toBeCalledWith('widget-id'); @@ -1952,11 +1952,11 @@ describe('WidgetApiImpl', () => { describe('navigateTo', () => { it('should navigate', async () => { await expect( - widgetApi.navigateTo('https://matrix.to/#/#room:example.com') + widgetApi.navigateTo('https://matrix.to/#/#room:example.com'), ).resolves.toBeUndefined(); expect(matrixWidgetApi.navigateTo).toBeCalledWith( - 'https://matrix.to/#/#room:example.com' + 'https://matrix.to/#/#room:example.com', ); }); }); @@ -1973,7 +1973,7 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.requestOpenIDConnectToken.mockResolvedValue(token); await expect(widgetApi.requestOpenIDConnectToken()).resolves.toEqual( - token + token, ); }); @@ -2015,10 +2015,10 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.requestOpenIDConnectToken.mockResolvedValue(token); await expect(widgetApi.requestOpenIDConnectToken()).resolves.toEqual( - token + token, ); await expect(widgetApi.requestOpenIDConnectToken()).resolves.toEqual( - token + token, ); expect(matrixWidgetApi.requestOpenIDConnectToken).toBeCalledTimes(1); @@ -2042,13 +2042,13 @@ describe('WidgetApiImpl', () => { matrixWidgetApi.requestOpenIDConnectToken.mockResolvedValueOnce(tokenNew); await expect(widgetApi.requestOpenIDConnectToken()).resolves.toEqual( - token + token, ); dateNow.mockReturnValue(1646000000000 + 45 * 1000); await expect(widgetApi.requestOpenIDConnectToken()).resolves.toEqual( - tokenNew + tokenNew, ); }); }); @@ -2072,7 +2072,7 @@ describe('WidgetApiImpl', () => { }); const turnServersPromise = firstValueFrom( - widgetApi.observeTurnServers().pipe(take(2), toArray()) + widgetApi.observeTurnServers().pipe(take(2), toArray()), ); await expect(turnServersPromise).resolves.toEqual([ @@ -2106,7 +2106,7 @@ describe('WidgetApiImpl', () => { relationType: 'm.reference', eventType: 'm.room.message', direction: 'f', - }) + }), ).resolves.toEqual({ chunk: [], nextToken: 'batch', @@ -2119,17 +2119,17 @@ describe('WidgetApiImpl', () => { 5, 'from-token', undefined, - 'f' + 'f', ); }); it('should reject if reading the relations room event fails', async () => { matrixWidgetApi.readEventRelations.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); await expect( - widgetApi.readEventRelations('$event-id') + widgetApi.readEventRelations('$event-id'), ).rejects.toThrowError('Power to low'); expect(matrixWidgetApi.readEventRelations).toBeCalledWith( '$event-id', @@ -2139,7 +2139,7 @@ describe('WidgetApiImpl', () => { undefined, undefined, undefined, - undefined + undefined, ); }); }); @@ -2158,7 +2158,7 @@ describe('WidgetApiImpl', () => { }); await expect( - widgetApi.searchUserDirectory('user', { limit: 5 }) + widgetApi.searchUserDirectory('user', { limit: 5 }), ).resolves.toEqual({ results: [ { userId: '@user-id', displayName: 'User', avatarUrl: 'mxc://...' }, @@ -2169,15 +2169,15 @@ describe('WidgetApiImpl', () => { it('should reject if reading the relations room event fails', async () => { matrixWidgetApi.searchUserDirectory.mockRejectedValue( - new Error('Power to low') + new Error('Power to low'), ); await expect(widgetApi.searchUserDirectory('user')).rejects.toThrowError( - 'Power to low' + 'Power to low', ); expect(matrixWidgetApi.searchUserDirectory).toBeCalledWith( 'user', - undefined + undefined, ); }); }); diff --git a/packages/api/src/api/WidgetApiImpl.ts b/packages/api/src/api/WidgetApiImpl.ts index 788178fe..1d35397c 100644 --- a/packages/api/src/api/WidgetApiImpl.ts +++ b/packages/api/src/api/WidgetApiImpl.ts @@ -114,7 +114,7 @@ export class WidgetApiImpl implements WidgetApi { matrixWidgetApi, widgetId, widgetParameters, - { capabilities, supportStandalone } + { capabilities, supportStandalone }, ); await widgetApi.initialize(); @@ -151,7 +151,7 @@ export class WidgetApiImpl implements WidgetApi { public readonly widgetId: string, /** {@inheritDoc WidgetApi.widgetParameters} */ public readonly widgetParameters: WidgetParameters, - { capabilities = [], supportStandalone = false }: WidgetApiOptions = {} + { capabilities = [], supportStandalone = false }: WidgetApiOptions = {}, ) { this.events$ = fromEvent( this.matrixWidgetApi, @@ -164,7 +164,7 @@ export class WidgetApiImpl implements WidgetApi { // Ignore errors while replying } return event; - } + }, ).pipe(share()); this.toDeviceMessages$ = fromEvent( @@ -178,7 +178,7 @@ export class WidgetApiImpl implements WidgetApi { // Ignore errors while replying } return event; - } + }, ).pipe(share()); this.initialCapabilities = [ @@ -222,7 +222,7 @@ export class WidgetApiImpl implements WidgetApi { ev.preventDefault(); this.matrixWidgetApi.transport.reply(ev.detail, {}); return ev.detail.data as WidgetConfig; - } + }, ); this.widgetConfig = await firstValueFrom(widgetConfig$); @@ -230,7 +230,7 @@ export class WidgetApiImpl implements WidgetApi { : undefined; const rawCapabilities = unique( - convertToRawCapabilities(this.initialCapabilities) + convertToRawCapabilities(this.initialCapabilities), ); this.matrixWidgetApi.requestCapabilities(rawCapabilities); this.matrixWidgetApi.start(); @@ -261,7 +261,7 @@ export class WidgetApiImpl implements WidgetApi { /** {@inheritDoc WidgetApi.requestCapabilities} */ async requestCapabilities( - capabilities: Array + capabilities: Array, ): Promise { if (this.outstandingCapabilitiesRequest) { // Avoid starting two capabilities requests in parallel. This can lead to @@ -287,7 +287,7 @@ export class WidgetApiImpl implements WidgetApi { } private async requestCapabilitiesInternal( - capabilities: Array + capabilities: Array, ): Promise { const rawCapabilities = unique(convertToRawCapabilities(capabilities)); @@ -300,7 +300,7 @@ export class WidgetApiImpl implements WidgetApi { const capabilities$ = fromEvent( this.matrixWidgetApi, `action:${WidgetApiToWidgetAction.NotifyCapabilities}`, - (ev: CustomEvent) => ev + (ev: CustomEvent) => ev, ).pipe( // TODO: `hasCapability` in the matrix-widget-api isn't consistent when capability // upgrades happened. But `updateRequestedCapabilities` will deduplicate already @@ -318,11 +318,11 @@ export class WidgetApiImpl implements WidgetApi { if (missingSet.size > 0) { throw new Error( - `Capabilities rejected: ${Array.from(missingSet).join(', ')}` + `Capabilities rejected: ${Array.from(missingSet).join(', ')}`, ); } }), - first() + first(), ); await new Promise(async (resolve, reject) => { @@ -343,7 +343,7 @@ export class WidgetApiImpl implements WidgetApi { /** {@inheritDoc WidgetApi.hasCapabilities} */ hasCapabilities( - capabilities: Array + capabilities: Array, ): boolean { const rawCapabilities = convertToRawCapabilities(capabilities); @@ -353,7 +353,7 @@ export class WidgetApiImpl implements WidgetApi { /** {@inheritDoc WidgetApi.receiveSingleStateEvent} */ async receiveSingleStateEvent( eventType: string, - stateKey = '' + stateKey = '', ): Promise | undefined> { const events = await this.receiveStateEvents(eventType, { stateKey }); return events && events[0]; @@ -365,13 +365,13 @@ export class WidgetApiImpl implements WidgetApi { { stateKey, roomIds, - }: { stateKey?: string; roomIds?: string[] | Symbols.AnyRoom } = {} + }: { stateKey?: string; roomIds?: string[] | Symbols.AnyRoom } = {}, ): Promise[]> { return (await this.matrixWidgetApi.readStateEvents( eventType, Number.MAX_SAFE_INTEGER, stateKey, - typeof roomIds === 'string' ? [Symbols.AnyRoom] : roomIds + typeof roomIds === 'string' ? [Symbols.AnyRoom] : roomIds, )) as StateEvent[]; } @@ -381,7 +381,7 @@ export class WidgetApiImpl implements WidgetApi { { stateKey, roomIds, - }: { stateKey?: string; roomIds?: string[] | Symbols.AnyRoom } = {} + }: { stateKey?: string; roomIds?: string[] | Symbols.AnyRoom } = {}, ): Observable> { const currentRoomId = this.widgetParameters.roomId; @@ -390,7 +390,7 @@ export class WidgetApiImpl implements WidgetApi { } const historyEvent$ = from( - this.receiveStateEvents(eventType, { stateKey, roomIds }) + this.receiveStateEvents(eventType, { stateKey, roomIds }), ).pipe(mergeAll()); const futureEvent$ = this.events$.pipe( @@ -408,7 +408,7 @@ export class WidgetApiImpl implements WidgetApi { return undefined; }), - filter(isDefined) + filter(isDefined), ); return concat(historyEvent$, futureEvent$); @@ -418,7 +418,7 @@ export class WidgetApiImpl implements WidgetApi { async sendStateEvent( eventType: string, content: T, - { roomId, stateKey = '' }: { roomId?: string; stateKey?: string } = {} + { roomId, stateKey = '' }: { roomId?: string; stateKey?: string } = {}, ): Promise> { const subject = new ReplaySubject>(); const subscription = this.events$.subscribe((e) => subject.next(e)); @@ -428,7 +428,7 @@ export class WidgetApiImpl implements WidgetApi { eventType, stateKey, content, - roomId + roomId, ); // TODO: Why do we even return the event, not just the event id, we never // need it. @@ -442,8 +442,8 @@ export class WidgetApiImpl implements WidgetApi { matrixEvent.room_id === room_id ); }), - map((event) => event.detail.data as StateEvent) - ) + map((event) => event.detail.data as StateEvent), + ), ); return event; } finally { @@ -457,13 +457,13 @@ export class WidgetApiImpl implements WidgetApi { { messageType, roomIds, - }: { messageType?: string; roomIds?: string[] | Symbols.AnyRoom } = {} + }: { messageType?: string; roomIds?: string[] | Symbols.AnyRoom } = {}, ): Promise>> { return (await this.matrixWidgetApi.readRoomEvents( eventType, Number.MAX_SAFE_INTEGER, messageType, - typeof roomIds === 'string' ? [Symbols.AnyRoom] : roomIds + typeof roomIds === 'string' ? [Symbols.AnyRoom] : roomIds, )) as RoomEvent[]; } @@ -473,7 +473,7 @@ export class WidgetApiImpl implements WidgetApi { { messageType, roomIds, - }: { messageType?: string; roomIds?: string[] | Symbols.AnyRoom } = {} + }: { messageType?: string; roomIds?: string[] | Symbols.AnyRoom } = {}, ): Observable> { const currentRoomId = this.widgetParameters.roomId; @@ -482,7 +482,7 @@ export class WidgetApiImpl implements WidgetApi { } const historyEvent$ = from( - this.receiveRoomEvents(eventType, { messageType, roomIds }) + this.receiveRoomEvents(eventType, { messageType, roomIds }), ).pipe(mergeAll()); const futureEvent$ = this.events$.pipe( @@ -502,7 +502,7 @@ export class WidgetApiImpl implements WidgetApi { return undefined; }), - filter(isDefined) + filter(isDefined), ); return concat(historyEvent$, futureEvent$); @@ -512,7 +512,7 @@ export class WidgetApiImpl implements WidgetApi { async sendRoomEvent( eventType: string, content: T, - { roomId }: { roomId?: string } = {} + { roomId }: { roomId?: string } = {}, ): Promise> { const subject = new ReplaySubject>(); const subscription = this.events$.subscribe((e) => subject.next(e)); @@ -521,7 +521,7 @@ export class WidgetApiImpl implements WidgetApi { const { event_id, room_id } = await this.matrixWidgetApi.sendRoomEvent( eventType, content, - roomId + roomId, ); // TODO: Why do we even return the event, not just the event id, we never // need it. @@ -535,8 +535,8 @@ export class WidgetApiImpl implements WidgetApi { matrixEvent.room_id === room_id ); }), - map((event) => event.detail.data as RoomEvent) - ) + map((event) => event.detail.data as RoomEvent), + ), ); return event; } finally { @@ -554,7 +554,7 @@ export class WidgetApiImpl implements WidgetApi { relationType?: string; eventType?: string; direction?: 'f' | 'b'; - } + }, ): Promise<{ chunk: Array; nextToken?: string; @@ -567,7 +567,7 @@ export class WidgetApiImpl implements WidgetApi { options?.limit, options?.from, undefined, - options?.direction + options?.direction, ); return { @@ -580,36 +580,36 @@ export class WidgetApiImpl implements WidgetApi { async sendToDeviceMessage( eventType: string, encrypted: boolean, - content: { [userId: string]: { [deviceId: string | '*']: T } } + content: { [userId: string]: { [deviceId: string | '*']: T } }, ): Promise { await this.matrixWidgetApi.sendToDevice( eventType, encrypted, - content as { [userId: string]: { [deviceId: string]: object } } + content as { [userId: string]: { [deviceId: string]: object } }, ); } /** {@inheritDoc WidgetApi.observeToDeviceMessages} */ observeToDeviceMessages( - eventType: string + eventType: string, ): Observable> { return this.toDeviceMessages$.pipe( map((e) => e.detail.data as ToDeviceMessageEvent), - filter((e) => e.type === eventType) + filter((e) => e.type === eventType), ); } /** {@inheritDoc WidgetApi.openModal} */ async openModal< T extends Record = Record, - U extends IModalWidgetCreateData = IModalWidgetCreateData + U extends IModalWidgetCreateData = IModalWidgetCreateData, >( pathName: string, name: string, options?: { buttons?: IModalWidgetOpenRequestDataButton[]; data?: U; - } + }, ): Promise { const { isModal } = parseWidgetId(this.widgetId); if (isModal) { @@ -624,7 +624,7 @@ export class WidgetApiImpl implements WidgetApi { url, name, options?.buttons, - options?.data + options?.data, ); const closeModalWidget$ = fromEvent( @@ -639,7 +639,7 @@ export class WidgetApiImpl implements WidgetApi { } return event.detail.data as unknown as T; - } + }, ); return firstValueFrom(closeModalWidget$); @@ -648,7 +648,7 @@ export class WidgetApiImpl implements WidgetApi { /** {@inheritDoc WidgetApi.setModalButtonEnabled} */ async setModalButtonEnabled( buttonId: ModalButtonID, - isEnabled: boolean + isEnabled: boolean, ): Promise { const { isModal } = parseWidgetId(this.widgetId); if (!isModal) { @@ -673,7 +673,7 @@ export class WidgetApiImpl implements WidgetApi { this.matrixWidgetApi.transport.reply(event.detail, {}); return event.detail.data.id as ModalButtonID; - } + }, ); } @@ -685,7 +685,7 @@ export class WidgetApiImpl implements WidgetApi { } await this.matrixWidgetApi.closeModalWidget( - data ? data : { 'm.exited': true } + data ? data : { 'm.exited': true }, ); } @@ -756,14 +756,14 @@ export class WidgetApiImpl implements WidgetApi { urls: uris, username, credential: password, - })) + })), ); } /** {@inheritdoc WidgetApi.searchUserDirectory} */ async searchUserDirectory( searchTerm: string, - options?: { limit?: number | undefined } | undefined + options?: { limit?: number | undefined } | undefined, ): Promise<{ results: Array<{ userId: string; @@ -773,7 +773,7 @@ export class WidgetApiImpl implements WidgetApi { }> { const { results } = await this.matrixWidgetApi.searchUserDirectory( searchTerm, - options?.limit + options?.limit, ); return { diff --git a/packages/api/src/api/extras/capabilities.ts b/packages/api/src/api/extras/capabilities.ts index e87d048d..17a530bd 100644 --- a/packages/api/src/api/extras/capabilities.ts +++ b/packages/api/src/api/extras/capabilities.ts @@ -27,7 +27,7 @@ import { Symbols } from 'matrix-widget-api'; * @returns the generated capabilities. */ export function generateRoomTimelineCapabilities( - roomIds: string[] | Symbols.AnyRoom + roomIds: string[] | Symbols.AnyRoom, ): string[] { if (roomIds === Symbols.AnyRoom) { return ['org.matrix.msc2762.timeline:*']; diff --git a/packages/api/src/api/extras/displayName.test.ts b/packages/api/src/api/extras/displayName.test.ts index 4c8fd33a..281f8ba9 100644 --- a/packages/api/src/api/extras/displayName.test.ts +++ b/packages/api/src/api/extras/displayName.test.ts @@ -22,7 +22,7 @@ function createRoomMember( state_key: string, displayname?: string, membership: MembershipState = 'join', - room_id = '!roomId' + room_id = '!roomId', ): StateEvent { return { content: { membership, displayname }, @@ -38,15 +38,15 @@ function createRoomMember( describe('getRoomMemberDisplayName', () => { it('should use state_key of single user', () => { expect( - getRoomMemberDisplayName(createRoomMember('@my-user:matrix.to')) + getRoomMemberDisplayName(createRoomMember('@my-user:matrix.to')), ).toEqual('@my-user:matrix.to'); }); it('should use displayname of single user', () => { expect( getRoomMemberDisplayName( - createRoomMember('@my-user:matrix.to', 'My User') - ) + createRoomMember('@my-user:matrix.to', 'My User'), + ), ).toEqual('My User'); }); @@ -57,8 +57,8 @@ describe('getRoomMemberDisplayName', () => { [ createRoomMember('@my-user:matrix.to', 'My User', 'join'), createRoomMember('@another-user:matrix.to', 'My User', 'join'), - ] - ) + ], + ), ).toEqual('My User (@my-user:matrix.to)'); }); @@ -69,8 +69,8 @@ describe('getRoomMemberDisplayName', () => { [ createRoomMember('@my-user:matrix.to', 'My User', 'join'), createRoomMember('@another-user:matrix.to', 'My User', 'invite'), - ] - ) + ], + ), ).toEqual('My User (@my-user:matrix.to)'); }); @@ -81,8 +81,8 @@ describe('getRoomMemberDisplayName', () => { [ createRoomMember('@my-user:matrix.to', 'My User', 'join'), createRoomMember('@another-user:matrix.to', 'My User', 'ban'), - ] - ) + ], + ), ).toEqual('My User'); }); @@ -96,10 +96,10 @@ describe('getRoomMemberDisplayName', () => { '@another-user:matrix.to', 'My User', 'join', - '!anotherRoomId' + '!anotherRoomId', ), - ] - ) + ], + ), ).toEqual('My User'); }); }); diff --git a/packages/api/src/api/extras/displayName.ts b/packages/api/src/api/extras/displayName.ts index 6b81ff06..de86dc3c 100644 --- a/packages/api/src/api/extras/displayName.ts +++ b/packages/api/src/api/extras/displayName.ts @@ -28,7 +28,7 @@ import { RoomMemberStateEventContent } from './roomMember'; */ export function getRoomMemberDisplayName( member: StateEvent, - allRoomMembers: StateEvent[] = [] + allRoomMembers: StateEvent[] = [], ): string { // If the m.room.member state event has no displayname field, or if that field // has a null value, use the raw user id as the display name. @@ -47,7 +47,7 @@ export function getRoomMemberDisplayName( // only join or invite state ['join', 'invite'].includes(m.content.membership) && // same displayname - m.content.displayname === member.content.displayname + m.content.displayname === member.content.displayname, ); if (!hasDuplicateDisplayName) { diff --git a/packages/api/src/api/extras/events.ts b/packages/api/src/api/extras/events.ts index 3f10f190..e67317c0 100644 --- a/packages/api/src/api/extras/events.ts +++ b/packages/api/src/api/extras/events.ts @@ -23,7 +23,7 @@ import { RoomEvent, StateEvent } from '../types'; * @returns True, if the event is a {@link StateEvent}. */ export function isStateEvent( - event: RoomEvent | StateEvent + event: RoomEvent | StateEvent, ): event is StateEvent { return 'state_key' in event && typeof event.state_key === 'string'; } diff --git a/packages/api/src/api/extras/navigateTo.test.ts b/packages/api/src/api/extras/navigateTo.test.ts index 172c1718..4dd78645 100644 --- a/packages/api/src/api/extras/navigateTo.test.ts +++ b/packages/api/src/api/extras/navigateTo.test.ts @@ -30,11 +30,11 @@ describe('navigateToRoom', () => { it('should navigate', async () => { await expect( - navigateToRoom(widgetApi, '!my-room-id:example.org') + navigateToRoom(widgetApi, '!my-room-id:example.org'), ).resolves.toBeUndefined(); expect(widgetApi.navigateTo).toBeCalledWith( - 'https://matrix.to/#/!my-room-id%3Aexample.org' + 'https://matrix.to/#/!my-room-id%3Aexample.org', ); }); @@ -42,11 +42,11 @@ describe('navigateToRoom', () => { await expect( navigateToRoom(widgetApi, '!my-room-id:example.org', { via: ['matrix.com'], - }) + }), ).resolves.toBeUndefined(); expect(widgetApi.navigateTo).toBeCalledWith( - 'https://matrix.to/#/!my-room-id%3Aexample.org?via=matrix.com' + 'https://matrix.to/#/!my-room-id%3Aexample.org?via=matrix.com', ); }); @@ -54,11 +54,11 @@ describe('navigateToRoom', () => { await expect( navigateToRoom(widgetApi, '!my-room-id:example.org', { via: ['matrix.com', 'example.com'], - }) + }), ).resolves.toBeUndefined(); expect(widgetApi.navigateTo).toBeCalledWith( - 'https://matrix.to/#/!my-room-id%3Aexample.org?via=matrix.com&via=example.com' + 'https://matrix.to/#/!my-room-id%3Aexample.org?via=matrix.com&via=example.com', ); }); }); diff --git a/packages/api/src/api/extras/navigateTo.ts b/packages/api/src/api/extras/navigateTo.ts index 01da2305..5d1bb6a1 100644 --- a/packages/api/src/api/extras/navigateTo.ts +++ b/packages/api/src/api/extras/navigateTo.ts @@ -44,12 +44,12 @@ export type NavigateToRoomOptions = { export async function navigateToRoom( widgetApi: WidgetApi, roomId: string, - opts: NavigateToRoomOptions = {} + opts: NavigateToRoomOptions = {}, ): Promise { const { via = [] } = opts; const params = stringify( { via }, - { addQueryPrefix: true, arrayFormat: 'repeat' } + { addQueryPrefix: true, arrayFormat: 'repeat' }, ); const url = `https://matrix.to/#/${encodeURIComponent(roomId)}${params}`; await widgetApi.navigateTo(url); diff --git a/packages/api/src/api/extras/originServerTs.ts b/packages/api/src/api/extras/originServerTs.ts index 437aa6e7..6a7cea88 100644 --- a/packages/api/src/api/extras/originServerTs.ts +++ b/packages/api/src/api/extras/originServerTs.ts @@ -26,7 +26,7 @@ import { RoomEvent } from '../types'; */ export function compareOriginServerTS( a: RoomEvent, - b: RoomEvent + b: RoomEvent, ): number { return a.origin_server_ts - b.origin_server_ts; } diff --git a/packages/api/src/api/extras/powerLevel.test.ts b/packages/api/src/api/extras/powerLevel.test.ts index baf5755e..f7e891d7 100644 --- a/packages/api/src/api/extras/powerLevel.test.ts +++ b/packages/api/src/api/extras/powerLevel.test.ts @@ -137,8 +137,8 @@ describe('hasRoomEventPower', () => { hasRoomEventPower( { users: { userId: 30 }, events_default: 30 }, 'userId', - 'my-event' - ) + 'my-event', + ), ).toEqual(true); }); @@ -147,8 +147,8 @@ describe('hasRoomEventPower', () => { hasRoomEventPower( { users: { userId: 10 }, events_default: 20 }, 'userId', - 'my-event' - ) + 'my-event', + ), ).toEqual(false); }); }); @@ -163,8 +163,8 @@ describe('hasStateEventPower', () => { hasStateEventPower( { users: { userId: 30 }, state_default: 30 }, 'userId', - 'my-event' - ) + 'my-event', + ), ).toEqual(true); }); @@ -173,8 +173,8 @@ describe('hasStateEventPower', () => { hasStateEventPower( { users: { userId: 10 }, state_default: 20 }, 'userId', - 'my-event' - ) + 'my-event', + ), ).toEqual(false); }); }); @@ -186,13 +186,13 @@ describe('hasActionPower', () => { it('should permit if user level is high enough', () => { expect( - hasActionPower({ users: { userId: 30 }, invite: 30 }, 'userId', 'invite') + hasActionPower({ users: { userId: 30 }, invite: 30 }, 'userId', 'invite'), ).toEqual(true); }); it('should reject if user level is too low', () => { expect( - hasActionPower({ users: { userId: 10 }, invite: 20 }, 'userId', 'invite') + hasActionPower({ users: { userId: 10 }, invite: 20 }, 'userId', 'invite'), ).toEqual(false); }); }); @@ -203,7 +203,7 @@ describe('calculateUserLevel', () => { calculateUserPowerLevel({ users: {}, users_default: 25, - }) + }), ).toEqual(25); }); @@ -214,8 +214,8 @@ describe('calculateUserLevel', () => { users: {}, users_default: 25, }, - 'my-user-id' - ) + 'my-user-id', + ), ).toEqual(25); }); @@ -225,8 +225,8 @@ describe('calculateUserLevel', () => { { users: { 'my-user-id': 42 }, }, - 'my-user-id' - ) + 'my-user-id', + ), ).toEqual(42); }); @@ -243,8 +243,8 @@ describe('calculateRoomEventPowerLevel', () => { events: {}, events_default: 25, }, - 'my-event' - ) + 'my-event', + ), ).toEqual(25); }); @@ -254,8 +254,8 @@ describe('calculateRoomEventPowerLevel', () => { { events: { 'my-event': 42 }, }, - 'my-event' - ) + 'my-event', + ), ).toEqual(42); }); @@ -272,8 +272,8 @@ describe('calculateStateEventPowerLevel', () => { events: {}, state_default: 25, }, - 'my-event' - ) + 'my-event', + ), ).toEqual(25); }); @@ -283,8 +283,8 @@ describe('calculateStateEventPowerLevel', () => { { events: { 'my-event': 42 }, }, - 'my-event' - ) + 'my-event', + ), ).toEqual(42); }); @@ -311,10 +311,10 @@ describe('calculateActionPowerLevel', () => { kick: 42, redact: 43, }, - action - ) + action, + ), ).toEqual(level); - } + }, ); it.each` @@ -327,6 +327,6 @@ describe('calculateActionPowerLevel', () => { 'should return fallback "$action" action level if power levels definition is empty', ({ action, level }) => { expect(calculateActionPowerLevel({}, action)).toEqual(level); - } + }, ); }); diff --git a/packages/api/src/api/extras/powerLevel.ts b/packages/api/src/api/extras/powerLevel.ts index 25774b40..86522439 100644 --- a/packages/api/src/api/extras/powerLevel.ts +++ b/packages/api/src/api/extras/powerLevel.ts @@ -51,7 +51,7 @@ function isStringToNumberMapOrUndefined(value: unknown) { (value !== null && typeof value === 'object' && Object.entries(value).every( - ([k, v]) => typeof k === 'string' && typeof v === 'number' + ([k, v]) => typeof k === 'string' && typeof v === 'number', )) ); } @@ -63,7 +63,7 @@ function isStringToNumberMapOrUndefined(value: unknown) { * @returns True, if the event is valid. */ export function isValidPowerLevelStateEvent( - event: StateEvent + event: StateEvent, ): event is StateEvent { if ( event.type !== STATE_EVENT_POWER_LEVELS || @@ -124,7 +124,7 @@ export function isValidPowerLevelStateEvent( export function hasRoomEventPower( powerLevelStateEvent: PowerLevelsStateEvent | undefined, userId: string | undefined, - eventType: string + eventType: string, ): boolean { if (!powerLevelStateEvent) { // See https://github.com/matrix-org/matrix-spec/blob/203b9756f52adfc2a3b63d664f18cdbf9f8bf126/data/event-schemas/schema/m.room.power_levels.yaml#L36-L43 @@ -134,7 +134,7 @@ export function hasRoomEventPower( const userLevel = calculateUserPowerLevel(powerLevelStateEvent, userId); const eventLevel = calculateRoomEventPowerLevel( powerLevelStateEvent, - eventType + eventType, ); return userLevel >= eventLevel; } @@ -150,7 +150,7 @@ export function hasRoomEventPower( export function hasStateEventPower( powerLevelStateEvent: PowerLevelsStateEvent | undefined, userId: string | undefined, - eventType: string + eventType: string, ): boolean { if (!powerLevelStateEvent) { // See https://github.com/matrix-org/matrix-spec/blob/203b9756f52adfc2a3b63d664f18cdbf9f8bf126/data/event-schemas/schema/m.room.power_levels.yaml#L36-L43 @@ -160,7 +160,7 @@ export function hasStateEventPower( const userLevel = calculateUserPowerLevel(powerLevelStateEvent, userId); const eventLevel = calculateStateEventPowerLevel( powerLevelStateEvent, - eventType + eventType, ); return userLevel >= eventLevel; } @@ -182,7 +182,7 @@ export function hasStateEventPower( export function hasActionPower( powerLevelStateEvent: PowerLevelsStateEvent | undefined, userId: string | undefined, - action: PowerLevelsActions + action: PowerLevelsActions, ): boolean { if (!powerLevelStateEvent) { // See https://github.com/matrix-org/matrix-spec/blob/203b9756f52adfc2a3b63d664f18cdbf9f8bf126/data/event-schemas/schema/m.room.power_levels.yaml#L36-L43 @@ -203,7 +203,7 @@ export function hasActionPower( */ export function calculateUserPowerLevel( powerLevelStateEvent: PowerLevelsStateEvent, - userId?: string + userId?: string, ): number { // See https://github.com/matrix-org/matrix-spec/blob/203b9756f52adfc2a3b63d664f18cdbf9f8bf126/data/event-schemas/schema/m.room.power_levels.yaml#L8-L12 return ( @@ -222,7 +222,7 @@ export function calculateUserPowerLevel( */ export function calculateRoomEventPowerLevel( powerLevelStateEvent: PowerLevelsStateEvent, - eventType: string + eventType: string, ): number { // See https://github.com/matrix-org/matrix-spec/blob/203b9756f52adfc2a3b63d664f18cdbf9f8bf126/data/event-schemas/schema/m.room.power_levels.yaml#L14-L19 return ( @@ -241,7 +241,7 @@ export function calculateRoomEventPowerLevel( */ export function calculateStateEventPowerLevel( powerLevelStateEvent: PowerLevelsStateEvent, - eventType: string + eventType: string, ): number { // See https://github.com/matrix-org/matrix-spec/blob/203b9756f52adfc2a3b63d664f18cdbf9f8bf126/data/event-schemas/schema/m.room.power_levels.yaml#L14-L19 return ( @@ -266,7 +266,7 @@ export function calculateStateEventPowerLevel( */ export function calculateActionPowerLevel( powerLevelStateEvent: PowerLevelsStateEvent, - action: PowerLevelsActions + action: PowerLevelsActions, ): number { // See https://github.com/matrix-org/matrix-spec/blob/203b9756f52adfc2a3b63d664f18cdbf9f8bf126/data/event-schemas/schema/m.room.power_levels.yaml#L27-L32 if (action === 'invite') { diff --git a/packages/api/src/api/extras/redactions.test.ts b/packages/api/src/api/extras/redactions.test.ts index 363fc888..ed5196c2 100644 --- a/packages/api/src/api/extras/redactions.test.ts +++ b/packages/api/src/api/extras/redactions.test.ts @@ -92,7 +92,7 @@ describe('observeRedactionEvents', () => { event_id: 'event-id', sender: 'sender-id', } as RoomEvent, - ]) + ]), ); const result = await lastValueFrom(observeRedactionEvents(widgetApi)); diff --git a/packages/api/src/api/extras/redactions.ts b/packages/api/src/api/extras/redactions.ts index d986c30c..29fb6b0f 100644 --- a/packages/api/src/api/extras/redactions.ts +++ b/packages/api/src/api/extras/redactions.ts @@ -47,7 +47,7 @@ export type RedactionRoomEvent = RoomEvent> & Redaction; * @returns True if the event format is valid, otherwise false. */ export function isValidRedactionEvent( - event: RoomEvent + event: RoomEvent, ): event is RedactionRoomEvent { if ( event.type === ROOM_EVENT_REDACTION && @@ -67,11 +67,11 @@ export function isValidRedactionEvent( */ export async function redactEvent( widgetApi: WidgetApi, - eventId: string + eventId: string, ): Promise { const result = await widgetApi.sendRoomEvent( ROOM_EVENT_REDACTION, - { redacts: eventId } + { redacts: eventId }, ); // The redaction event is special and needs to be casted, as the widget // toolkit assumes that the content of an event is returned as we send it. @@ -86,7 +86,7 @@ export async function redactEvent( * @returns An observable of validated redaction events. */ export function observeRedactionEvents( - widgetApi: WidgetApi + widgetApi: WidgetApi, ): Observable { return widgetApi .observeRoomEvents(ROOM_EVENT_REDACTION) diff --git a/packages/api/src/api/extras/relatesTo.test.ts b/packages/api/src/api/extras/relatesTo.test.ts index 6ae6aa8d..26a5c654 100644 --- a/packages/api/src/api/extras/relatesTo.test.ts +++ b/packages/api/src/api/extras/relatesTo.test.ts @@ -48,13 +48,13 @@ function relatesToEvent(rel_type: string) { describe('getOriginalEventId', () => { it('should return the event id of the original event if it contains a "m.replace" relation', () => { expect(getOriginalEventId(relatesToEvent('m.replace'))).toEqual( - 'event-original' + 'event-original', ); }); it('should return the event id of the event if it contains another relation', () => { expect(getOriginalEventId(relatesToEvent('m.reference'))).toEqual( - 'event-relates-to' + 'event-relates-to', ); }); @@ -90,7 +90,7 @@ describe('isValidEventWithRelatesTo', () => { room_id: '!room-id', sender: '@user-id', type: 'm.room.message', - }) + }), ).toBe(true); }); @@ -110,7 +110,7 @@ describe('isValidEventWithRelatesTo', () => { room_id: '!room-id', sender: '@user-id', type: 'm.room.message', - }) + }), ).toBe(true); }); @@ -133,7 +133,7 @@ describe('isValidEventWithRelatesTo', () => { room_id: '!room-id', sender: '@user-id', type: 'm.room.message', - }) + }), ).toBe(false); }); @@ -159,7 +159,7 @@ describe('isValidEventWithRelatesTo', () => { room_id: '!room-id', sender: '@user-id', type: 'm.room.message', - }) + }), ).toBe(false); }); }); diff --git a/packages/api/src/api/extras/relatesTo.ts b/packages/api/src/api/extras/relatesTo.ts index 00ce16d9..5468bb11 100644 --- a/packages/api/src/api/extras/relatesTo.ts +++ b/packages/api/src/api/extras/relatesTo.ts @@ -95,7 +95,7 @@ export function getContent(event: RoomEventOrNewContent): T { * @returns True, if the event is valid. */ export function isValidEventWithRelatesTo( - event: RoomEvent + event: RoomEvent, ): event is EventWithRelatesTo { if (!event.content || typeof event.content !== 'object') { return false; diff --git a/packages/api/src/api/extras/roomMember.ts b/packages/api/src/api/extras/roomMember.ts index 794b01b2..0fde2416 100644 --- a/packages/api/src/api/extras/roomMember.ts +++ b/packages/api/src/api/extras/roomMember.ts @@ -59,7 +59,7 @@ function isStringUndefinedOrNull(value: unknown): boolean { * @returns True, if the event is valid. */ export function isValidRoomMemberStateEvent( - event: StateEvent + event: StateEvent, ): event is StateEvent { if ( event.type !== STATE_EVENT_ROOM_MEMBER || diff --git a/packages/api/src/api/parameters.test.ts b/packages/api/src/api/parameters.test.ts index 83b3c3b7..2a9ef0aa 100644 --- a/packages/api/src/api/parameters.test.ts +++ b/packages/api/src/api/parameters.test.ts @@ -24,7 +24,7 @@ import { describe('extractWidgetApiParameters', () => { it('should extract parentUrl and widgetId from location', () => { mockLocation( - 'https://example.com/widget?parentUrl=https://my-parent-url&widgetId=my-widget-id' + 'https://example.com/widget?parentUrl=https://my-parent-url&widgetId=my-widget-id', ); const { widgetId, clientOrigin } = extractWidgetApiParameters(); @@ -36,7 +36,7 @@ describe('extractWidgetApiParameters', () => { mockLocation('https://example.com/widget?widgetId=my-widget-id'); expect(() => extractWidgetApiParameters()).toThrowError( - 'Missing parameter "parentUrl"' + 'Missing parameter "parentUrl"', ); }); @@ -44,7 +44,7 @@ describe('extractWidgetApiParameters', () => { mockLocation('https://example.com/widget?parentUrl=https://my-parent-url'); expect(() => extractWidgetApiParameters()).toThrowError( - 'Missing parameter "widgetId"' + 'Missing parameter "widgetId"', ); }); }); @@ -52,7 +52,7 @@ describe('extractWidgetApiParameters', () => { describe('extractRawWidgetParameters', () => { it('should read parameters from hash', () => { mockLocation( - 'https://example.com/widget?parentUrl=https://my-parent-url#/?matrix_user_id=my-user-id&custom_parameter=custom-value' + 'https://example.com/widget?parentUrl=https://my-parent-url#/?matrix_user_id=my-user-id&custom_parameter=custom-value', ); const params = extractRawWidgetParameters(); @@ -65,7 +65,7 @@ describe('extractRawWidgetParameters', () => { it('should read parameters from query string for backward compatibility', () => { mockLocation( - 'https://example.com/widget?parentUrl=https://my-parent-url&matrix_user_id=my-user-id&custom_parameter=custom-value' + 'https://example.com/widget?parentUrl=https://my-parent-url&matrix_user_id=my-user-id&custom_parameter=custom-value', ); const params = extractRawWidgetParameters(); @@ -81,7 +81,7 @@ describe('extractRawWidgetParameters', () => { describe('extractWidgetParameters', () => { it('should read parameters from hash', () => { mockLocation( - 'https://example.com/widget?parentUrl=https://my-parent-url#/?matrix_user_id=my-user-id&matrix_display_name=my-display-name&matrix_avatar_url=my-avatar-url&matrix_room_id=my-room-id&theme=my-theme&matrix_client_id=my-client-id&matrix_client_language=my-client-language' + 'https://example.com/widget?parentUrl=https://my-parent-url#/?matrix_user_id=my-user-id&matrix_display_name=my-display-name&matrix_avatar_url=my-avatar-url&matrix_room_id=my-room-id&theme=my-theme&matrix_client_id=my-client-id&matrix_client_language=my-client-language', ); const { userId, @@ -104,7 +104,7 @@ describe('extractWidgetParameters', () => { it('should read parameters from query string for backward compatibility', () => { mockLocation( - 'https://example.com/widget?parentUrl=https://my-parent-url&matrix_user_id=my-user-id' + 'https://example.com/widget?parentUrl=https://my-parent-url&matrix_user_id=my-user-id', ); const { userId } = extractWidgetParameters(); @@ -146,7 +146,7 @@ describe('parseWidgetId', () => { expect(creator).toEqual('@oliver.sand.dev:synapse.dev.nordeck.systems'); expect(roomId).toEqual('!aSudgNJFbTpDfSWxzv:synapse.dev.nordeck.systems'); expect(mainWidgetId).toEqual( - '!aSudgNJFbTpDfSWxzv%3Asynapse.dev.nordeck.systems_%40oliver.sand.dev%3Asynapse.dev.nordeck.systems_1638808226691' + '!aSudgNJFbTpDfSWxzv%3Asynapse.dev.nordeck.systems_%40oliver.sand.dev%3Asynapse.dev.nordeck.systems_1638808226691', ); expect(isModal).toEqual(false); }); @@ -159,7 +159,7 @@ describe('parseWidgetId', () => { expect(creator).toEqual('@oliver.sand.dev:synapse.dev.nordeck.systems'); expect(roomId).toEqual('!aSudgNJFbTpDfSWxzv:synapse.dev.nordeck.systems'); expect(mainWidgetId).toEqual( - '!aSudgNJFbTpDfSWxzv%3Asynapse.dev.nordeck.systems_%40oliver.sand.dev%3Asynapse.dev.nordeck.systems_1638808226691' + '!aSudgNJFbTpDfSWxzv%3Asynapse.dev.nordeck.systems_%40oliver.sand.dev%3Asynapse.dev.nordeck.systems_1638808226691', ); expect(isModal).toEqual(true); }); diff --git a/packages/api/src/api/parameters.ts b/packages/api/src/api/parameters.ts index f1dcadcf..e7ee894f 100644 --- a/packages/api/src/api/parameters.ts +++ b/packages/api/src/api/parameters.ts @@ -65,7 +65,7 @@ export function extractWidgetApiParameters(): WidgetApiParameters { */ export function extractRawWidgetParameters(): Record { const hash = window.location.hash.substring( - window.location.hash.indexOf('?') + 1 + window.location.hash.indexOf('?') + 1, ); const params = { // TODO: Information are leaked to the server when transmitted via query parameters? @@ -78,8 +78,8 @@ export function extractRawWidgetParameters(): Record { Object.entries(params).filter( // For now only use simple values, don't allow them to be specified more // than once. - (e): e is [string, string] => typeof e[1] === 'string' - ) + (e): e is [string, string] => typeof e[1] === 'string', + ), ); } diff --git a/packages/api/src/api/registration.test.ts b/packages/api/src/api/registration.test.ts index bc3a8803..b8f03215 100644 --- a/packages/api/src/api/registration.test.ts +++ b/packages/api/src/api/registration.test.ts @@ -72,7 +72,7 @@ describe('generateWidgetRegistrationUrl', () => { const url = generateWidgetRegistrationUrl(); expect(url).toEqual( - 'https://example.com/#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language' + 'https://example.com/#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language', ); }); @@ -91,7 +91,7 @@ describe('generateWidgetRegistrationUrl', () => { }); expect(url).toEqual( - 'https://example.com/#/?theme=my-theme&matrix_user_id=my-userId&matrix_display_name=my-displayName&matrix_avatar_url=my-avatarUrl&matrix_room_id=my-roomId&matrix_client_id=my-clientId&matrix_client_language=my-clientLanguage' + 'https://example.com/#/?theme=my-theme&matrix_user_id=my-userId&matrix_display_name=my-displayName&matrix_avatar_url=my-avatarUrl&matrix_room_id=my-roomId&matrix_client_id=my-clientId&matrix_client_language=my-clientLanguage', ); }); @@ -100,7 +100,7 @@ describe('generateWidgetRegistrationUrl', () => { const url = generateWidgetRegistrationUrl({ pathName: 'custom' }); expect(url).toEqual( - 'https://example.com/custom#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language' + 'https://example.com/custom#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language', ); }); @@ -113,12 +113,12 @@ describe('generateWidgetRegistrationUrl', () => { it('should forward unknown parameters and reset known parameters', () => { mockLocation( - 'https://example.com/?widgetId=some-id&parentUrl=some-url&some_query_parameter=some-value#/?theme=light&matrix_user_id=some-user&matrix_display_name=some-name&matrix_avatar_url=some-avatar&matrix_room_id=some-room&matrix_client_id=some-id&matrix_client_language=en&some_hash_parameter=some-value' + 'https://example.com/?widgetId=some-id&parentUrl=some-url&some_query_parameter=some-value#/?theme=light&matrix_user_id=some-user&matrix_display_name=some-name&matrix_avatar_url=some-avatar&matrix_room_id=some-room&matrix_client_id=some-id&matrix_client_language=en&some_hash_parameter=some-value', ); const url = generateWidgetRegistrationUrl(); expect(url).toEqual( - 'https://example.com/#/?some_query_parameter=some-value&theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language&some_hash_parameter=some-value' + 'https://example.com/#/?some_query_parameter=some-value&theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language&some_hash_parameter=some-value', ); }); }); @@ -167,7 +167,7 @@ describe('repairWidgetRegistration', () => { expect(widgetApi.requestCapabilities).toBeCalled(); expect(widgetApi.receiveSingleStateEvent).toBeCalledWith( STATE_EVENT_WIDGETS, - 'my-widget-id' + 'my-widget-id', ); expect(widgetApi.sendStateEvent).toBeCalledWith( STATE_EVENT_WIDGETS, @@ -180,7 +180,7 @@ describe('repairWidgetRegistration', () => { }, url: 'https://example.com/#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language', }, - { stateKey: 'my-widget-id' } + { stateKey: 'my-widget-id' }, ); }); @@ -214,7 +214,7 @@ describe('repairWidgetRegistration', () => { expect(widgetApi.requestCapabilities).toBeCalled(); expect(widgetApi.receiveSingleStateEvent).toBeCalledWith( STATE_EVENT_WIDGETS, - 'my-widget-id' + 'my-widget-id', ); expect(widgetApi.sendStateEvent).toBeCalledWith( STATE_EVENT_WIDGETS, @@ -227,7 +227,7 @@ describe('repairWidgetRegistration', () => { }, url: 'https://example.com/#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language', }, - { stateKey: 'my-widget-id' } + { stateKey: 'my-widget-id' }, ); }); @@ -262,7 +262,7 @@ describe('repairWidgetRegistration', () => { expect(widgetApi.requestCapabilities).toBeCalled(); expect(widgetApi.receiveSingleStateEvent).toBeCalledWith( STATE_EVENT_WIDGETS, - 'my-widget-id' + 'my-widget-id', ); expect(widgetApi.sendStateEvent).toBeCalledWith( STATE_EVENT_WIDGETS, @@ -275,7 +275,7 @@ describe('repairWidgetRegistration', () => { }, url: 'https://example.com/path/#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language', }, - { stateKey: 'my-widget-id' } + { stateKey: 'my-widget-id' }, ); }); @@ -311,7 +311,7 @@ describe('repairWidgetRegistration', () => { expect(widgetApi.requestCapabilities).toBeCalled(); expect(widgetApi.receiveSingleStateEvent).toBeCalledWith( STATE_EVENT_WIDGETS, - 'my-widget-id' + 'my-widget-id', ); expect(widgetApi.sendStateEvent).toBeCalledWith( STATE_EVENT_WIDGETS, @@ -325,7 +325,7 @@ describe('repairWidgetRegistration', () => { }, url: 'https://example.com/#/?theme=$org.matrix.msc2873.client_theme&matrix_user_id=$matrix_user_id&matrix_display_name=$matrix_display_name&matrix_avatar_url=$matrix_avatar_url&matrix_room_id=$matrix_room_id&matrix_client_id=$org.matrix.msc2873.client_id&matrix_client_language=$org.matrix.msc2873.client_language', }, - { stateKey: 'my-widget-id' } + { stateKey: 'my-widget-id' }, ); }); }); diff --git a/packages/api/src/api/registration.ts b/packages/api/src/api/registration.ts index 72a28fdf..e3d53d1f 100644 --- a/packages/api/src/api/registration.ts +++ b/packages/api/src/api/registration.ts @@ -54,7 +54,7 @@ export function generateWidgetRegistrationUrl( pathName?: string; includeParameters?: boolean; widgetParameters?: Partial; - } = {} + } = {}, ): string { const { pathName, includeParameters = true, widgetParameters } = options; @@ -102,29 +102,29 @@ export const STATE_EVENT_WIDGETS = 'im.vector.modular.widgets'; */ export async function repairWidgetRegistration( widgetApi: WidgetApi, - registration: WidgetRegistration = {} + registration: WidgetRegistration = {}, ): Promise { await widgetApi.requestCapabilities([ WidgetEventCapability.forStateEvent( EventDirection.Send, STATE_EVENT_WIDGETS, - widgetApi.widgetId + widgetApi.widgetId, ), WidgetEventCapability.forStateEvent( EventDirection.Receive, STATE_EVENT_WIDGETS, - widgetApi.widgetId + widgetApi.widgetId, ), ]); const readResult = await widgetApi.receiveSingleStateEvent( STATE_EVENT_WIDGETS, - widgetApi.widgetId + widgetApi.widgetId, ); if (!readResult) { throw new Error( - "Error while repairing registration, can't find existing registration." + "Error while repairing registration, can't find existing registration.", ); } @@ -163,7 +163,7 @@ export async function repairWidgetRegistration( // that feature is available. // See https://github.com/vector-im/element-web/issues/19435 }, - { stateKey: widgetApi.widgetId } + { stateKey: widgetApi.widgetId }, ), new Promise((resolve) => setTimeout(resolve, 1000)), ]); diff --git a/packages/api/src/api/types.ts b/packages/api/src/api/types.ts index 2d339e4d..0943a951 100644 --- a/packages/api/src/api/types.ts +++ b/packages/api/src/api/types.ts @@ -212,7 +212,7 @@ export type WidgetApi = { * rejected by the user */ requestCapabilities( - capabilities: Array + capabilities: Array, ): Promise; /** @@ -222,7 +222,7 @@ export type WidgetApi = { * @param capabilities - A list of capabilities that should be checked. */ hasCapabilities( - capabilities: Array + capabilities: Array, ): boolean; /** @@ -239,7 +239,7 @@ export type WidgetApi = { */ receiveSingleStateEvent( eventType: string, - stateKey?: string + stateKey?: string, ): Promise | undefined>; /** @@ -261,7 +261,7 @@ export type WidgetApi = { */ receiveStateEvents( eventType: string, - options?: { stateKey?: string; roomIds?: string[] | Symbols.AnyRoom } + options?: { stateKey?: string; roomIds?: string[] | Symbols.AnyRoom }, ): Promise[]>; /** @@ -284,7 +284,7 @@ export type WidgetApi = { */ observeStateEvents( eventType: string, - options?: { stateKey?: string; roomIds?: string[] | Symbols.AnyRoom } + options?: { stateKey?: string; roomIds?: string[] | Symbols.AnyRoom }, ): Observable>; /** @@ -300,7 +300,7 @@ export type WidgetApi = { sendStateEvent( eventType: string, content: T, - options?: { roomId?: string; stateKey?: string } + options?: { roomId?: string; stateKey?: string }, ): Promise>; /** @@ -321,7 +321,7 @@ export type WidgetApi = { */ receiveRoomEvents( eventType: string, - options?: { messageType?: string; roomIds?: string[] | Symbols.AnyRoom } + options?: { messageType?: string; roomIds?: string[] | Symbols.AnyRoom }, ): Promise>>; /** @@ -344,7 +344,7 @@ export type WidgetApi = { */ observeRoomEvents( eventType: string, - options?: { messageType?: string; roomIds?: string[] | Symbols.AnyRoom } + options?: { messageType?: string; roomIds?: string[] | Symbols.AnyRoom }, ): Observable>; /** @@ -358,7 +358,7 @@ export type WidgetApi = { sendRoomEvent( eventType: string, content: T, - options?: { roomId?: string } + options?: { roomId?: string }, ): Promise>; /** @@ -394,7 +394,7 @@ export type WidgetApi = { relationType?: string; eventType?: string; direction?: 'f' | 'b'; - } + }, ): Promise<{ chunk: Array; nextToken?: string; @@ -413,7 +413,7 @@ export type WidgetApi = { sendToDeviceMessage( eventType: string, encrypted: boolean, - content: { [userId: string]: { [deviceId: string | '*']: T } } + content: { [userId: string]: { [deviceId: string | '*']: T } }, ): Promise; /** @@ -422,7 +422,7 @@ export type WidgetApi = { * @param eventType - The type of the event. */ observeToDeviceMessages( - eventType: string + eventType: string, ): Observable>; /** @@ -441,14 +441,14 @@ export type WidgetApi = { */ openModal< T extends Record = Record, - U extends IModalWidgetCreateData = IModalWidgetCreateData + U extends IModalWidgetCreateData = IModalWidgetCreateData, >( pathName: string, name: string, options?: { buttons?: IModalWidgetOpenRequestDataButton[]; data?: U; - } + }, ): Promise; /** @@ -464,7 +464,7 @@ export type WidgetApi = { */ setModalButtonEnabled( buttonId: ModalButtonID, - isEnabled: boolean + isEnabled: boolean, ): Promise; /** @@ -530,7 +530,7 @@ export type WidgetApi = { */ searchUserDirectory( searchTerm: string, - options?: { limit?: number } + options?: { limit?: number }, ): Promise<{ results: Array<{ userId: string; diff --git a/packages/api/src/api/utils.test.ts b/packages/api/src/api/utils.test.ts index 77bcb43b..863bd903 100644 --- a/packages/api/src/api/utils.test.ts +++ b/packages/api/src/api/utils.test.ts @@ -35,7 +35,7 @@ describe('convertToRawCapabilities', () => { 'my.capability', WidgetEventCapability.forStateEvent( EventDirection.Receive, - 'm.room.name' + 'm.room.name', ), ]; const rawCapabilities = convertToRawCapabilities(capabilities); @@ -84,7 +84,7 @@ describe('equalsSet', () => { describe('subtractSet', () => { it('should subtract one set from the other', () => { expect( - subtractSet(new Set(['a', 'b', 'c']), new Set(['a', 'b', 'd', 'e'])) + subtractSet(new Set(['a', 'b', 'c']), new Set(['a', 'b', 'd', 'e'])), ).toEqual(new Set(['c'])); }); }); @@ -118,7 +118,7 @@ describe('isInRoom', () => { it('should return true if matches any of room ids', () => { expect(isInRoom(event, 'another-room', ['my-room', 'test-room'])).toEqual( - true + true, ); }); diff --git a/packages/api/src/api/utils.ts b/packages/api/src/api/utils.ts index adb23498..a09f282d 100644 --- a/packages/api/src/api/utils.ts +++ b/packages/api/src/api/utils.ts @@ -22,7 +22,7 @@ import { } from 'matrix-widget-api'; export function convertToRawCapabilities( - rawCapabilities: Array + rawCapabilities: Array, ): string[] { return rawCapabilities.map((c) => (typeof c === 'string' ? c : c.raw)); } @@ -56,7 +56,7 @@ export function subtractSet(as: Set, bs: Set): Set { export function isInRoom( matrixEvent: IRoomEvent, currentRoomId: string, - roomIds?: string[] | Symbols.AnyRoom + roomIds?: string[] | Symbols.AnyRoom, ): boolean { if (!roomIds) { return matrixEvent.room_id === currentRoomId; diff --git a/packages/mui/README.md b/packages/mui/README.md index 04589839..240fad79 100644 --- a/packages/mui/README.md +++ b/packages/mui/README.md @@ -69,7 +69,7 @@ import { EventDirection, WidgetEventCapability } from 'matrix-widget-api'; capabilities={[ WidgetEventCapability.forStateEvent( EventDirection.Receive, - STATE_EVENT_ROOM_NAME + STATE_EVENT_ROOM_NAME, ), ]} > diff --git a/packages/mui/src/components/ElementAvatar/ElementAvatar.test.tsx b/packages/mui/src/components/ElementAvatar/ElementAvatar.test.tsx index 27f36b09..c3191ea9 100644 --- a/packages/mui/src/components/ElementAvatar/ElementAvatar.test.tsx +++ b/packages/mui/src/components/ElementAvatar/ElementAvatar.test.tsx @@ -25,11 +25,11 @@ describe('', () => { userId="@user-alice" displayName="Alice" avatarUrl={'mxc://alice'} - /> + />, ); await expect( - screen.findByRole('img', { hidden: true }) + screen.findByRole('img', { hidden: true }), ).resolves.toBeInTheDocument(); }); @@ -39,11 +39,11 @@ describe('', () => { userId="@user-alice" displayName="Alice" avatarUrl={'mxc://alice'} - /> + />, ); await expect( - screen.findByRole('img', { hidden: true }) + screen.findByRole('img', { hidden: true }), ).resolves.toBeInTheDocument(); expect(await axe(container)).toHaveNoViolations(); @@ -55,14 +55,14 @@ describe('', () => { userId="@user-alice" displayName="Alice" avatarUrl={'mxc://alice'} - /> + />, ); await expect( - screen.findByRole('img', { hidden: true }) + screen.findByRole('img', { hidden: true }), ).resolves.toHaveAttribute( 'src', - expect.stringMatching(/\/_matrix\/media\/r0\/thumbnail\/alice/i) + expect.stringMatching(/\/_matrix\/media\/r0\/thumbnail\/alice/i), ); }); diff --git a/packages/mui/src/components/ElementAvatar/ElementAvatar.tsx b/packages/mui/src/components/ElementAvatar/ElementAvatar.tsx index b386d165..d310f81a 100644 --- a/packages/mui/src/components/ElementAvatar/ElementAvatar.tsx +++ b/packages/mui/src/components/ElementAvatar/ElementAvatar.tsx @@ -80,5 +80,5 @@ export const ElementAvatar = forwardRef( {getInitialLetter(name)} ); - } + }, ); diff --git a/packages/mui/src/components/ElementAvatar/createAvatarUrl.test.ts b/packages/mui/src/components/ElementAvatar/createAvatarUrl.test.ts index 4d7d8fba..ec35555c 100644 --- a/packages/mui/src/components/ElementAvatar/createAvatarUrl.test.ts +++ b/packages/mui/src/components/ElementAvatar/createAvatarUrl.test.ts @@ -30,10 +30,10 @@ describe('createAvatarUrl', () => { expect( createAvatarUrl( - 'https://matrix-client.matrix.org/_matrix/media/r0/thumbnail/matrix.org/KbhRFOIJekHQpMVIZGpuNxBG?width=60&height=60&method=crop' - ) + 'https://matrix-client.matrix.org/_matrix/media/r0/thumbnail/matrix.org/KbhRFOIJekHQpMVIZGpuNxBG?width=60&height=60&method=crop', + ), ).toBe( - 'https://matrix-client.matrix.org/_matrix/media/r0/thumbnail/matrix.org/KbhRFOIJekHQpMVIZGpuNxBG?width=60&height=60&method=crop' + 'https://matrix-client.matrix.org/_matrix/media/r0/thumbnail/matrix.org/KbhRFOIJekHQpMVIZGpuNxBG?width=60&height=60&method=crop', ); }); @@ -43,7 +43,7 @@ describe('createAvatarUrl', () => { .mockImplementation((_name, defaultValue) => defaultValue); expect(createAvatarUrl('mxc://matrix.org/KbhRFOIJekHQpMVIZGpuNxBG')).toBe( - 'https://matrix-client.matrix.org/_matrix/media/r0/thumbnail/matrix.org/KbhRFOIJekHQpMVIZGpuNxBG?width=60&height=60&method=crop' + 'https://matrix-client.matrix.org/_matrix/media/r0/thumbnail/matrix.org/KbhRFOIJekHQpMVIZGpuNxBG?width=60&height=60&method=crop', ); }); @@ -53,11 +53,11 @@ describe('createAvatarUrl', () => { .mockImplementation((name, defaultValue) => name === 'REACT_APP_HOME_SERVER_URL' ? 'https://example.com' - : defaultValue + : defaultValue, ); expect(createAvatarUrl('mxc://matrix.org/KbhRFOIJekHQpMVIZGpuNxBG')).toBe( - 'https://example.com/_matrix/media/r0/thumbnail/matrix.org/KbhRFOIJekHQpMVIZGpuNxBG?width=60&height=60&method=crop' + 'https://example.com/_matrix/media/r0/thumbnail/matrix.org/KbhRFOIJekHQpMVIZGpuNxBG?width=60&height=60&method=crop', ); }); }); diff --git a/packages/mui/src/components/ElementAvatar/createAvatarUrl.ts b/packages/mui/src/components/ElementAvatar/createAvatarUrl.ts index 79d5d179..67b7cc5e 100644 --- a/packages/mui/src/components/ElementAvatar/createAvatarUrl.ts +++ b/packages/mui/src/components/ElementAvatar/createAvatarUrl.ts @@ -18,7 +18,7 @@ import { getEnvironment } from '../MuiThemeProvider'; export function createAvatarUrl( url: string, - { size = 60 }: { size?: number } = {} + { size = 60 }: { size?: number } = {}, ): string { const mxcPrefix = 'mxc://'; @@ -37,11 +37,11 @@ export function createAvatarUrl( // endpoint. However, this would also require a broad connect-src in the CSP. const homeServer = getEnvironment( 'REACT_APP_HOME_SERVER_URL', - 'https://matrix-client.matrix.org' + 'https://matrix-client.matrix.org', ); const imageUrl = new URL( `/_matrix/media/r0/thumbnail/${mxcUrl}?width=${size}&height=${size}&method=crop`, - homeServer + homeServer, ); return imageUrl.toString(); } diff --git a/packages/mui/src/components/ElementAvatar/getInitialLetter.test.ts b/packages/mui/src/components/ElementAvatar/getInitialLetter.test.ts index a45e0a34..91b7f8b0 100644 --- a/packages/mui/src/components/ElementAvatar/getInitialLetter.test.ts +++ b/packages/mui/src/components/ElementAvatar/getInitialLetter.test.ts @@ -26,6 +26,6 @@ describe('getInitialLetter', () => { 'should detect %letter as the initial letter of %value', ({ letter, value }) => { expect(getInitialLetter(value)).toBe(letter); - } + }, ); }); diff --git a/packages/mui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.test.tsx b/packages/mui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.test.tsx index 985b9572..9a716f5d 100644 --- a/packages/mui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.test.tsx +++ b/packages/mui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.test.tsx @@ -29,7 +29,7 @@ describe('', () => { it('should have no accessibility violations', async () => { const { container } = render( - + , ); expect(await axe(container)).toHaveNoViolations(); @@ -40,7 +40,7 @@ describe('', () => { render(); await userEvent.click( - screen.getByRole('button', { name: /request capabilities/i }) + screen.getByRole('button', { name: /request capabilities/i }), ); expect(onRetry).toBeCalled(); diff --git a/packages/mui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.tsx b/packages/mui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.tsx index d19fe5d5..31cdd116 100644 --- a/packages/mui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.tsx +++ b/packages/mui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.tsx @@ -36,7 +36,7 @@ export function MissingCapabilitiesError({ {t( 'missing-capabilities.instructions', - 'The minimum capabilities required for this widget are missing. Make sure to grant all requested capabilities.' + 'The minimum capabilities required for this widget are missing. Make sure to grant all requested capabilities.', )} @@ -44,7 +44,7 @@ export function MissingCapabilitiesError({ diff --git a/packages/mui/src/components/MuiCapabilitiesGuard/MuiCapabilitiesGuard.test.tsx b/packages/mui/src/components/MuiCapabilitiesGuard/MuiCapabilitiesGuard.test.tsx index 5109f549..d12ecbec 100644 --- a/packages/mui/src/components/MuiCapabilitiesGuard/MuiCapabilitiesGuard.test.tsx +++ b/packages/mui/src/components/MuiCapabilitiesGuard/MuiCapabilitiesGuard.test.tsx @@ -43,7 +43,7 @@ describe('', () => {
Child
, - { wrapper } + { wrapper }, ); expect(await screen.findByText('Missing capabilities')).toBeInTheDocument(); @@ -59,7 +59,7 @@ describe('', () => {
Child
, - { wrapper } + { wrapper }, ); expect(await screen.findByText('Missing capabilities')).toBeInTheDocument(); diff --git a/packages/mui/src/components/MuiThemeProvider/MuiThemeProvider.test.tsx b/packages/mui/src/components/MuiThemeProvider/MuiThemeProvider.test.tsx index f92a5e91..78abd749 100644 --- a/packages/mui/src/components/MuiThemeProvider/MuiThemeProvider.test.tsx +++ b/packages/mui/src/components/MuiThemeProvider/MuiThemeProvider.test.tsx @@ -33,7 +33,7 @@ describe('', () => { render(

children

-
+
, ); expect(screen.getByText(/children/)).toBeInTheDocument(); @@ -50,7 +50,7 @@ describe('chooseTheme', () => { 'should return matching theme for $themeName theme', ({ themeName, theme }) => { expect(chooseTheme(themeName)).toBe(theme); - } + }, ); it('should override light theme with high contrast theme via environment', () => { diff --git a/packages/mui/src/components/MuiThemeProvider/MuiThemeProvider.tsx b/packages/mui/src/components/MuiThemeProvider/MuiThemeProvider.tsx index 4ca12ab1..938eb5ee 100644 --- a/packages/mui/src/components/MuiThemeProvider/MuiThemeProvider.tsx +++ b/packages/mui/src/components/MuiThemeProvider/MuiThemeProvider.tsx @@ -71,7 +71,7 @@ export function MuiThemeProvider({ export function chooseTheme(theme: string): ThemeOptions { const isDark = theme === 'dark'; const isForceHighContrast = !!getEnvironment( - 'REACT_APP_FORCE_HIGH_CONTRAST_THEME' + 'REACT_APP_FORCE_HIGH_CONTRAST_THEME', ); const isHighContrast = isForceHighContrast || theme === 'light-high-contrast'; diff --git a/packages/mui/src/components/MuiThemeProvider/environment.test.ts b/packages/mui/src/components/MuiThemeProvider/environment.test.ts index 2b740621..5612c610 100644 --- a/packages/mui/src/components/MuiThemeProvider/environment.test.ts +++ b/packages/mui/src/components/MuiThemeProvider/environment.test.ts @@ -36,7 +36,7 @@ describe('getEnvironment', () => { it('should return variable from window', async () => { window.__ENVIRONMENT__ = window.btoa( - '{"REACT_APP_EXAMPLE":"example-window"}' + '{"REACT_APP_EXAMPLE":"example-window"}', ); const { getEnvironment } = await import('./environment'); expect(getEnvironment('REACT_APP_EXAMPLE')).toEqual('example-window'); diff --git a/packages/mui/src/components/MuiThemeProvider/environment.ts b/packages/mui/src/components/MuiThemeProvider/environment.ts index 9cd336d5..a67438bf 100644 --- a/packages/mui/src/components/MuiThemeProvider/environment.ts +++ b/packages/mui/src/components/MuiThemeProvider/environment.ts @@ -32,7 +32,7 @@ const getWindowEnvironment = () => { } catch { console.warn( 'window.__ENVIRONMENT__ has an unexpected format', - encoded + encoded, ); } } @@ -63,7 +63,7 @@ export function getEnvironment(name: string, defaultValue: string): string; export function getEnvironment( name: string, - defaultValue?: string + defaultValue?: string, ): string | undefined { const value = environment[name] || process.env[name]; return value ?? defaultValue; diff --git a/packages/mui/src/components/MuiThemeProvider/theme.test.tsx b/packages/mui/src/components/MuiThemeProvider/theme.test.tsx index a8eab685..d6253fa0 100644 --- a/packages/mui/src/components/MuiThemeProvider/theme.test.tsx +++ b/packages/mui/src/components/MuiThemeProvider/theme.test.tsx @@ -89,10 +89,10 @@ describe.each` expect( wcagContrast( theme.palette.text[text], - theme.palette.background[background] - ) + theme.palette.background[background], + ), ).toMatchObject({ regularText, largeText }); - } + }, ); it.each` @@ -121,10 +121,10 @@ describe.each` expect( wcagContrast( theme.palette[palette].contrastText, - theme.palette[palette][background] - ) + theme.palette[palette][background], + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -153,10 +153,10 @@ describe.each` expect( wcagContrast( theme.palette[palette].main, - theme.palette.background[background] - ) + theme.palette.background[background], + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -188,11 +188,11 @@ describe.each` alphaBlend( theme.palette[palette].main, theme.palette.background[background], - theme.palette.action.hoverOpacity - ) - ) + theme.palette.action.hoverOpacity, + ), + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -224,11 +224,11 @@ describe.each` alphaBlend( theme.palette[palette].main, theme.palette.background[background], - theme.palette.action.hoverOpacity - ) - ) + theme.palette.action.hoverOpacity, + ), + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -265,7 +265,7 @@ describe.each` expect(wcagContrast(iconColor, backgroundColor)).toMatchObject({ uiComponent, }); - } + }, ); it.each` @@ -299,10 +299,10 @@ describe.each` expect( wcagContrast( getColor(theme.palette[palette].light, 0.6), - backgroundColor - ) + backgroundColor, + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); // TODO: Check switch active and inactive state against background @@ -321,11 +321,11 @@ describe.each` theme.palette.text.primary, alphaBlend( theme.palette.action.selected, - theme.palette.background[background] - ) - ) + theme.palette.background[background], + ), + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -341,10 +341,10 @@ describe.each` expect( wcagContrast( theme.palette[palette].contrastText, - theme.palette[palette].main - ) + theme.palette[palette].main, + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -357,10 +357,10 @@ describe.each` expect( wcagContrast( theme.palette.text.primary, - theme.palette.background[background] - ) + theme.palette.background[background], + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -387,10 +387,10 @@ describe.each` expect( wcagContrast( theme.palette[palette].main, - theme.palette.background[background] - ) + theme.palette.background[background], + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); // TODO: Check input placeholder against background @@ -411,10 +411,10 @@ describe.each` expect( wcagContrast( theme.palette.primary.main, - theme.palette.background[background] - ) + theme.palette.background[background], + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -441,11 +441,11 @@ describe.each` theme.palette.text[text], alphaBlend( theme.palette.action.hover, - theme.palette.background[background] - ) - ) + theme.palette.background[background], + ), + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -472,11 +472,11 @@ describe.each` theme.palette.text[text], alphaBlend( theme.palette.action.selected, - theme.palette.background[background] - ) - ) + theme.palette.background[background], + ), + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); it.each` @@ -505,14 +505,14 @@ describe.each` theme.palette.action.hover, alphaBlend( theme.palette.action.selected, - theme.palette.background[background] - ) - ) - ) + theme.palette.background[background], + ), + ), + ), ).toMatchObject({ regularText, largeText, uiComponent }); - } + }, ); - } + }, ); /** @@ -523,7 +523,7 @@ describe.each` function alphaBlend( foregroundColor: string, backgroundColor: string, - forceAlpha?: number + forceAlpha?: number, ): string { let foreground = decomposeColor(foregroundColor); let background = decomposeColor(backgroundColor); @@ -553,7 +553,7 @@ function alphaBlend( */ function wcagContrast( foregroundColor: string, - backgroundColor: string + backgroundColor: string, ): { contrastRatio: number; regularText: { aa: boolean; aaa: boolean }; @@ -564,7 +564,7 @@ function wcagContrast( // The contrast ratio doesn't take alpha values for the foreground into // account, we have to resolve them first: alphaBlend(foregroundColor, backgroundColor), - backgroundColor + backgroundColor, ); // See https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum diff --git a/packages/mui/src/components/MuiWidgetApiProvider/ChildError.test.tsx b/packages/mui/src/components/MuiWidgetApiProvider/ChildError.test.tsx index cefac96f..c1223f18 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/ChildError.test.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/ChildError.test.tsx @@ -25,7 +25,7 @@ describe('', () => { expect(screen.getByText('Ohh no!')).toBeInTheDocument(); expect( - screen.getByText(/an error occured inside the widget/i) + screen.getByText(/an error occured inside the widget/i), ).toBeInTheDocument(); expect(screen.getByText(/Hello World/)).toBeInTheDocument(); }); diff --git a/packages/mui/src/components/MuiWidgetApiProvider/ChildError.tsx b/packages/mui/src/components/MuiWidgetApiProvider/ChildError.tsx index 79947dba..aa6813a3 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/ChildError.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/ChildError.tsx @@ -31,7 +31,7 @@ export function ChildError({ error }: { error: Error }): ReactElement { {t( 'error.instructions', - 'An error occured inside the widget. You can try to reopen the widget.' + 'An error occured inside the widget. You can try to reopen the widget.', )} diff --git a/packages/mui/src/components/MuiWidgetApiProvider/CopyableCode.test.tsx b/packages/mui/src/components/MuiWidgetApiProvider/CopyableCode.test.tsx index b7c3d5da..3e5edb2a 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/CopyableCode.test.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/CopyableCode.test.tsx @@ -41,7 +41,7 @@ describe('', () => { expect(screen.getByText('Hello World')).toBeInTheDocument(); expect( - screen.getByRole('button', { name: 'Copy to clipboard' }) + screen.getByRole('button', { name: 'Copy to clipboard' }), ).toBeInTheDocument(); }); diff --git a/packages/mui/src/components/MuiWidgetApiProvider/MissingParametersError.test.tsx b/packages/mui/src/components/MuiWidgetApiProvider/MissingParametersError.test.tsx index 7fdf6ebf..c374a973 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/MissingParametersError.test.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/MissingParametersError.test.tsx @@ -30,7 +30,7 @@ jest.mock('@matrix-widget-toolkit/api'); const repairWidgetRegistration = jest.mocked(repairWidgetRegistrationMocked); const generateWidgetRegistrationUrl = jest.mocked( - generateWidgetRegistrationUrlMocked + generateWidgetRegistrationUrlMocked, ); describe('', () => { @@ -55,16 +55,16 @@ describe('', () => { render( , - { wrapper } + { wrapper }, ); expect(screen.getByText('Wrong widget registration')).toBeInTheDocument(); expect( - screen.getByText(/the widget is not registered correctly/i) + screen.getByText(/the widget is not registered correctly/i), ).toBeInTheDocument(); expect(screen.getByText(/\/addwidget/)).toBeInTheDocument(); expect( - await screen.findByText(/you can either modify the widget/i) + await screen.findByText(/you can either modify the widget/i), ).toBeInTheDocument(); const repairButton = screen.getByRole('button', { @@ -77,10 +77,10 @@ describe('', () => { name: 'New Widget', }); expect( - await screen.findByText('Widget configuration complete') + await screen.findByText('Widget configuration complete'), ).toBeInTheDocument(); expect( - await screen.findByText(/configuration completed/i) + await screen.findByText(/configuration completed/i), ).toBeInTheDocument(); }); @@ -89,7 +89,7 @@ describe('', () => { render( , - { wrapper } + { wrapper }, ); const repairButton = screen.getByRole('button', { @@ -103,7 +103,7 @@ describe('', () => { }); expect(await screen.findByText('Error')).toBeInTheDocument(); expect( - await screen.findByText(/insufficient permissions/i) + await screen.findByText(/insufficient permissions/i), ).toBeInTheDocument(); const closeButton = screen.getByRole('button', { name: /close/i }); @@ -116,7 +116,7 @@ describe('', () => { const { container } = render( , - { wrapper } + { wrapper }, ); expect(await axe(container)).toHaveNoViolations(); diff --git a/packages/mui/src/components/MuiWidgetApiProvider/MissingParametersError.tsx b/packages/mui/src/components/MuiWidgetApiProvider/MissingParametersError.tsx index e52532f9..dc1b77b5 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/MissingParametersError.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/MissingParametersError.tsx @@ -88,7 +88,7 @@ export function MissingParametersError({ {t( 'missing-parameters.instructions', - 'The widget is not registered correctly. Make sure to include the correct parameters in the widget URL:' + 'The widget is not registered correctly. Make sure to include the correct parameters in the widget URL:', )} @@ -99,7 +99,7 @@ export function MissingParametersError({ {t( 'missing-parameters.repair-instructions', - 'You can either modify the widget registration manually or fix it automatically:' + 'You can either modify the widget registration manually or fix it automatically:', )} @@ -123,7 +123,7 @@ export function MissingParametersError({ {t( 'missing-parameters.permissions-error.instructions', - 'Insufficient permissions, could not configure widget. Only room admins can configure the widget.' + 'Insufficient permissions, could not configure widget. Only room admins can configure the widget.', )} @@ -142,14 +142,14 @@ export function MissingParametersError({ {t( 'missing-parameters.completed.title', - 'Widget configuration complete' + 'Widget configuration complete', )} {t( 'missing-parameters.completed.instructions', - 'Configuration completed, reopen the widget to start using it.' + 'Configuration completed, reopen the widget to start using it.', )} diff --git a/packages/mui/src/components/MuiWidgetApiProvider/MobileClientError.test.tsx b/packages/mui/src/components/MuiWidgetApiProvider/MobileClientError.test.tsx index 49620e4d..80e0b7d4 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/MobileClientError.test.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/MobileClientError.test.tsx @@ -23,10 +23,10 @@ describe('', () => { render(); expect( - screen.getByText('Mobile clients are not supported') + screen.getByText('Mobile clients are not supported'), ).toBeInTheDocument(); expect( - screen.getByText(/the widget doesn't work in mobile clients/i) + screen.getByText(/the widget doesn't work in mobile clients/i), ).toBeInTheDocument(); }); diff --git a/packages/mui/src/components/MuiWidgetApiProvider/MobileClientError.tsx b/packages/mui/src/components/MuiWidgetApiProvider/MobileClientError.tsx index 5dd2a710..4781007e 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/MobileClientError.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/MobileClientError.tsx @@ -31,7 +31,7 @@ export function MobileClientError(): ReactElement { {t( 'mobile-client.instructions', - "The widget doesn't work in mobile clients due to technical limitations. Open the widget on you Desktop or Web client." + "The widget doesn't work in mobile clients due to technical limitations. Open the widget on you Desktop or Web client.", )} diff --git a/packages/mui/src/components/MuiWidgetApiProvider/MuiWidgetApiProvider.test.tsx b/packages/mui/src/components/MuiWidgetApiProvider/MuiWidgetApiProvider.test.tsx index 791f44b8..f271dfaa 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/MuiWidgetApiProvider.test.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/MuiWidgetApiProvider.test.tsx @@ -25,7 +25,7 @@ import { MuiWidgetApiProvider } from './MuiWidgetApiProvider'; jest.mock('@matrix-widget-toolkit/api'); const hasRequiredWidgetParameters = jest.mocked( - hasRequiredWidgetParametersMocked + hasRequiredWidgetParametersMocked, ); const extractWidgetParameters = jest.mocked(extractWidgetParametersMocked); @@ -55,7 +55,7 @@ describe('WidgetApiProvider', () => { render(
Children
-
+ , ); expect(await screen.findByText('Children')).toBeInTheDocument(); diff --git a/packages/mui/src/components/MuiWidgetApiProvider/OutsideClientError.test.tsx b/packages/mui/src/components/MuiWidgetApiProvider/OutsideClientError.test.tsx index 54808242..fad13087 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/OutsideClientError.test.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/OutsideClientError.test.tsx @@ -24,7 +24,7 @@ describe('', () => { expect(screen.getByText('Only runs as a widget')).toBeInTheDocument(); expect( - screen.getByText(/you need to register this URL as a widget/i) + screen.getByText(/you need to register this URL as a widget/i), ).toBeInTheDocument(); expect(screen.getByText(/\/addwidget/)).toBeInTheDocument(); }); diff --git a/packages/mui/src/components/MuiWidgetApiProvider/OutsideClientError.tsx b/packages/mui/src/components/MuiWidgetApiProvider/OutsideClientError.tsx index 20d1d0b3..7adb7219 100644 --- a/packages/mui/src/components/MuiWidgetApiProvider/OutsideClientError.tsx +++ b/packages/mui/src/components/MuiWidgetApiProvider/OutsideClientError.tsx @@ -34,7 +34,7 @@ export function OutsideClientError(): ReactElement { {t( 'outside-client.instructions', - "You need to register this URL as a widget, it's not possible to use it standalone. Run this command in the matrix room you want to register the widget in:" + "You need to register this URL as a widget, it's not possible to use it standalone. Run this command in the matrix room you want to register the widget in:", )} diff --git a/packages/react/src/components/CapabilitiesGuard/CapabilitiesGuard.test.tsx b/packages/react/src/components/CapabilitiesGuard/CapabilitiesGuard.test.tsx index 0d85c354..808d0a43 100644 --- a/packages/react/src/components/CapabilitiesGuard/CapabilitiesGuard.test.tsx +++ b/packages/react/src/components/CapabilitiesGuard/CapabilitiesGuard.test.tsx @@ -66,7 +66,7 @@ describe('', () => {
Child
, - { wrapper } + { wrapper }, ); expect(await screen.findByText('Child')).toBeInTheDocument(); @@ -79,14 +79,14 @@ describe('', () => { widgetApi.requestCapabilities.mockReturnValue( new Promise(() => { // Never resolves - }) + }), ); render(
Child
, - { wrapper } + { wrapper }, ); expect(await screen.findByText('Loading')).toBeInTheDocument(); @@ -102,7 +102,7 @@ describe('', () => {
Child
, - { wrapper } + { wrapper }, ); expect(await screen.findByText('Missing capabilities')).toBeInTheDocument(); @@ -113,7 +113,7 @@ describe('', () => { expect(widgetApi.requestCapabilities).toBeCalledTimes(1); await userEvent.click( - await screen.findByRole('button', { name: 'Request capabilities' }) + await screen.findByRole('button', { name: 'Request capabilities' }), ); expect(widgetApi.requestCapabilities).toBeCalledTimes(2); diff --git a/packages/react/src/components/CapabilitiesGuard/CapabilitiesGuard.tsx b/packages/react/src/components/CapabilitiesGuard/CapabilitiesGuard.tsx index 0cf0fe2a..369d212c 100644 --- a/packages/react/src/components/CapabilitiesGuard/CapabilitiesGuard.tsx +++ b/packages/react/src/components/CapabilitiesGuard/CapabilitiesGuard.tsx @@ -67,7 +67,7 @@ export function CapabilitiesGuard({ retry: requestCapabilities, } = useAsyncRetry( () => widgetApi.requestCapabilities(capabilities), - [widgetApi, capabilities] + [widgetApi, capabilities], ); if (loading) { diff --git a/packages/react/src/components/ThemeSelectionProvider/ThemeSelectionProvider.test.tsx b/packages/react/src/components/ThemeSelectionProvider/ThemeSelectionProvider.test.tsx index b02e91c9..e68633aa 100644 --- a/packages/react/src/components/ThemeSelectionProvider/ThemeSelectionProvider.test.tsx +++ b/packages/react/src/components/ThemeSelectionProvider/ThemeSelectionProvider.test.tsx @@ -29,7 +29,7 @@ import { jest.mock('@matrix-widget-toolkit/api'); const extractWidgetApiParameters = jest.mocked( - extractWidgetApiParametersMocked + extractWidgetApiParametersMocked, ); const extractWidgetParameters = jest.mocked(extractWidgetParametersMocked); const parseWidgetId = jest.mocked(parseWidgetIdMocked); @@ -59,7 +59,7 @@ describe('', () => { render(

children

-
+
, ); expect(screen.getByText(/children/)).toBeInTheDocument(); diff --git a/packages/react/src/components/ThemeSelectionProvider/ThemeSelectionProvider.tsx b/packages/react/src/components/ThemeSelectionProvider/ThemeSelectionProvider.tsx index f7bbb5d4..0100653a 100644 --- a/packages/react/src/components/ThemeSelectionProvider/ThemeSelectionProvider.tsx +++ b/packages/react/src/components/ThemeSelectionProvider/ThemeSelectionProvider.tsx @@ -70,7 +70,7 @@ export const useThemeSelection = (): ThemeSelectionContextType => { if (context === undefined) { throw new Error( - 'useThemeSelection must be used within a ThemeSelectionProvider' + 'useThemeSelection must be used within a ThemeSelectionProvider', ); } @@ -127,7 +127,7 @@ export function ThemeSelectionProvider({ isModal, setTheme, }), - [isModal, setTheme, theme] + [isModal, setTheme, theme], ); return ( diff --git a/packages/react/src/components/WidgetApiProvider/WidgetApiProvider.test.tsx b/packages/react/src/components/WidgetApiProvider/WidgetApiProvider.test.tsx index e1170f24..9632f759 100644 --- a/packages/react/src/components/WidgetApiProvider/WidgetApiProvider.test.tsx +++ b/packages/react/src/components/WidgetApiProvider/WidgetApiProvider.test.tsx @@ -33,7 +33,7 @@ import { WidgetApiProvider } from './WidgetApiProvider'; jest.mock('@matrix-widget-toolkit/api'); const hasRequiredWidgetParameters = jest.mocked( - hasRequiredWidgetParametersMocked + hasRequiredWidgetParametersMocked, ); const extractWidgetParameters = jest.mocked(extractWidgetParametersMocked); @@ -115,7 +115,7 @@ describe('WidgetApiProvider', () => { render(
Children
-
+ , ); expect(await screen.findByText('Loading')).toBeInTheDocument(); @@ -128,7 +128,7 @@ describe('WidgetApiProvider', () => { render(
Children
-
+ , ); expect(await screen.findByText('Children')).toBeInTheDocument(); @@ -151,7 +151,7 @@ describe('WidgetApiProvider', () => { render( - + , ); expect(await screen.findByText('Child')).toBeInTheDocument(); @@ -168,14 +168,14 @@ describe('WidgetApiProvider', () => { render(
Children
-
+ , ); expect(await screen.findByText('Missing capabilities')).toBeInTheDocument(); expect(widgetApi.hasInitialCapabilities).toBeCalled(); await userEvent.click( - screen.getByRole('button', { name: 'Request capabilities' }) + screen.getByRole('button', { name: 'Request capabilities' }), ); expect(widgetApi.rerequestInitialCapabilities).toBeCalled(); @@ -191,11 +191,11 @@ describe('WidgetApiProvider', () => { render(
Children
-
+ , ); expect( - await screen.findByText('Only runs as a widget') + await screen.findByText('Only runs as a widget'), ).toBeInTheDocument(); }); @@ -205,11 +205,11 @@ describe('WidgetApiProvider', () => { render(
Children
-
+ , ); expect( - await screen.findByText('Mobile clients are not supported') + await screen.findByText('Mobile clients are not supported'), ).toBeInTheDocument(); }); @@ -220,11 +220,11 @@ describe('WidgetApiProvider', () => { render(
Children
-
+ , ); expect( - await screen.findByText('Wrong widget registration') + await screen.findByText('Wrong widget registration'), ).toBeInTheDocument(); }); @@ -239,7 +239,7 @@ describe('WidgetApiProvider', () => { render( - + , ); expect(await screen.findByText('Child Error')).toBeInTheDocument(); diff --git a/packages/react/src/components/WidgetApiProvider/WidgetApiProvider.tsx b/packages/react/src/components/WidgetApiProvider/WidgetApiProvider.tsx index cdfa2efc..49f53649 100644 --- a/packages/react/src/components/WidgetApiProvider/WidgetApiProvider.tsx +++ b/packages/react/src/components/WidgetApiProvider/WidgetApiProvider.tsx @@ -108,7 +108,7 @@ export function WidgetApiProvider({ setInitialCapabilitiesGranted(false); } }, - [] + [], ); const { diff --git a/packages/react/src/components/WidgetApiProvider/context.ts b/packages/react/src/components/WidgetApiProvider/context.ts index e2bf98c2..7b9ada0d 100644 --- a/packages/react/src/components/WidgetApiProvider/context.ts +++ b/packages/react/src/components/WidgetApiProvider/context.ts @@ -31,7 +31,7 @@ export const useWidgetApi = (): WidgetApi => { const context = useContext(WidgetApiContext); if (context === undefined) { throw new Error( - 'useWidgetApi must be used within a WidgetApiProvider (or WidgetApiMockProvider in tests)' + 'useWidgetApi must be used within a WidgetApiProvider (or WidgetApiMockProvider in tests)', ); } return context; diff --git a/packages/semantic-ui/craco/buildSemanticUiThemePlugin.js b/packages/semantic-ui/craco/buildSemanticUiThemePlugin.js index 69e2a575..06976e6b 100644 --- a/packages/semantic-ui/craco/buildSemanticUiThemePlugin.js +++ b/packages/semantic-ui/craco/buildSemanticUiThemePlugin.js @@ -49,7 +49,7 @@ function overrideWebpackConfig({ webpackConfig, context }) { // Get the less-loader that was added by @semantic-ui-react/craco-less const { isFound, match: lessLoaderMatch } = getLoader( webpackConfig, - loaderByName('less-loader') + loaderByName('less-loader'), ); if (!isFound) { @@ -88,7 +88,7 @@ ${ // Find the theme.config relative to this file. It might be located in the node_modules folder webpackConfig.resolve.alias['../../theme.config$'] = path.join( __dirname, - '../src/semantic-ui/theme.config' + '../src/semantic-ui/theme.config', ); return webpackConfig; diff --git a/packages/semantic-ui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.test.tsx b/packages/semantic-ui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.test.tsx index 55c4c36d..8340c156 100644 --- a/packages/semantic-ui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.test.tsx +++ b/packages/semantic-ui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.test.tsx @@ -32,7 +32,7 @@ describe('', () => { render(); await userEvent.click( - screen.getByRole('button', { name: /request capabilities/i }) + screen.getByRole('button', { name: /request capabilities/i }), ); expect(onRetry).toBeCalled(); diff --git a/packages/semantic-ui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.tsx b/packages/semantic-ui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.tsx index 211951a8..3ee4c20c 100644 --- a/packages/semantic-ui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.tsx +++ b/packages/semantic-ui/src/components/MissingCapabilitiesError/MissingCapabilitiesError.tsx @@ -35,7 +35,7 @@ export function MissingCapabilitiesError({ {t( 'missing-capabilities.instructions', - 'The minimum capabilities required for this widget are missing. Make sure to grant all requested capabilities.' + 'The minimum capabilities required for this widget are missing. Make sure to grant all requested capabilities.', )} diff --git a/packages/semantic-ui/src/components/SemanticUiCapabilitiesGuard/SemanticUiCapabilitiesGuard.test.tsx b/packages/semantic-ui/src/components/SemanticUiCapabilitiesGuard/SemanticUiCapabilitiesGuard.test.tsx index 408f37b0..b8a628ee 100644 --- a/packages/semantic-ui/src/components/SemanticUiCapabilitiesGuard/SemanticUiCapabilitiesGuard.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiCapabilitiesGuard/SemanticUiCapabilitiesGuard.test.tsx @@ -42,7 +42,7 @@ describe('', () => {
Child
, - { wrapper } + { wrapper }, ); expect(await screen.findByText('Missing capabilities')).toBeInTheDocument(); diff --git a/packages/semantic-ui/src/components/SemanticUiThemeProvider/SemanticUiThemeProvider.test.tsx b/packages/semantic-ui/src/components/SemanticUiThemeProvider/SemanticUiThemeProvider.test.tsx index e3f4dff9..acc42a7f 100644 --- a/packages/semantic-ui/src/components/SemanticUiThemeProvider/SemanticUiThemeProvider.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiThemeProvider/SemanticUiThemeProvider.test.tsx @@ -22,7 +22,7 @@ describe('', () => { render(

children

-
+
, ); expect(screen.getByText(/children/)).toBeInTheDocument(); diff --git a/packages/semantic-ui/src/components/SemanticUiThemeProvider/ThemeSwitcher.test.tsx b/packages/semantic-ui/src/components/SemanticUiThemeProvider/ThemeSwitcher.test.tsx index a26055ab..45fee2b3 100644 --- a/packages/semantic-ui/src/components/SemanticUiThemeProvider/ThemeSwitcher.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiThemeProvider/ThemeSwitcher.test.tsx @@ -43,15 +43,15 @@ describe('', () => { expect(window.document.documentElement.classList.toggle).toBeCalledWith( 'dark', - classNames.includes('dark') + classNames.includes('dark'), ); expect(window.document.documentElement.classList.toggle).toBeCalledWith( 'light', - classNames.includes('light') + classNames.includes('light'), ); expect(window.document.documentElement.classList.toggle).toBeCalledWith( 'widgetModal', - classNames.includes('widgetModal') + classNames.includes('widgetModal'), ); }); }); diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/ChildError.test.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/ChildError.test.tsx index c89c9055..12540a71 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/ChildError.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/ChildError.test.tsx @@ -24,7 +24,7 @@ describe('', () => { expect(screen.getByText('Ohh no!')).toBeInTheDocument(); expect( - screen.getByText(/an error occured inside the widget/i) + screen.getByText(/an error occured inside the widget/i), ).toBeInTheDocument(); expect(screen.getByText(/Hello World/)).toBeInTheDocument(); }); diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/ChildError.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/ChildError.tsx index ca51220b..13cd0190 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/ChildError.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/ChildError.tsx @@ -30,7 +30,7 @@ export function ChildError({ error }: { error: Error }): ReactElement { {t('error.title', 'Ohh no!')} {t( 'error.instructions', - 'An error occured inside the widget. You can try to reopen the widget.' + 'An error occured inside the widget. You can try to reopen the widget.', )} diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/CopyableCode.test.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/CopyableCode.test.tsx index 47d0e636..c9868623 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/CopyableCode.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/CopyableCode.test.tsx @@ -42,7 +42,7 @@ describe('', () => { expect(screen.getByText('Hello World')).toBeInTheDocument(); expect( - icon(screen.getByLabelText('Copy to clipboard'), 'copy') + icon(screen.getByLabelText('Copy to clipboard'), 'copy'), ).toBeInTheDocument(); }); diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MissingParametersError.test.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MissingParametersError.test.tsx index 07498f2d..5a25e9a6 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MissingParametersError.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MissingParametersError.test.tsx @@ -29,7 +29,7 @@ jest.mock('@matrix-widget-toolkit/api'); const repairWidgetRegistration = jest.mocked(repairWidgetRegistrationMocked); const generateWidgetRegistrationUrl = jest.mocked( - generateWidgetRegistrationUrlMocked + generateWidgetRegistrationUrlMocked, ); describe('', () => { @@ -54,16 +54,16 @@ describe('', () => { render( , - { wrapper } + { wrapper }, ); expect(screen.getByText('Wrong widget registration')).toBeInTheDocument(); expect( - screen.getByText(/the widget is not registered correctly/i) + screen.getByText(/the widget is not registered correctly/i), ).toBeInTheDocument(); expect(screen.getByText(/\/addwidget/)).toBeInTheDocument(); expect( - await screen.findByText(/you can either modify the widget/i) + await screen.findByText(/you can either modify the widget/i), ).toBeInTheDocument(); const repairButton = screen.getByRole('button', { @@ -76,10 +76,10 @@ describe('', () => { name: 'New Widget', }); expect( - await screen.findByText('Widget configuration complete') + await screen.findByText('Widget configuration complete'), ).toBeInTheDocument(); expect( - await screen.findByText(/configuration completed/i) + await screen.findByText(/configuration completed/i), ).toBeInTheDocument(); }); @@ -88,7 +88,7 @@ describe('', () => { render( , - { wrapper } + { wrapper }, ); const repairButton = screen.getByRole('button', { @@ -102,7 +102,7 @@ describe('', () => { }); expect(await screen.findByText('Error')).toBeInTheDocument(); expect( - await screen.findByText(/insufficient permissions/i) + await screen.findByText(/insufficient permissions/i), ).toBeInTheDocument(); const closeButton = screen.getByRole('button', { name: /close/i }); diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MissingParametersError.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MissingParametersError.tsx index bcbf7174..1226c61e 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MissingParametersError.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MissingParametersError.tsx @@ -78,7 +78,7 @@ export function MissingParametersError({ {t( 'missing-parameters.instructions', - 'The widget is not registered correctly. Make sure to include the correct parameters in the widget URL:' + 'The widget is not registered correctly. Make sure to include the correct parameters in the widget URL:', )} @@ -87,7 +87,7 @@ export function MissingParametersError({ {t( 'missing-parameters.repair-instructions', - 'You can either modify the widget registration manually or fix it automatically:' + 'You can either modify the widget registration manually or fix it automatically:', )} @@ -108,7 +108,7 @@ export function MissingParametersError({

{t( 'missing-parameters.permissions-error.instructions', - 'Insufficient permissions, could not configure widget. Only room admins can configure the widget.' + 'Insufficient permissions, could not configure widget. Only room admins can configure the widget.', )}

@@ -124,7 +124,7 @@ export function MissingParametersError({ {t( 'missing-parameters.completed.title', - 'Widget configuration complete' + 'Widget configuration complete', )} @@ -132,7 +132,7 @@ export function MissingParametersError({

{t( 'missing-parameters.completed.instructions', - 'Configuration completed, reopen the widget to start using it.' + 'Configuration completed, reopen the widget to start using it.', )}

diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MobileClientError.test.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MobileClientError.test.tsx index 7cc789d0..3783004f 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MobileClientError.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MobileClientError.test.tsx @@ -22,10 +22,10 @@ describe('', () => { render(); expect( - screen.getByText('Mobile clients are not supported') + screen.getByText('Mobile clients are not supported'), ).toBeInTheDocument(); expect( - screen.getByText(/the widget doesn't work in mobile clients/i) + screen.getByText(/the widget doesn't work in mobile clients/i), ).toBeInTheDocument(); }); }); diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MobileClientError.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MobileClientError.tsx index de444b3b..4e84995b 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MobileClientError.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/MobileClientError.tsx @@ -31,7 +31,7 @@ export function MobileClientError(): ReactElement { {t( 'mobile-client.instructions', - "The widget doesn't work in mobile clients due to technical limitations. Open the widget on you Desktop or Web client." + "The widget doesn't work in mobile clients due to technical limitations. Open the widget on you Desktop or Web client.", )} diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/OutsideClientError.test.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/OutsideClientError.test.tsx index afbfe698..7d2176ee 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/OutsideClientError.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/OutsideClientError.test.tsx @@ -23,7 +23,7 @@ describe('', () => { expect(screen.getByText('Only runs as a widget')).toBeInTheDocument(); expect( - screen.getByText(/you need to register this URL as a widget/i) + screen.getByText(/you need to register this URL as a widget/i), ).toBeInTheDocument(); expect(screen.getByText(/\/addwidget/)).toBeInTheDocument(); }); diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/OutsideClientError.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/OutsideClientError.tsx index 0c8c759e..5e6baeaa 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/OutsideClientError.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/OutsideClientError.tsx @@ -33,7 +33,7 @@ export function OutsideClientError(): ReactElement { {t( 'outside-client.instructions', - "You need to register this URL as a widget, it's not possible to use it standalone. Run this command in the matrix room you want to register the widget in:" + "You need to register this URL as a widget, it's not possible to use it standalone. Run this command in the matrix room you want to register the widget in:", )} diff --git a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/SemanticUiWidgetApiProvider.test.tsx b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/SemanticUiWidgetApiProvider.test.tsx index 6cf8599e..bfe96087 100644 --- a/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/SemanticUiWidgetApiProvider.test.tsx +++ b/packages/semantic-ui/src/components/SemanticUiWidgetApiProvider/SemanticUiWidgetApiProvider.test.tsx @@ -25,7 +25,7 @@ import { SemanticUiWidgetApiProvider } from './SemanticUiWidgetApiProvider'; jest.mock('@matrix-widget-toolkit/api'); const hasRequiredWidgetParameters = jest.mocked( - hasRequiredWidgetParametersMocked + hasRequiredWidgetParametersMocked, ); const extractWidgetParameters = jest.mocked(extractWidgetParametersMocked); @@ -54,7 +54,7 @@ describe('SemanticUiWidgetApiProvider', () => { render(
Children
-
+ , ); expect(await screen.findByText('Children')).toBeInTheDocument(); diff --git a/packages/testing/README.md b/packages/testing/README.md index 590de4b7..fcb246c2 100644 --- a/packages/testing/README.md +++ b/packages/testing/README.md @@ -69,14 +69,14 @@ As the methods of the mock are using `jest.fn()`, you can verify all of them: widgetApi.sendStateEvent( 'm.room.topic', { topic: 'A brief description' }, - { roomId: '!my-room' } + { roomId: '!my-room' }, ); // Verify that the event was send in your test: expect(widgetApi.sendStateEvent).toBeCalledWith( 'm.room.topic', { topic: 'A brief description' }, - { roomId: '!my-room' } + { roomId: '!my-room' }, ); ``` diff --git a/packages/testing/src/api/mockWidgetApi.test.ts b/packages/testing/src/api/mockWidgetApi.test.ts index b845b6a4..f0be9039 100644 --- a/packages/testing/src/api/mockWidgetApi.test.ts +++ b/packages/testing/src/api/mockWidgetApi.test.ts @@ -121,10 +121,10 @@ describe('sendRoomEvent', () => { await expect( widgetApi.sendRoomEvent('com.example.test3', { key: 'value', - }) + }), ).resolves.toEqual(expectedEvent); await expect( - widgetApi.receiveRoomEvents('com.example.test3') + widgetApi.receiveRoomEvents('com.example.test3'), ).resolves.toEqual([expectedEvent]); }); @@ -144,10 +144,10 @@ describe('sendRoomEvent', () => { await expect( widgetApi.sendRoomEvent('m.room.redaction', { redacts: '$event-id', - }) + }), ).resolves.toEqual(expectedEvent); await expect( - widgetApi.receiveRoomEvents('m.room.redaction') + widgetApi.receiveRoomEvents('m.room.redaction'), ).resolves.toEqual([expectedEvent]); }); @@ -164,7 +164,7 @@ describe('sendRoomEvent', () => { await redactEvent(widgetApi, 'event-1'); await expect( - widgetApi.receiveRoomEvents('com.example.test1') + widgetApi.receiveRoomEvents('com.example.test1'), ).resolves.toEqual([expectedEvent]); }); }); @@ -172,7 +172,7 @@ describe('sendRoomEvent', () => { describe('receiveRoomEvents', () => { it('should receive only events from the current room', async () => { await expect( - widgetApi.receiveRoomEvents('com.example.test2') + widgetApi.receiveRoomEvents('com.example.test2'), ).resolves.toEqual([expect.objectContaining({ event_id: 'event-2' })]); }); @@ -180,7 +180,7 @@ describe('receiveRoomEvents', () => { await expect( widgetApi.receiveRoomEvents('com.example.test2', { roomIds: Symbols.AnyRoom, - }) + }), ).resolves.toEqual([ expect.objectContaining({ event_id: 'event-2' }), expect.objectContaining({ event_id: 'event-3' }), @@ -191,7 +191,7 @@ describe('receiveRoomEvents', () => { await expect( widgetApi.receiveRoomEvents('com.example.test2', { roomIds: ['!other-room-id'], - }) + }), ).resolves.toEqual([expect.objectContaining({ event_id: 'event-3' })]); }); @@ -211,7 +211,7 @@ describe('receiveRoomEvents', () => { await expect( widgetApi.receiveRoomEvents('com.example.test1', { messageType: 'only', - }) + }), ).resolves.toEqual([expect.objectContaining({ event_id: 'event-2' })]); }); @@ -219,7 +219,7 @@ describe('receiveRoomEvents', () => { widgetApi.clearRoomEvents(); await expect( - widgetApi.receiveRoomEvents('com.example.test1') + widgetApi.receiveRoomEvents('com.example.test1'), ).resolves.toEqual([]); }); @@ -227,10 +227,10 @@ describe('receiveRoomEvents', () => { widgetApi.clearRoomEvents({ type: 'com.example.test1' }); await expect( - widgetApi.receiveRoomEvents('com.example.test1') + widgetApi.receiveRoomEvents('com.example.test1'), ).resolves.toEqual([]); await expect( - widgetApi.receiveRoomEvents('com.example.test2') + widgetApi.receiveRoomEvents('com.example.test2'), ).resolves.toEqual([expect.objectContaining({ event_id: 'event-2' })]); }); }); @@ -343,10 +343,10 @@ describe('sendStateEvent', () => { }; await expect( - widgetApi.sendStateEvent('com.example.test6', { key: 'value' }) + widgetApi.sendStateEvent('com.example.test6', { key: 'value' }), ).resolves.toEqual(expectedEvent); await expect( - widgetApi.receiveSingleStateEvent('com.example.test6') + widgetApi.receiveSingleStateEvent('com.example.test6'), ).resolves.toEqual(expectedEvent); }); @@ -365,13 +365,13 @@ describe('sendStateEvent', () => { await widgetApi.sendStateEvent('com.example.test6', { key: 'value' }); await expect( - widgetApi.sendStateEvent('com.example.test6', { key: 'new' }) + widgetApi.sendStateEvent('com.example.test6', { key: 'new' }), ).resolves.toEqual(expectedEvent); await expect( - widgetApi.receiveSingleStateEvent('com.example.test6') + widgetApi.receiveSingleStateEvent('com.example.test6'), ).resolves.toEqual(expectedEvent); await expect( - widgetApi.receiveStateEvents('com.example.test6') + widgetApi.receiveStateEvents('com.example.test6'), ).resolves.toEqual([expectedEvent]); }); @@ -383,9 +383,9 @@ describe('sendStateEvent', () => { widgetApi.sendStateEvent('com.example.test6', { key: 'value' }), // Timeout after a short moment new Promise((resolve, reject) => - setTimeout(() => reject(new Error('Timeout')), 100) + setTimeout(() => reject(new Error('Timeout')), 100), ), - ]) + ]), ).rejects.toThrowError('Timeout'); }); }); @@ -393,13 +393,13 @@ describe('sendStateEvent', () => { describe('receiveSingleStateEvent', () => { it('should receive event from the current room with a default state key', async () => { await expect( - widgetApi.receiveSingleStateEvent('com.example.test4') + widgetApi.receiveSingleStateEvent('com.example.test4'), ).resolves.toEqual(expect.objectContaining({ event_id: 'event-1' })); }); it('should receive event with a specific state key', async () => { await expect( - widgetApi.receiveSingleStateEvent('com.example.test4', 'other') + widgetApi.receiveSingleStateEvent('com.example.test4', 'other'), ).resolves.toEqual(expect.objectContaining({ event_id: 'event-2' })); }); @@ -407,7 +407,7 @@ describe('receiveSingleStateEvent', () => { widgetApi.clearStateEvents(); await expect( - widgetApi.receiveSingleStateEvent('com.example.test4') + widgetApi.receiveSingleStateEvent('com.example.test4'), ).resolves.toBeUndefined(); }); @@ -415,10 +415,10 @@ describe('receiveSingleStateEvent', () => { widgetApi.clearStateEvents({ type: 'com.example.test4' }); await expect( - widgetApi.receiveSingleStateEvent('com.example.test4') + widgetApi.receiveSingleStateEvent('com.example.test4'), ).resolves.toBeUndefined(); await expect( - widgetApi.receiveSingleStateEvent('com.example.test5') + widgetApi.receiveSingleStateEvent('com.example.test5'), ).resolves.toEqual(expect.objectContaining({ event_id: 'event-3' })); }); }); @@ -426,7 +426,7 @@ describe('receiveSingleStateEvent', () => { describe('receiveStateEvents', () => { it('should receive only events from the current room', async () => { await expect( - widgetApi.receiveStateEvents('com.example.test4') + widgetApi.receiveStateEvents('com.example.test4'), ).resolves.toEqual([ expect.objectContaining({ event_id: 'event-1' }), expect.objectContaining({ event_id: 'event-2' }), @@ -437,7 +437,7 @@ describe('receiveStateEvents', () => { await expect( widgetApi.receiveStateEvents('com.example.test4', { roomIds: Symbols.AnyRoom, - }) + }), ).resolves.toEqual([ expect.objectContaining({ event_id: 'event-1' }), expect.objectContaining({ event_id: 'event-2' }), @@ -449,13 +449,13 @@ describe('receiveStateEvents', () => { await expect( widgetApi.receiveStateEvents('com.example.test4', { roomIds: ['!other-room-id'], - }) + }), ).resolves.toEqual([expect.objectContaining({ event_id: 'event-4' })]); }); it('should receive events with a specific state key', async () => { await expect( - widgetApi.receiveStateEvents('com.example.test4', { stateKey: '' }) + widgetApi.receiveStateEvents('com.example.test4', { stateKey: '' }), ).resolves.toEqual([expect.objectContaining({ event_id: 'event-1' })]); }); @@ -473,7 +473,7 @@ describe('receiveStateEvents', () => { }); await expect( - widgetApi.receiveStateEvents('com.example.test4', { stateKey: '' }) + widgetApi.receiveStateEvents('com.example.test4', { stateKey: '' }), ).resolves.toEqual([expect.objectContaining({ event_id: 'event-5' })]); }); @@ -481,7 +481,7 @@ describe('receiveStateEvents', () => { widgetApi.clearStateEvents(); await expect( - widgetApi.receiveStateEvents('com.example.test4') + widgetApi.receiveStateEvents('com.example.test4'), ).resolves.toEqual([]); }); @@ -489,10 +489,10 @@ describe('receiveStateEvents', () => { widgetApi.clearStateEvents({ type: 'com.example.test4' }); await expect( - widgetApi.receiveStateEvents('com.example.test4') + widgetApi.receiveStateEvents('com.example.test4'), ).resolves.toEqual([]); await expect( - widgetApi.receiveStateEvents('com.example.test5') + widgetApi.receiveStateEvents('com.example.test5'), ).resolves.toEqual([expect.objectContaining({ event_id: 'event-3' })]); }); }); @@ -658,7 +658,7 @@ describe('observeModalButtons', () => { describe('rerequestInitialCapabilities', () => { it('should resolve', async () => { await expect( - widgetApi.rerequestInitialCapabilities() + widgetApi.rerequestInitialCapabilities(), ).resolves.toBeUndefined(); }); }); @@ -666,7 +666,7 @@ describe('rerequestInitialCapabilities', () => { describe('requestCapabilities', () => { it('should resolve', async () => { await expect( - widgetApi.requestCapabilities(['my.capability']) + widgetApi.requestCapabilities(['my.capability']), ).resolves.toBeUndefined(); }); }); @@ -680,7 +680,7 @@ describe('requestOpenIDConnectToken', () => { describe('setModalButtonEnabled', () => { it('should resolve', async () => { await expect( - widgetApi.setModalButtonEnabled('button', false) + widgetApi.setModalButtonEnabled('button', false), ).resolves.toBeUndefined(); }); }); @@ -766,7 +766,7 @@ describe('readEventRelations', () => { it('should receive events from another room', async () => { await expect( - widgetApi.readEventRelations('event-1', { roomId: '!other-room-id' }) + widgetApi.readEventRelations('event-1', { roomId: '!other-room-id' }), ).resolves.toEqual({ chunk: [expect.objectContaining({ event_id: 'event-4' })], nextToken: undefined, @@ -775,7 +775,7 @@ describe('readEventRelations', () => { it('should only receive events of a specific relation type', async () => { await expect( - widgetApi.readEventRelations('event-1', { relationType: 'm.replace' }) + widgetApi.readEventRelations('event-1', { relationType: 'm.replace' }), ).resolves.toEqual({ chunk: [expect.objectContaining({ event_id: 'event-3' })], nextToken: undefined, @@ -786,7 +786,7 @@ describe('readEventRelations', () => { await expect( widgetApi.readEventRelations('event-1', { eventType: 'com.example.test2', - }) + }), ).resolves.toEqual({ chunk: [expect.objectContaining({ event_id: 'event-2' })], nextToken: undefined, @@ -798,7 +798,7 @@ describe('readEventRelations', () => { widgetApi.readEventRelations('event-1', { limit: 1, direction: 'f', - }) + }), ).resolves.toEqual({ chunk: [expect.objectContaining({ event_id: 'event-3' })], nextToken: '1', @@ -809,7 +809,7 @@ describe('readEventRelations', () => { limit: 1, from: '1', direction: 'f', - }) + }), ).resolves.toEqual({ chunk: [expect.objectContaining({ event_id: 'event-2' })], nextToken: undefined, @@ -818,7 +818,7 @@ describe('readEventRelations', () => { it('should reject if the referenced event does not exist', async () => { await expect( - widgetApi.readEventRelations('not-existent-event') + widgetApi.readEventRelations('not-existent-event'), ).rejects.toThrow('Unexpected error while reading relations'); }); }); @@ -826,7 +826,7 @@ describe('readEventRelations', () => { describe('sendToDeviceMessage', () => { it('should send to device message to all devices of the current user', async () => { const messagePromise = firstValueFrom( - widgetApi.observeToDeviceMessages('com.example.message') + widgetApi.observeToDeviceMessages('com.example.message'), ); await widgetApi.sendToDeviceMessage('com.example.message', true, { @@ -845,7 +845,7 @@ describe('sendToDeviceMessage', () => { it('should send to device message to a specific device of the current user', async () => { const messagePromise = firstValueFrom( - widgetApi.observeToDeviceMessages('com.example.message') + widgetApi.observeToDeviceMessages('com.example.message'), ); await widgetApi.sendToDeviceMessage('com.example.message', false, { @@ -868,7 +868,7 @@ describe('sendToDeviceMessage', () => { const messagesPromise = firstValueFrom( widgetApi .observeToDeviceMessages('com.example.message') - .pipe(bufferTime(100)) + .pipe(bufferTime(100)), ); await widgetApi.sendToDeviceMessage('com.example.message', false, { @@ -884,7 +884,7 @@ describe('sendToDeviceMessage', () => { const messagesPromise = firstValueFrom( widgetApi .observeToDeviceMessages('com.example.message') - .pipe(bufferTime(100)) + .pipe(bufferTime(100)), ); await widgetApi.sendToDeviceMessage('com.example.message', false, { @@ -910,7 +910,7 @@ describe('sendToDeviceMessage', () => { describe('observeToDeviceMessages', () => { it('should receive only to device messages for the correct type', async () => { const messagePromise = firstValueFrom( - widgetApi.observeToDeviceMessages('com.example.message') + widgetApi.observeToDeviceMessages('com.example.message'), ); widgetApi.mockSendToDeviceMessage({ @@ -939,7 +939,7 @@ describe('observeToDeviceMessages', () => { describe('observeTurnServers', () => { it('should return mocked turn servers', async () => { const turnServer = await firstValueFrom( - widgetApi.observeTurnServers().pipe(take(1)) + widgetApi.observeTurnServers().pipe(take(1)), ); expect(turnServer).toEqual({ diff --git a/packages/testing/src/api/mockWidgetApi.ts b/packages/testing/src/api/mockWidgetApi.ts index 7910e9c8..549dd0aa 100644 --- a/packages/testing/src/api/mockWidgetApi.ts +++ b/packages/testing/src/api/mockWidgetApi.ts @@ -66,7 +66,7 @@ export type MockedWidgetApi = { * @param event - the to device message to send */ mockSendToDeviceMessage( - event: ToDeviceMessageEvent + event: ToDeviceMessageEvent, ): ToDeviceMessageEvent; /** @@ -157,7 +157,7 @@ export function mockWidgetApi(opts?: { (ev) => ev.room_id !== event.room_id || ev.type !== event.type || - ev.state_key !== event.state_key + ev.state_key !== event.state_key, ) .concat(ev); @@ -183,7 +183,7 @@ export function mockWidgetApi(opts?: { }; const mockSendToDeviceMessage = ( - message: ToDeviceMessageEvent + message: ToDeviceMessageEvent, ) => { const m = cloneDeep(message); @@ -227,8 +227,8 @@ export function mockWidgetApi(opts?: { username: 'user', credential: 'credential', }), - NEVER - ) + NEVER, + ), ), searchUserDirectory: jest.fn().mockResolvedValue({ results: [] }), }; @@ -299,9 +299,9 @@ export function mockWidgetApi(opts?: { } return true; - }) + }), ); - } + }, ); widgetApi.observeRoomEvents.mockImplementation((type, options) => { @@ -309,7 +309,7 @@ export function mockWidgetApi(opts?: { return concat( from(roomEvents.sort(compareOriginServerTS)), - roomEventSubject + roomEventSubject, ).pipe( filter((ev) => { if (ev.type !== type) { @@ -333,7 +333,7 @@ export function mockWidgetApi(opts?: { } }), map(cloneDeep), - takeUntil(stopSubject) + takeUntil(stopSubject), ); }); @@ -361,7 +361,7 @@ export function mockWidgetApi(opts?: { return concat(from(stateEvents), stateEventSubject).pipe( filter(filterEvents), map(cloneDeep), - takeUntil(stopSubject) + takeUntil(stopSubject), ); }); @@ -420,7 +420,7 @@ export function mockWidgetApi(opts?: { ev.room_id === e.room_id && ev.type === e.type && ev.state_key === e.state_key && - isEqual(ev.content, e.content) + isEqual(ev.content, e.content), ) ) { return new Promise((resolve, reject) => { @@ -429,7 +429,7 @@ export function mockWidgetApi(opts?: { } return mockSendStateEvent(ev); - } + }, ); widgetApi.readEventRelations.mockImplementation( @@ -477,7 +477,7 @@ export function mockWidgetApi(opts?: { chunk: relatedEvents.slice(skip, end).map(cloneDeep), nextToken: end < relatedEvents.length ? end.toString() : undefined, }; - } + }, ); widgetApi.sendToDeviceMessage.mockImplementation( @@ -499,13 +499,13 @@ export function mockWidgetApi(opts?: { }); } } - } + }, ); widgetApi.observeToDeviceMessages.mockImplementation((type) => { return toDeviceMessageSubject.pipe( filter((e) => e.type === type), - takeUntil(stopSubject) + takeUntil(stopSubject), ); }); diff --git a/scripts/publishAllPackages.js b/scripts/publishAllPackages.js index 2ed8f471..06b395c3 100644 --- a/scripts/publishAllPackages.js +++ b/scripts/publishAllPackages.js @@ -18,7 +18,7 @@ for (var package of packages) { } const { name, version } = JSON.parse( - fs.readFileSync(path.resolve(packagePath, 'package.json')) + fs.readFileSync(path.resolve(packagePath, 'package.json')), ); if (!versionNeedsUpload(name, version)) { @@ -32,7 +32,7 @@ for (var package of packages) { 'npm publish --registry https://registry.npmjs.org --access public', { cwd: packagePath, - } + }, ); console.log(`✅ Package ${name} published`); @@ -46,7 +46,7 @@ console.log('Done!'); function versionNeedsUpload(name, version) { try { const result = child_process.execSync( - `npm view "${name}@${version}" --registry https://registry.npmjs.org --json` + `npm view "${name}@${version}" --registry https://registry.npmjs.org --json`, ); // this line throws if not exists diff --git a/yarn.lock b/yarn.lock index 9473c484..f724f019 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4011,9 +4011,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001297, caniuse-lite@^1.0.30001312: - version "1.0.30001449" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001449.tgz" - integrity sha512-CPB+UL9XMT/Av+pJxCKGhdx+yg1hzplvFJQlJ2n68PyQGMz9L/E2zCyLdOL8uasbouTUgnPl+y0tccI/se+BEw== + version "1.0.30001518" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001518.tgz" + integrity sha512-rup09/e3I0BKjncL+FesTayKtPrdwKhUufQFd3riFw1hHg8JmIFoInYfB102cFcY/pPgGmdyl/iy+jgiDi2vdA== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0"