@dxos/shell 0.6.11-staging.e6894a4 → 0.6.12-main.5cc132e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/shell.mjs +22252 -26602
- package/dist/bundle/shell.mjs.map +1 -1
- package/dist/bundle/shell.umd.js +97 -170
- package/dist/bundle/shell.umd.js.map +1 -1
- package/dist/bundle/style.css +1 -1
- package/dist/lib/browser/{chunk-ZSTKOCBT.mjs → chunk-J5LGTIGS.mjs} +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react.mjs +7 -13
- package/dist/lib/browser/react.mjs.map +3 -3
- package/dist/lib/browser/testing/index.mjs +1 -1
- package/dist/types/src/components/InvitationList/InvitationList.stories.d.ts.map +1 -1
- package/dist/types/src/components/InvitationList/InvitationList.stories.js +12 -14
- package/dist/types/src/components/InvitationList/InvitationList.stories.js.map +1 -1
- package/dist/types/src/composites/Shell/Shell.js +1 -1
- package/dist/types/src/composites/Shell/Shell.js.map +1 -1
- package/dist/types/src/composites/Shell/run-shell.d.ts.map +1 -1
- package/dist/types/src/composites/Shell/run-shell.js +1 -3
- package/dist/types/src/composites/Shell/run-shell.js.map +1 -1
- package/dist/types/src/playwright/invitations-manager.d.ts +1 -1
- package/dist/types/src/playwright/invitations-manager.d.ts.map +1 -1
- package/dist/types/src/playwright/invitations-manager.js +4 -10
- package/dist/types/src/playwright/invitations-manager.js.map +1 -1
- package/dist/types/src/playwright/invitations.spec.js +31 -32
- package/dist/types/src/playwright/invitations.spec.js.map +1 -1
- package/dist/types/src/playwright/playwright.config.d.ts +2 -2
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
- package/dist/types/src/playwright/playwright.config.js +12 -2
- package/dist/types/src/playwright/playwright.config.js.map +1 -1
- package/dist/types/src/stories/Invitations.e2e-stories.d.ts.map +1 -1
- package/dist/types/src/stories/Invitations.e2e-stories.js +2 -3
- package/dist/types/src/stories/Invitations.e2e-stories.js.map +1 -1
- package/package.json +25 -24
- package/src/components/InvitationList/InvitationList.stories.tsx +17 -20
- package/src/composites/Shell/Shell.tsx +1 -1
- package/src/composites/Shell/run-shell.tsx +3 -13
- package/src/playwright/invitations-manager.ts +4 -8
- package/src/playwright/invitations.spec.ts +32 -33
- package/src/playwright/playwright.config.ts +13 -2
- package/src/stories/Invitations.e2e-stories.tsx +4 -6
- /package/dist/lib/browser/{chunk-ZSTKOCBT.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
|
@@ -139,9 +139,8 @@ const Invitations = (args) => {
|
|
|
139
139
|
// This does not seem to be a problem in other browsers nor in Safari in the app.
|
|
140
140
|
exports.Default = {
|
|
141
141
|
render: (args) => (react_2.default.createElement(components_1.ClipboardProvider, null,
|
|
142
|
-
react_2.default.createElement(
|
|
143
|
-
|
|
144
|
-
decorators: [storybook_utils_1.withTheme],
|
|
142
|
+
react_2.default.createElement(testing_1.ClientRepeater, { component: Invitations, count: 3 }))),
|
|
143
|
+
decorators: [storybook_utils_1.withTheme, (0, storybook_utils_1.withLayout)({ tooltips: true })],
|
|
145
144
|
parameters: {
|
|
146
145
|
chromatic: { disableSnapshot: true },
|
|
147
146
|
translations: [translations_1.osTranslations],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Invitations.e2e-stories.js","sourceRoot":"","sources":["../../../../src/stories/Invitations.e2e-stories.tsx"],"names":[],"mappings":";AAAA,EAAE;AACF,0BAA0B;AAC1B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF,uBAAqB;AAErB,iDAA8G;AAC9G,+CAAiD;AAEjD,mCAAgC;AAChC,yCAAqC;AACrC,qDAA+C;AAC/C,kDAAkF;AAClF,kDAAsD;AACtD,gEAA+E;AAC/E,kDAA4E;AAC5E,wDAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"Invitations.e2e-stories.js","sourceRoot":"","sources":["../../../../src/stories/Invitations.e2e-stories.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/shell",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.12-main.5cc132e",
|
|
4
4
|
"description": "DXOS’s OS experiences",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -42,20 +42,20 @@
|
|
|
42
42
|
"react-qr-rounded": "^1.0.0",
|
|
43
43
|
"url-join": "^5.0.0",
|
|
44
44
|
"xstate": "^4.37.0",
|
|
45
|
-
"@dxos/async": "0.6.
|
|
46
|
-
"@dxos/client-protocol": "0.6.
|
|
47
|
-
"@dxos/client-services": "0.6.
|
|
48
|
-
"@dxos/debug": "0.6.
|
|
49
|
-
"@dxos/display-name": "0.6.
|
|
50
|
-
"@dxos/invariant": "0.6.
|
|
51
|
-
"@dxos/log": "0.6.
|
|
52
|
-
"@dxos/react-ui": "0.6.
|
|
53
|
-
"@dxos/react-ui-
|
|
54
|
-
"@dxos/protocols": "0.6.
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/
|
|
57
|
-
"@dxos/rpc": "0.6.
|
|
58
|
-
"@dxos/util": "0.6.
|
|
45
|
+
"@dxos/async": "0.6.12-main.5cc132e",
|
|
46
|
+
"@dxos/client-protocol": "0.6.12-main.5cc132e",
|
|
47
|
+
"@dxos/client-services": "0.6.12-main.5cc132e",
|
|
48
|
+
"@dxos/debug": "0.6.12-main.5cc132e",
|
|
49
|
+
"@dxos/display-name": "0.6.12-main.5cc132e",
|
|
50
|
+
"@dxos/invariant": "0.6.12-main.5cc132e",
|
|
51
|
+
"@dxos/log": "0.6.12-main.5cc132e",
|
|
52
|
+
"@dxos/react-ui": "0.6.12-main.5cc132e",
|
|
53
|
+
"@dxos/react-ui-theme": "0.6.12-main.5cc132e",
|
|
54
|
+
"@dxos/protocols": "0.6.12-main.5cc132e",
|
|
55
|
+
"@dxos/react-ui-types": "0.6.12-main.5cc132e",
|
|
56
|
+
"@dxos/rpc": "0.6.12-main.5cc132e",
|
|
57
|
+
"@dxos/rpc-tunnel": "0.6.12-main.5cc132e",
|
|
58
|
+
"@dxos/util": "0.6.12-main.5cc132e"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -64,20 +64,21 @@
|
|
|
64
64
|
"@vitejs/plugin-react": "^4.2.1",
|
|
65
65
|
"react": "~18.2.0",
|
|
66
66
|
"react-dom": "~18.2.0",
|
|
67
|
-
"vite": "
|
|
68
|
-
"@dxos/config": "0.6.
|
|
69
|
-
"@dxos/protocols": "0.6.
|
|
70
|
-
"@dxos/random": "0.6.
|
|
71
|
-
"@dxos/react-
|
|
72
|
-
"@dxos/react-
|
|
73
|
-
"@dxos/
|
|
74
|
-
"@dxos/
|
|
67
|
+
"vite": "5.4.7",
|
|
68
|
+
"@dxos/config": "0.6.12-main.5cc132e",
|
|
69
|
+
"@dxos/protocols": "0.6.12-main.5cc132e",
|
|
70
|
+
"@dxos/random": "0.6.12-main.5cc132e",
|
|
71
|
+
"@dxos/react-ui-theme": "0.6.12-main.5cc132e",
|
|
72
|
+
"@dxos/react-hooks": "0.6.12-main.5cc132e",
|
|
73
|
+
"@dxos/react-client": "0.6.12-main.5cc132e",
|
|
74
|
+
"@dxos/test-utils": "0.6.12-main.5cc132e",
|
|
75
|
+
"@dxos/storybook-utils": "0.6.12-main.5cc132e"
|
|
75
76
|
},
|
|
76
77
|
"peerDependencies": {
|
|
77
78
|
"@phosphor-icons/react": "^2.1.5",
|
|
78
79
|
"react": "^18.0.0",
|
|
79
80
|
"react-dom": "^18.0.0",
|
|
80
|
-
"@dxos/react-client": "0.6.
|
|
81
|
+
"@dxos/react-client": "0.6.12-main.5cc132e"
|
|
81
82
|
},
|
|
82
83
|
"publishConfig": {
|
|
83
84
|
"access": "public"
|
|
@@ -7,8 +7,7 @@ import '@dxos-theme';
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
|
|
9
9
|
import { Invitation } from '@dxos/react-client/invitations';
|
|
10
|
-
import {
|
|
11
|
-
import { withTheme } from '@dxos/storybook-utils';
|
|
10
|
+
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
12
11
|
|
|
13
12
|
import { InvitationList } from './InvitationList';
|
|
14
13
|
import { inviteWithState } from '../../testing';
|
|
@@ -16,29 +15,27 @@ import { inviteWithState } from '../../testing';
|
|
|
16
15
|
export default {
|
|
17
16
|
title: 'react-shell/InvitationList',
|
|
18
17
|
component: InvitationList,
|
|
19
|
-
decorators: [withTheme],
|
|
18
|
+
decorators: [withTheme, withLayout({ tooltips: true })],
|
|
20
19
|
actions: { argTypesRegex: '^on.*' },
|
|
21
20
|
parameters: { chromatic: { disableSnapshot: false } },
|
|
22
21
|
};
|
|
23
22
|
|
|
24
23
|
export const Default = () => {
|
|
25
24
|
return (
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
/>
|
|
42
|
-
</Tooltip.Provider>
|
|
25
|
+
<InvitationList
|
|
26
|
+
invitations={[
|
|
27
|
+
inviteWithState(Invitation.State.INIT),
|
|
28
|
+
inviteWithState(Invitation.State.CONNECTING),
|
|
29
|
+
inviteWithState(Invitation.State.CONNECTED),
|
|
30
|
+
inviteWithState(Invitation.State.READY_FOR_AUTHENTICATION),
|
|
31
|
+
inviteWithState(Invitation.State.AUTHENTICATING),
|
|
32
|
+
inviteWithState(Invitation.State.SUCCESS),
|
|
33
|
+
inviteWithState(Invitation.State.TIMEOUT),
|
|
34
|
+
inviteWithState(Invitation.State.ERROR),
|
|
35
|
+
inviteWithState(Invitation.State.CANCELLED),
|
|
36
|
+
]}
|
|
37
|
+
send={() => {}}
|
|
38
|
+
createInvitationUrl={(invite) => invite}
|
|
39
|
+
/>
|
|
43
40
|
);
|
|
44
41
|
};
|
|
@@ -38,7 +38,7 @@ export const Shell = ({ runtime }: { runtime: ShellRuntime }) => {
|
|
|
38
38
|
});
|
|
39
39
|
|
|
40
40
|
const client = useClient();
|
|
41
|
-
const space = useSpace(
|
|
41
|
+
const space = useSpace(spaceId ?? spaceKey);
|
|
42
42
|
|
|
43
43
|
const createDeviceInvitationUrl = (invitationCode: string) => {
|
|
44
44
|
const baseUrl = new URL(invitationUrl);
|
|
@@ -6,15 +6,7 @@ import React, { StrictMode } from 'react';
|
|
|
6
6
|
import { createRoot } from 'react-dom/client';
|
|
7
7
|
|
|
8
8
|
import { DEFAULT_CLIENT_CHANNEL, DEFAULT_SHELL_CHANNEL } from '@dxos/client-protocol';
|
|
9
|
-
import {
|
|
10
|
-
AgentHostingProvider,
|
|
11
|
-
Client,
|
|
12
|
-
ClientContext,
|
|
13
|
-
ClientServicesProxy,
|
|
14
|
-
Config,
|
|
15
|
-
ShellDisplay,
|
|
16
|
-
SystemStatus,
|
|
17
|
-
} from '@dxos/react-client';
|
|
9
|
+
import { AgentHostingProvider, ClientProvider, ClientServicesProxy, Config, ShellDisplay } from '@dxos/react-client';
|
|
18
10
|
import { Button, Dialog, ThemeProvider, Tooltip, useTranslation } from '@dxos/react-ui';
|
|
19
11
|
import { defaultTx } from '@dxos/react-ui-theme';
|
|
20
12
|
import { createIFramePort } from '@dxos/rpc-tunnel';
|
|
@@ -31,13 +23,11 @@ export const runShell = async (config: Config = new Config()) => {
|
|
|
31
23
|
|
|
32
24
|
try {
|
|
33
25
|
const services = new ClientServicesProxy(createIFramePort({ channel: DEFAULT_CLIENT_CHANNEL }));
|
|
34
|
-
const client = new Client({ config, services });
|
|
35
|
-
await client.initialize();
|
|
36
26
|
|
|
37
27
|
createRoot(document.getElementById('root')!).render(
|
|
38
28
|
<StrictMode>
|
|
39
29
|
<ThemeProvider tx={defaultTx} resourceExtensions={[osTranslations]}>
|
|
40
|
-
<
|
|
30
|
+
<ClientProvider config={config} services={services} disableBanner>
|
|
41
31
|
<ClipboardProvider>
|
|
42
32
|
<Tooltip.Provider>
|
|
43
33
|
<AgentHostingProvider>
|
|
@@ -45,7 +35,7 @@ export const runShell = async (config: Config = new Config()) => {
|
|
|
45
35
|
</AgentHostingProvider>
|
|
46
36
|
</Tooltip.Provider>
|
|
47
37
|
</ClipboardProvider>
|
|
48
|
-
</
|
|
38
|
+
</ClientProvider>
|
|
49
39
|
</ThemeProvider>
|
|
50
40
|
</StrictMode>,
|
|
51
41
|
);
|
|
@@ -2,14 +2,12 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import type
|
|
6
|
-
import { expect } from 'chai';
|
|
7
|
-
import waitForExpect from 'wait-for-expect';
|
|
5
|
+
import { expect, type Browser, type ConsoleMessage } from '@playwright/test';
|
|
8
6
|
|
|
9
7
|
import { Trigger } from '@dxos/async';
|
|
10
8
|
import { type Invitation } from '@dxos/react-client/invitations';
|
|
11
9
|
import { ConnectionState } from '@dxos/react-client/mesh';
|
|
12
|
-
import { setupPage } from '@dxos/test/playwright';
|
|
10
|
+
import { setupPage } from '@dxos/test-utils/playwright';
|
|
13
11
|
|
|
14
12
|
import { ScopedShellManager } from '../testing';
|
|
15
13
|
|
|
@@ -35,11 +33,11 @@ export class InvitationsManager extends ScopedShellManager {
|
|
|
35
33
|
|
|
36
34
|
const { page } = await setupPage(this._browser, {
|
|
37
35
|
url: storybookUrl('invitations--default'),
|
|
38
|
-
waitFor: (page) => page.getByTestId('invitations.identity-header').first().isVisible(),
|
|
39
36
|
});
|
|
40
37
|
|
|
41
38
|
this.page = page;
|
|
42
39
|
this.page.on('console', (message) => this._onConsoleMessage(message));
|
|
40
|
+
await this.page.getByTestId('invitations.identity-header').first().waitFor({ state: 'visible' });
|
|
43
41
|
this._initialized = true;
|
|
44
42
|
}
|
|
45
43
|
|
|
@@ -119,9 +117,7 @@ export class InvitationsManager extends ScopedShellManager {
|
|
|
119
117
|
const createIdentity = this.peer(id).getByTestId('invitations.create-identity');
|
|
120
118
|
// TODO(wittjosiah): Clicking on buttons wrapped in tooltips is flaky in webkit playwright.
|
|
121
119
|
await createIdentity.click();
|
|
122
|
-
await
|
|
123
|
-
expect(await createIdentity.isDisabled()).to.be.true;
|
|
124
|
-
});
|
|
120
|
+
await expect(createIdentity).toBeDisabled();
|
|
125
121
|
}
|
|
126
122
|
|
|
127
123
|
async createSpace(id: number) {
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
// Copyright 2021 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { test } from '@playwright/test';
|
|
6
|
-
import { expect } from 'chai';
|
|
5
|
+
import { expect, test } from '@playwright/test';
|
|
7
6
|
|
|
8
7
|
import { sleep } from '@dxos/async';
|
|
9
8
|
import { Invitation } from '@dxos/react-client/invitations';
|
|
@@ -47,7 +46,7 @@ test.describe('Invitations', () => {
|
|
|
47
46
|
await manager.authenticateInvitation('device', authCode, manager.peer(1));
|
|
48
47
|
await manager.doneInvitation('device', manager.peer(1));
|
|
49
48
|
|
|
50
|
-
expect(await manager.getDisplayName(0)).
|
|
49
|
+
expect(await manager.getDisplayName(0)).toEqual(await manager.getDisplayName(1));
|
|
51
50
|
});
|
|
52
51
|
|
|
53
52
|
test('no auth method', async () => {
|
|
@@ -59,7 +58,7 @@ test.describe('Invitations', () => {
|
|
|
59
58
|
await manager.acceptInvitation(1, 'device', invitation);
|
|
60
59
|
await manager.doneInvitation('device', manager.peer(1));
|
|
61
60
|
|
|
62
|
-
expect(await manager.getDisplayName(0)).
|
|
61
|
+
expect(await manager.getDisplayName(0)).toEqual(await manager.getDisplayName(1));
|
|
63
62
|
});
|
|
64
63
|
|
|
65
64
|
test('invalid & retry auth code', async () => {
|
|
@@ -75,7 +74,7 @@ test.describe('Invitations', () => {
|
|
|
75
74
|
await manager.authenticateInvitation('device', authCode, manager.peer(1));
|
|
76
75
|
await manager.doneInvitation('device', manager.peer(1));
|
|
77
76
|
|
|
78
|
-
expect(await manager.getDisplayName(0)).
|
|
77
|
+
expect(await manager.getDisplayName(0)).toEqual(await manager.getDisplayName(1));
|
|
79
78
|
});
|
|
80
79
|
|
|
81
80
|
// TODO(wittjosiah): Remove? This seems to invalidate the invitation now.
|
|
@@ -94,7 +93,7 @@ test.describe('Invitations', () => {
|
|
|
94
93
|
await manager.clearAuthCode('device', manager.peer(1));
|
|
95
94
|
await manager.authenticateInvitation('device', '000003', manager.peer(1));
|
|
96
95
|
|
|
97
|
-
expect(await manager.invitationFailed(manager.peer(1))).
|
|
96
|
+
expect(await manager.invitationFailed(manager.peer(1))).toBe(true);
|
|
98
97
|
|
|
99
98
|
await manager.resetInvitation(manager.peer(1));
|
|
100
99
|
await manager.invitationInputContinue('device', manager.peer(1));
|
|
@@ -102,7 +101,7 @@ test.describe('Invitations', () => {
|
|
|
102
101
|
await manager.authenticateInvitation('device', authCode, manager.peer(1));
|
|
103
102
|
await manager.doneInvitation('device', manager.peer(1));
|
|
104
103
|
|
|
105
|
-
expect(await manager.getDisplayName(0)).
|
|
104
|
+
expect(await manager.getDisplayName(0)).toEqual(await manager.getDisplayName(1));
|
|
106
105
|
});
|
|
107
106
|
|
|
108
107
|
test('invitation timeout', async () => {
|
|
@@ -113,7 +112,7 @@ test.describe('Invitations', () => {
|
|
|
113
112
|
await manager.openPanel(1, 'identity');
|
|
114
113
|
await manager.acceptInvitation(1, 'device', invitation);
|
|
115
114
|
|
|
116
|
-
expect(await manager.invitationFailed(manager.peer(1))).
|
|
115
|
+
expect(await manager.invitationFailed(manager.peer(1))).toBe(true);
|
|
117
116
|
});
|
|
118
117
|
|
|
119
118
|
// TODO(thure): This is skipped because the UI no longer affords cancelling device invitations, consider removing.
|
|
@@ -125,10 +124,10 @@ test.describe('Invitations', () => {
|
|
|
125
124
|
|
|
126
125
|
await manager.openPanel(1, 'identity');
|
|
127
126
|
await manager.acceptInvitation(1, 'device', invitation);
|
|
128
|
-
expect(await manager.readyToAuthenticate('device', manager.peer(1))).
|
|
127
|
+
expect(await manager.readyToAuthenticate('device', manager.peer(1))).toBe(true);
|
|
129
128
|
await manager.cancelInvitation('device', 'host', manager.peer(0));
|
|
130
129
|
|
|
131
|
-
expect(await manager.invitationFailed(manager.peer(1))).
|
|
130
|
+
expect(await manager.invitationFailed(manager.peer(1))).toBe(true);
|
|
132
131
|
});
|
|
133
132
|
|
|
134
133
|
// TODO(wittjosiah): Remove? This seems to invalidate the invitation now.
|
|
@@ -147,7 +146,7 @@ test.describe('Invitations', () => {
|
|
|
147
146
|
await manager.authenticateInvitation('device', authCode, manager.peer(1));
|
|
148
147
|
await manager.doneInvitation('device', manager.peer(1));
|
|
149
148
|
|
|
150
|
-
expect(await manager.getDisplayName(0)).
|
|
149
|
+
expect(await manager.getDisplayName(0)).toEqual(await manager.getDisplayName(1));
|
|
151
150
|
});
|
|
152
151
|
|
|
153
152
|
// TODO(thure): The design no longer affords signalling an identity’s network status. Remove or adjust test, or adjust design.
|
|
@@ -159,18 +158,18 @@ test.describe('Invitations', () => {
|
|
|
159
158
|
|
|
160
159
|
await manager.openPanel(1, 'identity');
|
|
161
160
|
await manager.acceptInvitation(1, 'device', invitation);
|
|
162
|
-
expect(await manager.readyToAuthenticate('device', manager.peer(1))).
|
|
161
|
+
expect(await manager.readyToAuthenticate('device', manager.peer(1))).toBe(true);
|
|
163
162
|
await manager.toggleNetworkStatus(0);
|
|
164
|
-
expect(await manager.getNetworkStatus(0)).
|
|
163
|
+
expect(await manager.getNetworkStatus(0)).toEqual(ConnectionState.OFFLINE);
|
|
165
164
|
await manager.toggleNetworkStatus(0);
|
|
166
|
-
expect(await manager.getNetworkStatus(0)).
|
|
165
|
+
expect(await manager.getNetworkStatus(0)).toEqual(ConnectionState.ONLINE);
|
|
167
166
|
await manager.resetInvitation(manager.peer(1));
|
|
168
167
|
await manager.invitationInputContinue('device', manager.peer(1));
|
|
169
168
|
await manager.clearAuthCode('device', manager.peer(1));
|
|
170
169
|
await manager.authenticateInvitation('device', authCode, manager.peer(1));
|
|
171
170
|
await manager.doneInvitation('device', manager.peer(1));
|
|
172
171
|
|
|
173
|
-
expect(await manager.getDisplayName(0)).
|
|
172
|
+
expect(await manager.getDisplayName(0)).toEqual(await manager.getDisplayName(1));
|
|
174
173
|
});
|
|
175
174
|
});
|
|
176
175
|
|
|
@@ -190,7 +189,7 @@ test.describe('Invitations', () => {
|
|
|
190
189
|
await manager.doneInvitation('space', manager.peer(1));
|
|
191
190
|
|
|
192
191
|
await manager.openPanel(0, 'spaces');
|
|
193
|
-
expect(await manager.getSpaceName(0, 1)).
|
|
192
|
+
expect(await manager.getSpaceName(0, 1)).toEqual(await manager.getSpaceName(1, 1));
|
|
194
193
|
});
|
|
195
194
|
|
|
196
195
|
test('already joined', async () => {
|
|
@@ -209,7 +208,7 @@ test.describe('Invitations', () => {
|
|
|
209
208
|
await manager.acceptInvitation(1, 'space', invitation2);
|
|
210
209
|
await manager.doneInvitation('space', manager.peer(1));
|
|
211
210
|
|
|
212
|
-
expect(await manager.getSpaceMembersCount(0)).
|
|
211
|
+
expect(await manager.getSpaceMembersCount(0)).toEqual(2);
|
|
213
212
|
});
|
|
214
213
|
|
|
215
214
|
test('no auth method', async () => {
|
|
@@ -224,7 +223,7 @@ test.describe('Invitations', () => {
|
|
|
224
223
|
await manager.doneInvitation('space', manager.peer(1));
|
|
225
224
|
|
|
226
225
|
await manager.openPanel(0, 'spaces');
|
|
227
|
-
expect(await manager.getSpaceName(0, 1)).
|
|
226
|
+
expect(await manager.getSpaceName(0, 1)).toEqual(await manager.getSpaceName(1, 1));
|
|
228
227
|
});
|
|
229
228
|
|
|
230
229
|
test('invalid & retry auth code', async () => {
|
|
@@ -239,14 +238,14 @@ test.describe('Invitations', () => {
|
|
|
239
238
|
await manager.acceptInvitation(1, 'space', invitation);
|
|
240
239
|
await manager.authenticateInvitation('space', '000000', manager.peer(1));
|
|
241
240
|
|
|
242
|
-
expect(await manager.authenticatorIsVisible('space', manager.peer(1))).
|
|
241
|
+
expect(await manager.authenticatorIsVisible('space', manager.peer(1))).toBe(true);
|
|
243
242
|
|
|
244
243
|
await manager.clearAuthCode('space', manager.peer(1));
|
|
245
244
|
await manager.authenticateInvitation('space', authCode, manager.peer(1));
|
|
246
245
|
await manager.doneInvitation('space', manager.peer(1));
|
|
247
246
|
|
|
248
247
|
await manager.openPanel(0, 'spaces');
|
|
249
|
-
expect(await manager.getSpaceName(0, 1)).
|
|
248
|
+
expect(await manager.getSpaceName(0, 1)).toEqual(await manager.getSpaceName(1, 1));
|
|
250
249
|
});
|
|
251
250
|
|
|
252
251
|
// TODO(wittjosiah): Remove? This seems to invalidate the invitation now.
|
|
@@ -267,7 +266,7 @@ test.describe('Invitations', () => {
|
|
|
267
266
|
await manager.clearAuthCode('space', manager.peer(1));
|
|
268
267
|
await manager.authenticateInvitation('space', '000003', manager.peer(1));
|
|
269
268
|
|
|
270
|
-
expect(await manager.invitationFailed(manager.peer(1))).
|
|
269
|
+
expect(await manager.invitationFailed(manager.peer(1))).toBe(true);
|
|
271
270
|
|
|
272
271
|
await manager.resetInvitation(manager.peer(1));
|
|
273
272
|
await manager.invitationInputContinue('space', manager.peer(1));
|
|
@@ -276,7 +275,7 @@ test.describe('Invitations', () => {
|
|
|
276
275
|
await manager.doneInvitation('space', manager.peer(1));
|
|
277
276
|
|
|
278
277
|
await manager.openPanel(0, 'spaces');
|
|
279
|
-
expect(await manager.getSpaceName(0, 1)).
|
|
278
|
+
expect(await manager.getSpaceName(0, 1)).toEqual(await manager.getSpaceName(1, 1));
|
|
280
279
|
});
|
|
281
280
|
|
|
282
281
|
test('invitation timeout', async () => {
|
|
@@ -289,7 +288,7 @@ test.describe('Invitations', () => {
|
|
|
289
288
|
await manager.openPanel(1, 'join');
|
|
290
289
|
await manager.acceptInvitation(1, 'space', invitation);
|
|
291
290
|
|
|
292
|
-
expect(await manager.invitationFailed(manager.peer(1))).
|
|
291
|
+
expect(await manager.invitationFailed(manager.peer(1))).toBe(true);
|
|
293
292
|
});
|
|
294
293
|
|
|
295
294
|
// TODO(wittjosiah): Cancel not propagating.
|
|
@@ -302,10 +301,10 @@ test.describe('Invitations', () => {
|
|
|
302
301
|
await manager.createIdentity(1);
|
|
303
302
|
await manager.openPanel(1, 'join');
|
|
304
303
|
await manager.acceptInvitation(1, 'space', invitation);
|
|
305
|
-
expect(await manager.readyToAuthenticate('space', manager.peer(1))).
|
|
304
|
+
expect(await manager.readyToAuthenticate('space', manager.peer(1))).toBe(true);
|
|
306
305
|
await manager.cancelInvitation('space', 'host', manager.peer(0));
|
|
307
306
|
|
|
308
|
-
expect(await manager.invitationFailed(manager.peer(1))).
|
|
307
|
+
expect(await manager.invitationFailed(manager.peer(1))).toBe(true);
|
|
309
308
|
});
|
|
310
309
|
|
|
311
310
|
// TODO(wittjosiah): Remove? This seems to invalidate the invitation now.
|
|
@@ -327,7 +326,7 @@ test.describe('Invitations', () => {
|
|
|
327
326
|
await manager.doneInvitation('space', manager.peer(1));
|
|
328
327
|
|
|
329
328
|
await manager.openPanel(0, 'spaces');
|
|
330
|
-
expect(await manager.getSpaceName(0, 1)).
|
|
329
|
+
expect(await manager.getSpaceName(0, 1)).toEqual(await manager.getSpaceName(1, 1));
|
|
331
330
|
});
|
|
332
331
|
|
|
333
332
|
// TODO(thure): The design no longer affords signalling an identity’s network status. Remove or adjust test, or adjust design.
|
|
@@ -341,11 +340,11 @@ test.describe('Invitations', () => {
|
|
|
341
340
|
await manager.createIdentity(1);
|
|
342
341
|
await manager.openPanel(1, 'join');
|
|
343
342
|
await manager.acceptInvitation(1, 'space', invitation);
|
|
344
|
-
expect(await manager.readyToAuthenticate('space', manager.peer(1))).
|
|
343
|
+
expect(await manager.readyToAuthenticate('space', manager.peer(1))).toBe(true);
|
|
345
344
|
await manager.toggleNetworkStatus(0);
|
|
346
|
-
expect(await manager.getNetworkStatus(0)).
|
|
345
|
+
expect(await manager.getNetworkStatus(0)).toEqual(ConnectionState.OFFLINE);
|
|
347
346
|
await manager.toggleNetworkStatus(0);
|
|
348
|
-
expect(await manager.getNetworkStatus(0)).
|
|
347
|
+
expect(await manager.getNetworkStatus(0)).toEqual(ConnectionState.ONLINE);
|
|
349
348
|
await manager.resetInvitation(manager.peer(1));
|
|
350
349
|
await manager.invitationInputContinue('space', manager.peer(1));
|
|
351
350
|
await manager.clearAuthCode('space', manager.peer(1));
|
|
@@ -353,7 +352,7 @@ test.describe('Invitations', () => {
|
|
|
353
352
|
await manager.doneInvitation('space', manager.peer(1));
|
|
354
353
|
|
|
355
354
|
await manager.openPanel(0, 'spaces');
|
|
356
|
-
expect(await manager.getSpaceName(0, 1)).
|
|
355
|
+
expect(await manager.getSpaceName(0, 1)).toEqual(await manager.getSpaceName(1, 1));
|
|
357
356
|
});
|
|
358
357
|
|
|
359
358
|
test('multiple concurrent invitations', async () => {
|
|
@@ -385,9 +384,9 @@ test.describe('Invitations', () => {
|
|
|
385
384
|
await manager.doneInvitation('space', manager.peer(2));
|
|
386
385
|
|
|
387
386
|
await manager.openPanel(0, 'spaces');
|
|
388
|
-
expect(await manager.getSpaceName(0, 1)).
|
|
389
|
-
expect(await manager.getSpaceName(0, 1)).
|
|
390
|
-
expect(await manager.getSpaceName(1, 1)).
|
|
387
|
+
expect(await manager.getSpaceName(0, 1)).toEqual(await manager.getSpaceName(1, 1));
|
|
388
|
+
expect(await manager.getSpaceName(0, 1)).toEqual(await manager.getSpaceName(2, 1));
|
|
389
|
+
expect(await manager.getSpaceName(1, 1)).toEqual(await manager.getSpaceName(2, 1));
|
|
391
390
|
});
|
|
392
391
|
});
|
|
393
392
|
});
|
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { nxE2EPreset } from '@nx/playwright/preset';
|
|
6
|
+
import { defineConfig } from '@playwright/test';
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
import { e2ePreset } from '@dxos/test-utils/playwright';
|
|
9
|
+
|
|
10
|
+
export default defineConfig({
|
|
11
|
+
...nxE2EPreset(__filename, { testDir: __dirname }),
|
|
12
|
+
...e2ePreset(__dirname),
|
|
13
|
+
webServer: {
|
|
14
|
+
command: 'pnpm -w nx storybook-e2e stories',
|
|
15
|
+
port: 9009,
|
|
16
|
+
reuseExistingServer: !process.env.CI,
|
|
17
|
+
},
|
|
18
|
+
});
|
|
@@ -15,9 +15,9 @@ import { useIdentity } from '@dxos/react-client/halo';
|
|
|
15
15
|
import { Invitation, InvitationEncoder } from '@dxos/react-client/invitations';
|
|
16
16
|
import { ConnectionState, useNetworkStatus } from '@dxos/react-client/mesh';
|
|
17
17
|
import { ClientRepeater } from '@dxos/react-client/testing';
|
|
18
|
-
import { Button, ButtonGroup, List
|
|
18
|
+
import { Button, ButtonGroup, List } from '@dxos/react-ui';
|
|
19
19
|
import { getSize, groupSurface } from '@dxos/react-ui-theme';
|
|
20
|
-
import { withTheme } from '@dxos/storybook-utils';
|
|
20
|
+
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
21
21
|
|
|
22
22
|
import { ClipboardProvider, IdentityListItem, SpaceListItem } from '../components';
|
|
23
23
|
import { IdentityPanel, JoinPanel, SpacePanel } from '../panels';
|
|
@@ -222,12 +222,10 @@ const Invitations = (args: { id: number; count: number }) => {
|
|
|
222
222
|
export const Default = {
|
|
223
223
|
render: (args: { id: number }) => (
|
|
224
224
|
<ClipboardProvider>
|
|
225
|
-
<
|
|
226
|
-
<ClientRepeater component={Invitations} count={3} />
|
|
227
|
-
</Tooltip.Provider>
|
|
225
|
+
<ClientRepeater component={Invitations} count={3} />
|
|
228
226
|
</ClipboardProvider>
|
|
229
227
|
),
|
|
230
|
-
decorators: [withTheme],
|
|
228
|
+
decorators: [withTheme, withLayout({ tooltips: true })],
|
|
231
229
|
parameters: {
|
|
232
230
|
chromatic: { disableSnapshot: true },
|
|
233
231
|
translations: [osTranslations],
|
|
File without changes
|