about summary refs log tree commit diff
path: root/__e2e__
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-04-27 12:38:23 -0500
committerGitHub <noreply@github.com>2023-04-27 12:38:23 -0500
commit1d50ddb378d5c6954d4cf8a6145b4486b9497107 (patch)
tree85a55e9aef6692c304cc31d7c3bb239c186f7951 /__e2e__
parent51be8474db5e8074b1af233609b5eb455af31692 (diff)
downloadvoidsky-1d50ddb378d5c6954d4cf8a6145b4486b9497107.tar.zst
Refactor moderation to apply to accounts, profiles, and posts correctly (#548)
* Add ScreenHider component

* Add blur attribute to UserAvatar and UserBanner

* Remove dead suggested posts component and model

* Bump @atproto/api@0.2.10

* Rework moderation tooling to give a more precise DSL

* Add label mocks

* Apply finer grained moderation controls

* Refactor ProfileCard to just take the profile object

* Apply moderation to user listings and banner

* Apply moderation to notifications

* Fix lint

* Tune avatar & banner blur settings per platform

* 1.24
Diffstat (limited to '__e2e__')
-rw-r--r--__e2e__/mock-server.ts114
1 files changed, 114 insertions, 0 deletions
diff --git a/__e2e__/mock-server.ts b/__e2e__/mock-server.ts
index 7bcad47f3..858ac5e08 100644
--- a/__e2e__/mock-server.ts
+++ b/__e2e__/mock-server.ts
@@ -63,6 +63,120 @@ async function main() {
             },
           })
         }
+        if ('labels' in url.query) {
+          console.log('Generating naughty users with labels')
+
+          const anchorPost = await server.mocker.createPost(
+            'alice',
+            'Anchor post',
+          )
+
+          for (const user of [
+            'csam-account',
+            'csam-profile',
+            'csam-posts',
+            'porn-account',
+            'porn-profile',
+            'porn-posts',
+            'nudity-account',
+            'nudity-profile',
+            'nudity-posts',
+            'muted-account',
+          ]) {
+            await server.mocker.createUser(user)
+            await server.mocker.follow('alice', user)
+            await server.mocker.follow(user, 'alice')
+            await server.mocker.createPost(user, `Unlabeled post from ${user}`)
+            await server.mocker.createReply(
+              user,
+              `Unlabeled reply from ${user}`,
+              anchorPost,
+            )
+            await server.mocker.like(user, anchorPost)
+          }
+
+          await server.mocker.labelAccount('csam', 'csam-account')
+          await server.mocker.labelProfile('csam', 'csam-profile')
+          await server.mocker.labelPost(
+            'csam',
+            await server.mocker.createPost('csam-posts', 'csam post'),
+          )
+          await server.mocker.labelPost(
+            'csam',
+            await server.mocker.createQuotePost(
+              'csam-posts',
+              'csam quote post',
+              anchorPost,
+            ),
+          )
+          await server.mocker.labelPost(
+            'csam',
+            await server.mocker.createReply(
+              'csam-posts',
+              'csam reply',
+              anchorPost,
+            ),
+          )
+
+          await server.mocker.labelAccount('porn', 'porn-account')
+          await server.mocker.labelProfile('porn', 'porn-profile')
+          await server.mocker.labelPost(
+            'porn',
+            await server.mocker.createPost('porn-posts', 'porn post'),
+          )
+          await server.mocker.labelPost(
+            'porn',
+            await server.mocker.createQuotePost(
+              'porn-posts',
+              'porn quote post',
+              anchorPost,
+            ),
+          )
+          await server.mocker.labelPost(
+            'porn',
+            await server.mocker.createReply(
+              'porn-posts',
+              'porn reply',
+              anchorPost,
+            ),
+          )
+
+          await server.mocker.labelAccount('nudity', 'nudity-account')
+          await server.mocker.labelProfile('nudity', 'nudity-profile')
+          await server.mocker.labelPost(
+            'nudity',
+            await server.mocker.createPost('nudity-posts', 'nudity post'),
+          )
+          await server.mocker.labelPost(
+            'nudity',
+            await server.mocker.createQuotePost(
+              'nudity-posts',
+              'nudity quote post',
+              anchorPost,
+            ),
+          )
+          await server.mocker.labelPost(
+            'nudity',
+            await server.mocker.createReply(
+              'nudity-posts',
+              'nudity reply',
+              anchorPost,
+            ),
+          )
+
+          await server.mocker.users.alice.agent.mute('muted-account.test')
+          await server.mocker.createPost('muted-account', 'muted post')
+          await server.mocker.createQuotePost(
+            'muted-account',
+            'account quote post',
+            anchorPost,
+          )
+          await server.mocker.createReply(
+            'muted-account',
+            'account reply',
+            anchorPost,
+          )
+        }
       }
       console.log('Ready')
       return res.writeHead(200).end(server.pdsUrl)