A social knowledge tool for researchers built on ATProto
1import { Result, ok, err } from 'src/shared/core/Result';
2import { IAppPasswordSessionService } from '../../application/IAppPasswordSessionService';
3import { AtpSessionData } from '@atproto/api';
4
5export class FakeAppPasswordSessionService
6 implements IAppPasswordSessionService
7{
8 async getSession(did: string): Promise<Result<AtpSessionData>> {
9 try {
10 // Use mock data from environment variables
11 const mockDid = process.env.BSKY_DID || 'did:plc:mock123';
12 const mockHandle = process.env.BSKY_HANDLE || 'mock.bsky.social';
13 const mockAccessToken =
14 process.env.MOCK_ACCESS_TOKEN || 'mock-access-token-123';
15 const mockRefreshToken =
16 process.env.MOCK_REFRESH_TOKEN || 'mock-refresh-token-456';
17
18 const mockSession: AtpSessionData = {
19 did: mockDid,
20 handle: mockHandle,
21 accessJwt: mockAccessToken,
22 refreshJwt: mockRefreshToken,
23 active: true,
24 };
25
26 return ok(mockSession);
27 } catch (error: any) {
28 return err(error);
29 }
30 }
31
32 async createSession(
33 identifier: string,
34 appPassword: string,
35 ): Promise<Result<AtpSessionData>> {
36 try {
37 // Use mock data from environment variables
38 const mockDid = process.env.BSKY_DID || 'did:plc:mock123';
39 const mockHandle = process.env.BSKY_HANDLE || 'mock.bsky.social';
40 const mockAccessToken =
41 process.env.MOCK_ACCESS_TOKEN || 'mock-access-token-123';
42 const mockRefreshToken =
43 process.env.MOCK_REFRESH_TOKEN || 'mock-refresh-token-456';
44
45 // Simulate successful session creation with any identifier/password
46 const mockSession: AtpSessionData = {
47 did: mockDid,
48 handle: mockHandle,
49 accessJwt: mockAccessToken,
50 refreshJwt: mockRefreshToken,
51 active: true,
52 };
53
54 return ok(mockSession);
55 } catch (error: any) {
56 return err(error);
57 }
58 }
59}