From a3334a01a221877d3e06e02f960fda441f3460bd Mon Sep 17 00:00:00 2001 From: Paul Frazee Date: Fri, 31 Mar 2023 13:17:26 -0500 Subject: Lex refactor (#362) * Remove the hackcheck for upgrades * Rename the PostEmbeds folder to match the codebase style * Updates to latest lex refactor * Update to use new bsky agent * Update to use api package's richtext library * Switch to upsertProfile * Add TextEncoder/TextDecoder polyfill * Add Intl.Segmenter polyfill * Update composer to calculate lengths by grapheme * Fix detox * Fix login in e2e * Create account e2e passing * Implement an e2e mocking framework * Don't use private methods on mobx models as mobx can't track them * Add tooling for e2e-specific builds and add e2e media-picker mock * Add some tests and fix some bugs around profile editing * Add shell tests * Add home screen tests * Add thread screen tests * Add tests for other user profile screens * Add search screen tests * Implement profile imagery change tools and tests * Update to new embed behaviors * Add post tests * Fix to profile-screen test * Fix session resumption * Update web composer to new api * 1.11.0 * Fix pagination cursor parameters * Add quote posts to notifications * Fix embed layouts * Remove youtube inline player and improve tap handling on link cards * Reset minimal shell mode on all screen loads and feed swipes (close #299) * Update podfile.lock * Improve post notfound UI (close #366) * Bump atproto packages --- __e2e__/mock-server.ts | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 __e2e__/mock-server.ts (limited to '__e2e__/mock-server.ts') diff --git a/__e2e__/mock-server.ts b/__e2e__/mock-server.ts new file mode 100644 index 000000000..7a2be6060 --- /dev/null +++ b/__e2e__/mock-server.ts @@ -0,0 +1,75 @@ +import {createServer as createHTTPServer} from 'node:http' +import {parse} from 'node:url' +import {createServer, TestPDS} from '../jest/test-pds' + +async function main() { + let server: TestPDS + createHTTPServer(async (req, res) => { + const url = parse(req.url || '/', true) + if (req.method !== 'POST') { + return res.writeHead(200).end() + } + try { + console.log('Closing old server') + await server?.close() + console.log('Starting new server') + server = await createServer() + console.log('Listening at', server.pdsUrl) + if (url?.query) { + if ('users' in url.query) { + console.log('Generating mock users') + await server.mocker.createUser('alice') + await server.mocker.createUser('bob') + await server.mocker.createUser('carla') + await server.mocker.users.alice.agent.upsertProfile(() => ({ + displayName: 'Alice', + description: 'Test user 1', + })) + await server.mocker.users.bob.agent.upsertProfile(() => ({ + displayName: 'Bob', + description: 'Test user 2', + })) + await server.mocker.users.carla.agent.upsertProfile(() => ({ + displayName: 'Carla', + description: 'Test user 3', + })) + } + if ('follows' in url.query) { + console.log('Generating mock follows') + await server.mocker.follow('alice', 'bob') + await server.mocker.follow('alice', 'carla') + await server.mocker.follow('bob', 'alice') + await server.mocker.follow('bob', 'carla') + await server.mocker.follow('carla', 'alice') + await server.mocker.follow('carla', 'bob') + } + if ('posts' in url.query) { + console.log('Generating mock posts') + for (let user in server.mocker.users) { + await server.mocker.users[user].agent.post({text: 'Post'}) + } + } + if ('thread' in url.query) { + console.log('Generating mock posts') + const res = await server.mocker.users.bob.agent.post({ + text: 'Thread root', + }) + await server.mocker.users.carla.agent.post({ + text: 'Thread reply', + reply: { + parent: {cid: res.cid, uri: res.uri}, + root: {cid: res.cid, uri: res.uri}, + }, + }) + } + } + console.log('Ready') + return res.writeHead(200).end(server.pdsUrl) + } catch (e) { + console.error('Error!', e) + return res.writeHead(500).end() + } + }).listen(1986) + console.log('Mock server manager listening on 1986') +} +main() -- cgit 1.4.1