@atproto/pds 0.5.1 → 0.5.3
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/CHANGELOG.md +22 -0
- package/dist/account-manager/account-manager.d.ts +35 -4
- package/dist/account-manager/account-manager.d.ts.map +1 -1
- package/dist/account-manager/account-manager.js +67 -6
- package/dist/account-manager/account-manager.js.map +1 -1
- package/dist/account-manager/helpers/account.d.ts +1 -1
- package/dist/account-manager/helpers/account.d.ts.map +1 -1
- package/dist/account-manager/helpers/account.js +10 -4
- package/dist/account-manager/helpers/account.js.map +1 -1
- package/dist/account-manager/oauth-store.d.ts +2 -1
- package/dist/account-manager/oauth-store.d.ts.map +1 -1
- package/dist/account-manager/oauth-store.js +61 -12
- package/dist/account-manager/oauth-store.js.map +1 -1
- package/dist/actor-store/record/reader.d.ts +1 -1
- package/dist/actor-store/record/reader.d.ts.map +1 -1
- package/dist/actor-store/record/reader.js.map +1 -1
- package/dist/api/com/atproto/admin/updateAccountHandle.d.ts.map +1 -1
- package/dist/api/com/atproto/admin/updateAccountHandle.js +33 -43
- package/dist/api/com/atproto/admin/updateAccountHandle.js.map +1 -1
- package/dist/api/com/atproto/identity/updateHandle.d.ts.map +1 -1
- package/dist/api/com/atproto/identity/updateHandle.js +39 -61
- package/dist/api/com/atproto/identity/updateHandle.js.map +1 -1
- package/dist/api/com/atproto/repo/getRecord.js +3 -3
- package/dist/api/com/atproto/repo/getRecord.js.map +1 -1
- package/dist/api/com/atproto/repo/putRecord.js +2 -2
- package/dist/api/com/atproto/repo/putRecord.js.map +1 -1
- package/dist/api/com/atproto/sync/getRepo.d.ts.map +1 -1
- package/dist/api/com/atproto/sync/getRepo.js +17 -9
- package/dist/api/com/atproto/sync/getRepo.js.map +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +2 -2
- package/dist/context.js.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts +8 -0
- package/dist/lexicons/app/bsky/actor/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/actor/defs.defs.js +3 -0
- package/dist/lexicons/app/bsky/actor/defs.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/actor/profile.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/actor/status.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/draft/defs.defs.d.ts +22 -0
- package/dist/lexicons/app/bsky/draft/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/draft/defs.defs.js +11 -0
- package/dist/lexicons/app/bsky/draft/defs.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/embed/gallery.d.ts +3 -0
- package/dist/lexicons/app/bsky/embed/gallery.d.ts.map +1 -0
- package/dist/lexicons/app/bsky/embed/gallery.defs.d.ts +130 -0
- package/dist/lexicons/app/bsky/embed/gallery.defs.d.ts.map +1 -0
- package/dist/lexicons/app/bsky/embed/gallery.defs.js +47 -0
- package/dist/lexicons/app/bsky/embed/gallery.defs.js.map +1 -0
- package/dist/lexicons/app/bsky/embed/gallery.js +6 -0
- package/dist/lexicons/app/bsky/embed/gallery.js.map +1 -0
- package/dist/lexicons/app/bsky/embed/record.defs.d.ts +2 -1
- package/dist/lexicons/app/bsky/embed/record.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/embed/record.defs.js +2 -0
- package/dist/lexicons/app/bsky/embed/record.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/embed/recordWithMedia.defs.d.ts +13 -12
- package/dist/lexicons/app/bsky/embed/recordWithMedia.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/embed/recordWithMedia.defs.js +3 -0
- package/dist/lexicons/app/bsky/embed/recordWithMedia.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/embed.d.ts +1 -0
- package/dist/lexicons/app/bsky/embed.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/embed.js +1 -0
- package/dist/lexicons/app/bsky/embed.js.map +1 -1
- package/dist/lexicons/app/bsky/feed/defs.defs.d.ts +2 -1
- package/dist/lexicons/app/bsky/feed/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/defs.defs.js +2 -0
- package/dist/lexicons/app/bsky/feed/defs.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/feed/generator.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/like.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/post.defs.d.ts +12 -11
- package/dist/lexicons/app/bsky/feed/post.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/post.defs.js +2 -0
- package/dist/lexicons/app/bsky/feed/post.defs.js.map +1 -1
- package/dist/lexicons/app/bsky/feed/postgate.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/repost.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/feed/threadgate.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/block.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/follow.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/list.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/listblock.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/listitem.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/starterpack.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/graph/verification.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/labeler/service.defs.d.ts.map +1 -1
- package/dist/lexicons/app/bsky/notification/declaration.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/actor/declaration.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.js +1 -0
- package/dist/lexicons/chat/bsky/authFullChatClient.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts +57 -14
- package/dist/lexicons/chat/bsky/convo/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/defs.defs.js +34 -5
- package/dist/lexicons/chat/bsky/convo/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.js +1 -0
- package/dist/lexicons/chat/bsky/convo/getConvoForMembers.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getLog.defs.d.ts +2 -2
- package/dist/lexicons/chat/bsky/convo/getLog.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getLog.defs.js +3 -0
- package/dist/lexicons/chat/bsky/convo/getLog.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.d.ts +3 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.defs.d.ts +23 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.defs.js +19 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.js +6 -0
- package/dist/lexicons/chat/bsky/convo/getUnreadCounts.js.map +1 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js +1 -0
- package/dist/lexicons/chat/bsky/convo/unlockConvo.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/convo.d.ts +1 -0
- package/dist/lexicons/chat/bsky/convo.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/convo.js +1 -0
- package/dist/lexicons/chat/bsky/convo.js.map +1 -1
- package/dist/lexicons/chat/bsky/embed/joinLink.d.ts +3 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.d.ts +99 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.js +32 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.js +6 -0
- package/dist/lexicons/chat/bsky/embed/joinLink.js.map +1 -0
- package/dist/lexicons/chat/bsky/embed.d.ts +2 -0
- package/dist/lexicons/chat/bsky/embed.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/embed.js +5 -0
- package/dist/lexicons/chat/bsky/embed.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/addMembers.defs.d.ts +1 -1
- package/dist/lexicons/chat/bsky/group/addMembers.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/addMembers.defs.js +1 -0
- package/dist/lexicons/chat/bsky/group/addMembers.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/createGroup.defs.d.ts +6 -6
- package/dist/lexicons/chat/bsky/group/createGroup.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/createGroup.defs.js +4 -3
- package/dist/lexicons/chat/bsky/group/createGroup.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts +26 -2
- package/dist/lexicons/chat/bsky/group/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/defs.defs.js +15 -2
- package/dist/lexicons/chat/bsky/group/defs.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.d.ts +3 -3
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.js +6 -2
- package/dist/lexicons/chat/bsky/group/getJoinLinkPreviews.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.defs.d.ts +20 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.defs.js +19 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.js +6 -0
- package/dist/lexicons/chat/bsky/group/updateJoinRequestsRead.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.d.ts +3 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.defs.d.ts +20 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.defs.js +18 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.js +6 -0
- package/dist/lexicons/chat/bsky/group/withdrawJoinRequest.js.map +1 -0
- package/dist/lexicons/chat/bsky/group.d.ts +2 -0
- package/dist/lexicons/chat/bsky/group.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/group.js +2 -0
- package/dist/lexicons/chat/bsky/group.js.map +1 -1
- package/dist/lexicons/chat/bsky/moderation/defs.d.ts +2 -0
- package/dist/lexicons/chat/bsky/moderation/defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/defs.defs.d.ts +58 -0
- package/dist/lexicons/chat/bsky/moderation/defs.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/defs.defs.js +38 -0
- package/dist/lexicons/chat/bsky/moderation/defs.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/defs.js +5 -0
- package/dist/lexicons/chat/bsky/moderation/defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.d.ts +3 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.defs.js +18 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.js +6 -0
- package/dist/lexicons/chat/bsky/moderation/getConvo.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.d.ts +3 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.defs.d.ts +28 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.defs.js +24 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.js +6 -0
- package/dist/lexicons/chat/bsky/moderation/getConvoMembers.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.d.ts +3 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.defs.d.ts +22 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.defs.d.ts.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.defs.js +22 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.defs.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.js +6 -0
- package/dist/lexicons/chat/bsky/moderation/getConvos.js.map +1 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts +21 -3
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js +11 -0
- package/dist/lexicons/chat/bsky/moderation/subscribeModEvents.defs.js.map +1 -1
- package/dist/lexicons/chat/bsky/moderation.d.ts +4 -0
- package/dist/lexicons/chat/bsky/moderation.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky/moderation.js +4 -0
- package/dist/lexicons/chat/bsky/moderation.js.map +1 -1
- package/dist/lexicons/chat/bsky.d.ts +1 -0
- package/dist/lexicons/chat/bsky.d.ts.map +1 -1
- package/dist/lexicons/chat/bsky.js +1 -0
- package/dist/lexicons/chat/bsky.js.map +1 -1
- package/dist/lexicons/com/atproto/lexicon/schema.defs.d.ts.map +1 -1
- package/dist/lexicons/com/germnetwork/declaration.defs.d.ts.map +1 -1
- package/dist/lexicons/index.d.ts +1 -0
- package/dist/lexicons/index.d.ts.map +1 -1
- package/dist/lexicons/index.js +1 -0
- package/dist/lexicons/index.js.map +1 -1
- package/dist/lexicons/internal/bsky/actor/getProfiles.d.ts +3 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.d.ts.map +1 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.defs.d.ts +38 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.defs.d.ts.map +1 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.defs.js +26 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.defs.js.map +1 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.js +6 -0
- package/dist/lexicons/internal/bsky/actor/getProfiles.js.map +1 -0
- package/dist/lexicons/internal/bsky/actor.d.ts +2 -0
- package/dist/lexicons/internal/bsky/actor.d.ts.map +1 -0
- package/dist/lexicons/internal/bsky/actor.js +5 -0
- package/dist/lexicons/internal/bsky/actor.js.map +1 -0
- package/dist/lexicons/internal/bsky.d.ts +2 -0
- package/dist/lexicons/internal/bsky.d.ts.map +1 -0
- package/dist/lexicons/internal/bsky.js +5 -0
- package/dist/lexicons/internal/bsky.js.map +1 -0
- package/dist/lexicons/internal.d.ts +2 -0
- package/dist/lexicons/internal.d.ts.map +1 -0
- package/dist/lexicons/internal.js +5 -0
- package/dist/lexicons/internal.js.map +1 -0
- package/dist/lexicons/site/standard/document.defs.d.ts.map +1 -1
- package/dist/lexicons/site/standard/graph/recommend.defs.d.ts.map +1 -1
- package/dist/lexicons/site/standard/graph/subscription.defs.d.ts.map +1 -1
- package/dist/lexicons/site/standard/publication.defs.d.ts.map +1 -1
- package/dist/lexicons/site/standard/theme/basic.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/defs.defs.d.ts +11 -3
- package/dist/lexicons/tools/ozone/moderation/defs.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/defs.defs.js +9 -0
- package/dist/lexicons/tools/ozone/moderation/defs.defs.js.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/queryEvents.defs.d.ts +2 -2
- package/dist/lexicons/tools/ozone/moderation/queryEvents.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/queryEvents.defs.js.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/queryStatuses.defs.d.ts +2 -2
- package/dist/lexicons/tools/ozone/moderation/queryStatuses.defs.d.ts.map +1 -1
- package/dist/lexicons/tools/ozone/moderation/queryStatuses.defs.js.map +1 -1
- package/dist/read-after-write/viewer.d.ts +2 -2
- package/package.json +12 -12
- package/src/account-manager/account-manager.ts +105 -7
- package/src/account-manager/helpers/account.ts +15 -7
- package/src/account-manager/oauth-store.ts +76 -18
- package/src/actor-store/record/reader.ts +1 -1
- package/src/api/com/atproto/admin/updateAccountHandle.ts +37 -46
- package/src/api/com/atproto/identity/updateHandle.ts +45 -76
- package/src/api/com/atproto/repo/getRecord.ts +3 -3
- package/src/api/com/atproto/repo/putRecord.ts +2 -2
- package/src/api/com/atproto/sync/getRepo.ts +18 -9
- package/src/context.ts +12 -9
- package/tests/_puppeteer.ts +8 -2
- package/tests/account-manager.test.ts +200 -49
- package/tests/oauth.test.ts +5 -5
- package/tsconfig.build.json +2 -2
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.json +2 -2
- package/tsconfig.tests.json +2 -2
|
@@ -18,7 +18,7 @@ describe('account manager', () => {
|
|
|
18
18
|
// For debugging:
|
|
19
19
|
// headless: false,
|
|
20
20
|
// devtools: true,
|
|
21
|
-
// slowMo:
|
|
21
|
+
// slowMo: 25,
|
|
22
22
|
})
|
|
23
23
|
|
|
24
24
|
network = await TestNetworkNoAppView.create({
|
|
@@ -34,6 +34,10 @@ describe('account manager', () => {
|
|
|
34
34
|
})
|
|
35
35
|
})
|
|
36
36
|
|
|
37
|
+
afterEach(async () => {
|
|
38
|
+
await network.processAll()
|
|
39
|
+
})
|
|
40
|
+
|
|
37
41
|
afterAll(async () => {
|
|
38
42
|
await network?.close()
|
|
39
43
|
await browser?.close()
|
|
@@ -44,7 +48,7 @@ describe('account manager', () => {
|
|
|
44
48
|
|
|
45
49
|
await page.goto(new URL('/account', network.pds.url))
|
|
46
50
|
|
|
47
|
-
await page.assertTitle(`
|
|
51
|
+
await page.assertTitle(`Se connecter`)
|
|
48
52
|
|
|
49
53
|
await page.clickOnText('Créer un nouveau compte')
|
|
50
54
|
|
|
@@ -55,12 +59,14 @@ describe('account manager', () => {
|
|
|
55
59
|
await page.typeInInput('email', 'bob@test.com')
|
|
56
60
|
await page.typeInInput('password', 'bob-pass')
|
|
57
61
|
|
|
58
|
-
await page.clickOnText(
|
|
62
|
+
await page.clickOnText('Inscription')
|
|
59
63
|
|
|
60
|
-
await page.
|
|
64
|
+
await page.waitForNetworkIdle()
|
|
61
65
|
|
|
62
66
|
await page.ensureTextVisibility('bob.test', 'span')
|
|
63
67
|
await page.ensureTextVisibility('Votre compte Atmosphère est hébergé chez')
|
|
68
|
+
|
|
69
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
64
70
|
})
|
|
65
71
|
|
|
66
72
|
it('allows switching accounts', async () => {
|
|
@@ -68,7 +74,7 @@ describe('account manager', () => {
|
|
|
68
74
|
|
|
69
75
|
await page.goto(new URL('/account', network.pds.url))
|
|
70
76
|
|
|
71
|
-
await page.assertTitle(
|
|
77
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
72
78
|
|
|
73
79
|
await page.clickOnAriaLabel(`Sélecteur de compte`)
|
|
74
80
|
await page.clickOnText('Sélectionner un autre compte')
|
|
@@ -93,18 +99,13 @@ describe('account manager', () => {
|
|
|
93
99
|
|
|
94
100
|
await page.goto(new URL('/account', network.pds.url))
|
|
95
101
|
|
|
96
|
-
await page.assertTitle(
|
|
102
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
97
103
|
|
|
98
104
|
await page.ensureTextVisibility('bob.test', 'span')
|
|
99
105
|
|
|
100
|
-
await
|
|
101
|
-
(
|
|
102
|
-
|
|
103
|
-
},
|
|
104
|
-
(err) => {
|
|
105
|
-
expect(err).toBeInstanceOf(Error)
|
|
106
|
-
},
|
|
107
|
-
)
|
|
106
|
+
await expect(async () => {
|
|
107
|
+
await page.ensureTextVisibility('alice.test', 'span', 500)
|
|
108
|
+
}).rejects.toThrow('Waiting for selector')
|
|
108
109
|
})
|
|
109
110
|
|
|
110
111
|
it('allows changing the password', async () => {
|
|
@@ -112,9 +113,11 @@ describe('account manager', () => {
|
|
|
112
113
|
|
|
113
114
|
await page.goto(new URL('/account', network.pds.url))
|
|
114
115
|
|
|
115
|
-
await page.assertTitle(
|
|
116
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
117
|
+
|
|
118
|
+
await page.clickOnText('Compte utilisateur', 'a')
|
|
116
119
|
|
|
117
|
-
await page.clickOnText('Mot de passe'
|
|
120
|
+
await page.clickOnText('Mot de passe')
|
|
118
121
|
|
|
119
122
|
using sendResetPasswordMock = jest
|
|
120
123
|
.spyOn(network.pds.ctx.mailer, 'sendResetPassword')
|
|
@@ -122,7 +125,7 @@ describe('account manager', () => {
|
|
|
122
125
|
// noop
|
|
123
126
|
})
|
|
124
127
|
|
|
125
|
-
await page.clickOnText('Envoyer le code')
|
|
128
|
+
await page.clickOnText('Envoyer le code de vérification')
|
|
126
129
|
|
|
127
130
|
await page.waitForNetworkIdle()
|
|
128
131
|
|
|
@@ -137,20 +140,23 @@ describe('account manager', () => {
|
|
|
137
140
|
await page.typeInInput('code', params.token)
|
|
138
141
|
await page.typeInInput('password', 'bob-new-pass')
|
|
139
142
|
|
|
140
|
-
await page.clickOnText('
|
|
143
|
+
await page.clickOnText('Valider')
|
|
141
144
|
|
|
142
|
-
await page.
|
|
143
|
-
'Réinitialisation du mot de passe réussie',
|
|
144
|
-
'div',
|
|
145
|
-
)
|
|
145
|
+
await page.ensureNotification('Réinitialisation du mot de passe réussie')
|
|
146
146
|
})
|
|
147
147
|
|
|
148
|
-
it('allows
|
|
148
|
+
it('allows verifying the email address', async () => {
|
|
149
149
|
await using page = await PageHelper.from(browser, { languages })
|
|
150
150
|
|
|
151
151
|
await page.goto(new URL('/account', network.pds.url))
|
|
152
152
|
|
|
153
|
-
await page.
|
|
153
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
154
|
+
|
|
155
|
+
await page.clickOnText('Compte utilisateur', 'a')
|
|
156
|
+
|
|
157
|
+
await page.ensureTextVisibility('Votre adresse email doit être vérifiée.')
|
|
158
|
+
|
|
159
|
+
await page.clickOnText('Vérifier')
|
|
154
160
|
|
|
155
161
|
using sendConfirmEmailMock = jest
|
|
156
162
|
.spyOn(network.pds.ctx.mailer, 'sendConfirmEmail')
|
|
@@ -158,7 +164,7 @@ describe('account manager', () => {
|
|
|
158
164
|
// noop
|
|
159
165
|
})
|
|
160
166
|
|
|
161
|
-
await page.clickOnText('Envoyer le code', 'button')
|
|
167
|
+
await page.clickOnText('Envoyer le code de vérification', 'button')
|
|
162
168
|
|
|
163
169
|
await page.waitForNetworkIdle()
|
|
164
170
|
|
|
@@ -171,9 +177,31 @@ describe('account manager', () => {
|
|
|
171
177
|
})
|
|
172
178
|
|
|
173
179
|
await page.typeInInput('code', params.token)
|
|
174
|
-
await page.clickOnText('
|
|
180
|
+
await page.clickOnText('Valider')
|
|
181
|
+
|
|
182
|
+
await page.ensureNotification('Adresse email vérifiée')
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
it('allows changing the username', async () => {
|
|
186
|
+
await using page = await PageHelper.from(browser, { languages })
|
|
187
|
+
|
|
188
|
+
await page.goto(new URL('/account', network.pds.url))
|
|
189
|
+
|
|
190
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
191
|
+
|
|
192
|
+
await page.clickOnText('Compte utilisateur', 'a')
|
|
193
|
+
|
|
194
|
+
await page.clickOnText("Nom d'utilisateur")
|
|
195
|
+
|
|
196
|
+
await page.clickOnText("Utiliser un nom d'utilisateur par défaut")
|
|
175
197
|
|
|
176
|
-
await page.
|
|
198
|
+
await page.typeInInput('handle', 'bob-renamed')
|
|
199
|
+
|
|
200
|
+
await page.clickOnText('Valider')
|
|
201
|
+
|
|
202
|
+
await page.waitForNetworkIdle()
|
|
203
|
+
|
|
204
|
+
await page.ensureTextVisibility('bob-renamed.test', 'span')
|
|
177
205
|
})
|
|
178
206
|
|
|
179
207
|
it('allows changing the email address', async () => {
|
|
@@ -181,7 +209,11 @@ describe('account manager', () => {
|
|
|
181
209
|
|
|
182
210
|
await page.goto(new URL('/account', network.pds.url))
|
|
183
211
|
|
|
184
|
-
await page.
|
|
212
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
213
|
+
|
|
214
|
+
await page.clickOnText('Compte utilisateur', 'a')
|
|
215
|
+
|
|
216
|
+
await page.clickOnText('Adresse email')
|
|
185
217
|
|
|
186
218
|
using sendUpdateEmailMock = jest
|
|
187
219
|
.spyOn(network.pds.ctx.mailer, 'sendUpdateEmail')
|
|
@@ -189,13 +221,11 @@ describe('account manager', () => {
|
|
|
189
221
|
// noop
|
|
190
222
|
})
|
|
191
223
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
await page.clickOnText('Envoyer le code', 'button')
|
|
224
|
+
const emailInput = await page.typeInInput(
|
|
225
|
+
'email',
|
|
226
|
+
'bob-new-email@example.com',
|
|
227
|
+
)
|
|
228
|
+
emailInput.press('Enter')
|
|
199
229
|
|
|
200
230
|
await page.waitForNetworkIdle()
|
|
201
231
|
|
|
@@ -207,26 +237,147 @@ describe('account manager', () => {
|
|
|
207
237
|
token: expect.any(String),
|
|
208
238
|
})
|
|
209
239
|
|
|
210
|
-
await page.typeInInput('code', updateParams.token)
|
|
211
|
-
|
|
212
|
-
|
|
240
|
+
const codeInput = await page.typeInInput('code', updateParams.token)
|
|
241
|
+
codeInput.press('Enter')
|
|
242
|
+
|
|
243
|
+
await page.ensureNotification("Modification de l'adresse email réussie")
|
|
244
|
+
|
|
245
|
+
// The email needs to be verified again
|
|
246
|
+
await page.ensureTextVisibility('Votre adresse email doit être vérifiée.')
|
|
247
|
+
})
|
|
248
|
+
|
|
249
|
+
it('allows signing out & signing back in', async () => {
|
|
250
|
+
await using page = await PageHelper.from(browser, { languages })
|
|
251
|
+
|
|
252
|
+
await page.goto(new URL('/account', network.pds.url))
|
|
253
|
+
|
|
254
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
255
|
+
|
|
256
|
+
await page.clickOnAriaLabel(`Sélecteur de compte`)
|
|
257
|
+
await page.clickOnText('Se déconnecter')
|
|
258
|
+
|
|
259
|
+
await page.assertTitle(`Se connecter`)
|
|
260
|
+
await page.clickOnText('Se connecter')
|
|
261
|
+
|
|
262
|
+
await page.clickOnText('Se souvenir de ce compte sur cet appareil', 'label')
|
|
263
|
+
await page.typeInInput('username', 'bob-new-email@example.com')
|
|
264
|
+
const input = await page.typeInInput('password', 'bob-new-pass')
|
|
265
|
+
|
|
266
|
+
input.press('Enter')
|
|
267
|
+
|
|
268
|
+
await page.ensureTextVisibility('bob-renamed.test', 'span')
|
|
269
|
+
})
|
|
270
|
+
|
|
271
|
+
it('does not ask for a token when changing a non-verified email', async () => {
|
|
272
|
+
await using page = await PageHelper.from(browser, { languages })
|
|
273
|
+
|
|
274
|
+
await page.goto(new URL('/account', network.pds.url))
|
|
275
|
+
|
|
276
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
277
|
+
|
|
278
|
+
await page.clickOnText('Compte utilisateur', 'a')
|
|
213
279
|
|
|
280
|
+
await page.clickOnText('Adresse email')
|
|
281
|
+
|
|
282
|
+
using sendUpdateEmailMock = jest
|
|
283
|
+
.spyOn(network.pds.ctx.mailer, 'sendUpdateEmail')
|
|
284
|
+
.mockImplementation(async () => {
|
|
285
|
+
// noop
|
|
286
|
+
})
|
|
287
|
+
|
|
288
|
+
const emailInput = await page.typeInInput(
|
|
289
|
+
'email',
|
|
290
|
+
'bob-new-email@example.com',
|
|
291
|
+
)
|
|
292
|
+
emailInput.press('Enter')
|
|
293
|
+
|
|
294
|
+
await page.waitForNetworkIdle()
|
|
295
|
+
|
|
296
|
+
expect(sendUpdateEmailMock).not.toHaveBeenCalled()
|
|
297
|
+
|
|
298
|
+
await page.clickOnText('Plus tard')
|
|
299
|
+
|
|
300
|
+
await page.ensureNotification("Modification de l'adresse email réussie")
|
|
301
|
+
|
|
302
|
+
// The email needs to be verified again
|
|
303
|
+
await page.ensureTextVisibility('Votre adresse email doit être vérifiée.')
|
|
304
|
+
})
|
|
305
|
+
|
|
306
|
+
it('rejects racial slurs when changing username', async () => {
|
|
307
|
+
await using page = await PageHelper.from(browser, { languages })
|
|
308
|
+
|
|
309
|
+
await page.goto(new URL('/account', network.pds.url))
|
|
310
|
+
|
|
311
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
312
|
+
|
|
313
|
+
await page.clickOnText('Compte utilisateur', 'a')
|
|
314
|
+
|
|
315
|
+
await page.clickOnText("Nom d'utilisateur")
|
|
316
|
+
|
|
317
|
+
await page.clickOnText("Utiliser un nom d'utilisateur par défaut")
|
|
318
|
+
|
|
319
|
+
// Try to change username to a racial slur
|
|
320
|
+
await page.typeInInput('handle', 'nigger')
|
|
321
|
+
|
|
322
|
+
await page.clickOnText('Valider')
|
|
323
|
+
|
|
324
|
+
await page.waitForNetworkIdle()
|
|
325
|
+
|
|
326
|
+
// Should display appropriate error message
|
|
214
327
|
await page.ensureTextVisibility(
|
|
215
|
-
"
|
|
216
|
-
'div',
|
|
328
|
+
"Le nom d'utilisateur contient un langage inapproprié",
|
|
217
329
|
)
|
|
218
330
|
|
|
219
|
-
|
|
331
|
+
// Username should not have changed
|
|
332
|
+
await page.clickOnText('Retour')
|
|
333
|
+
await page.ensureTextVisibility('bob-renamed.test', 'span')
|
|
334
|
+
})
|
|
220
335
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
336
|
+
it('rejects custom domain when not configured', async () => {
|
|
337
|
+
await using page = await PageHelper.from(browser, { languages })
|
|
338
|
+
|
|
339
|
+
await page.goto(new URL('/account', network.pds.url))
|
|
340
|
+
|
|
341
|
+
await page.assertTitle('Mon compte Atmosphère')
|
|
342
|
+
|
|
343
|
+
await page.clickOnText('Compte utilisateur', 'a')
|
|
344
|
+
|
|
345
|
+
await page.clickOnText("Nom d'utilisateur")
|
|
226
346
|
|
|
227
|
-
await page.
|
|
228
|
-
|
|
347
|
+
await page.clickOnText('Utiliser un nom de domaine que je possède')
|
|
348
|
+
|
|
349
|
+
// DNS is the default verification method
|
|
350
|
+
await page.ensureTextVisibility(
|
|
351
|
+
'Ajoutez le champ suivant à la configuration DNS de votre domaine.',
|
|
352
|
+
)
|
|
353
|
+
await page.ensureTextVisibility('_atproto.<votre-domaine>', 'code')
|
|
354
|
+
await page.ensureTextVisibility('TXT', 'code')
|
|
355
|
+
|
|
356
|
+
// Switch to HTTP verification method
|
|
357
|
+
await page.clickOnText('HTTP', 'span')
|
|
358
|
+
|
|
359
|
+
await page.ensureTextVisibility(
|
|
360
|
+
"Rendez un fichier texte avec le contenu ci-dessous disponible à l'URL suivante.",
|
|
361
|
+
)
|
|
362
|
+
await page.ensureTextVisibility(
|
|
363
|
+
'https://<votre-domaine>/.well-known/atproto-did',
|
|
364
|
+
'code',
|
|
365
|
+
)
|
|
366
|
+
|
|
367
|
+
// Try to use an unconfigured domain
|
|
368
|
+
await page.typeInInput('domain', 'notconfigured.com')
|
|
369
|
+
|
|
370
|
+
await page.clickOnText('Vérifier et enregistrer')
|
|
371
|
+
|
|
372
|
+
await page.waitForNetworkIdle()
|
|
373
|
+
|
|
374
|
+
// Should display appropriate error message
|
|
375
|
+
await page.ensureTextVisibility(
|
|
376
|
+
"Le nom d'utilisateur n'a pas pu être résolu",
|
|
377
|
+
)
|
|
229
378
|
|
|
230
|
-
|
|
379
|
+
// Username should not have changed
|
|
380
|
+
await page.clickOnText('Retour')
|
|
381
|
+
await page.ensureTextVisibility('bob-renamed.test', 'span')
|
|
231
382
|
})
|
|
232
383
|
})
|
package/tests/oauth.test.ts
CHANGED
|
@@ -25,7 +25,7 @@ describe('oauth', () => {
|
|
|
25
25
|
// For debugging:
|
|
26
26
|
// headless: false,
|
|
27
27
|
// devtools: true,
|
|
28
|
-
// slowMo:
|
|
28
|
+
// slowMo: 25,
|
|
29
29
|
})
|
|
30
30
|
|
|
31
31
|
network = await TestNetworkNoAppView.create({
|
|
@@ -71,7 +71,7 @@ describe('oauth', () => {
|
|
|
71
71
|
|
|
72
72
|
await page.navigationClick(`Sign up with ${new URL(network.pds.url).host}`)
|
|
73
73
|
|
|
74
|
-
await page.assertTitle(
|
|
74
|
+
await page.assertTitle('Inscription')
|
|
75
75
|
|
|
76
76
|
await page.typeInInput('handle', 'bob')
|
|
77
77
|
|
|
@@ -80,10 +80,10 @@ describe('oauth', () => {
|
|
|
80
80
|
await page.typeInInput('email', 'bob@test.com')
|
|
81
81
|
await page.typeInInput('password', 'bob-pass')
|
|
82
82
|
|
|
83
|
-
await page.clickOnText(
|
|
83
|
+
await page.clickOnText('Inscription')
|
|
84
84
|
|
|
85
85
|
await page.ensureTextVisibility(
|
|
86
|
-
`L'application demande un contrôle total sur votre identité, ce qui signifie qu'elle pourrait casser de façon permanente, ou même usurper, votre compte. N'
|
|
86
|
+
`L'application demande un contrôle total sur votre identité, ce qui signifie qu'elle pourrait casser de façon permanente, ou même usurper, votre compte. N'autorisez l'accès qu'aux applications auxquelles vous faites vraiment confiance.`,
|
|
87
87
|
)
|
|
88
88
|
|
|
89
89
|
// Make sure the new account is propagated to the PLC directory, allowing
|
|
@@ -112,7 +112,7 @@ describe('oauth', () => {
|
|
|
112
112
|
|
|
113
113
|
await page.navigationClick(`Login with ${new URL(network.pds.url).host}`)
|
|
114
114
|
|
|
115
|
-
await page.assertTitle(
|
|
115
|
+
await page.assertTitle('Se connecter')
|
|
116
116
|
|
|
117
117
|
// Cancel the OAuth flow:
|
|
118
118
|
await page.navigationClick('Annuler')
|