@@ -2,12 +2,7 @@ import { afterEach, describe, expect, it, vi } from 'vitest';
|
||||
import { runtimeQueryIds } from '../src/lib/runtime-query-ids.js';
|
||||
import { TwitterClient } from '../src/lib/twitter-client.js';
|
||||
|
||||
const validCookies = {
|
||||
authToken: 'test_auth_token',
|
||||
ct0: 'test_ct0_token',
|
||||
cookieHeader: 'auth_token=test_auth_token; ct0=test_ct0_token',
|
||||
source: 'test',
|
||||
};
|
||||
const testRelayBaseUrl = 'https://relay.example';
|
||||
|
||||
type ResponseLike = {
|
||||
ok: boolean;
|
||||
@@ -46,7 +41,7 @@ describe('TwitterClient core coverage', () => {
|
||||
});
|
||||
|
||||
it('refreshQueryIds calls runtime refresh outside test env', async () => {
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const refreshSpy = vi.spyOn(runtimeQueryIds, 'refresh').mockResolvedValue(null);
|
||||
process.env.NODE_ENV = 'production';
|
||||
|
||||
@@ -63,11 +58,15 @@ describe('TwitterClient core coverage', () => {
|
||||
});
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies, timeoutMs: 5 });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl, timeoutMs: 5 });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
await clientPrivate.fetchWithTimeout('https://example.com', { method: 'GET' });
|
||||
await clientPrivate.fetchWithTimeout('https://x.com/i/api/test', { method: 'GET' });
|
||||
|
||||
expect(mockFetch).toHaveBeenCalledTimes(1);
|
||||
expect(mockFetch).toHaveBeenCalledWith(
|
||||
'https://relay.example/i/api/test',
|
||||
expect.objectContaining({ method: 'GET' }),
|
||||
);
|
||||
});
|
||||
|
||||
it('returns a not found error when tweet data is missing', async () => {
|
||||
@@ -102,7 +101,7 @@ describe('TwitterClient core coverage', () => {
|
||||
);
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const result = await client.getTweet('123');
|
||||
|
||||
expect(result.success).toBe(false);
|
||||
@@ -110,7 +109,7 @@ describe('TwitterClient core coverage', () => {
|
||||
});
|
||||
|
||||
it('adds client user id header after ensureClientUserId', async () => {
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
process.env.NODE_ENV = 'production';
|
||||
|
||||
vi.spyOn(client, 'getCurrentUser').mockResolvedValue({
|
||||
@@ -130,7 +129,7 @@ describe('TwitterClient core coverage', () => {
|
||||
const mockFetch = vi.fn().mockResolvedValueOnce(makeResponse({ ok: false, status: 500 }));
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.fetchUserArticlePlainText('user', 'tweet');
|
||||
|
||||
@@ -141,7 +140,7 @@ describe('TwitterClient core coverage', () => {
|
||||
const mockFetch = vi.fn().mockRejectedValueOnce(new Error('boom'));
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.fetchUserArticlePlainText('user', 'tweet');
|
||||
|
||||
@@ -160,7 +159,7 @@ describe('TwitterClient core coverage', () => {
|
||||
);
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.fetchUserArticlePlainText('user', 'tweet');
|
||||
|
||||
@@ -177,7 +176,7 @@ describe('TwitterClient core coverage', () => {
|
||||
);
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.fetchTweetDetail('1');
|
||||
|
||||
@@ -210,7 +209,7 @@ describe('TwitterClient core coverage', () => {
|
||||
);
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.fetchTweetDetail('1');
|
||||
|
||||
@@ -260,7 +259,7 @@ describe('TwitterClient core coverage', () => {
|
||||
);
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.fetchTweetDetail('2');
|
||||
|
||||
@@ -295,7 +294,7 @@ describe('TwitterClient core coverage', () => {
|
||||
);
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.fetchTweetDetail('1');
|
||||
|
||||
@@ -306,7 +305,7 @@ describe('TwitterClient core coverage', () => {
|
||||
const mockFetch = vi.fn().mockRejectedValueOnce(new Error('boom'));
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.fetchTweetDetail('1');
|
||||
|
||||
@@ -320,7 +319,7 @@ describe('TwitterClient core coverage', () => {
|
||||
const mockFetch = vi.fn().mockRejectedValueOnce(new Error('boom'));
|
||||
global.fetch = mockFetch as unknown as typeof fetch;
|
||||
|
||||
const client = new TwitterClient({ cookies: validCookies });
|
||||
const client = new TwitterClient({ relayBaseUrl: testRelayBaseUrl });
|
||||
const clientPrivate = client as unknown as TwitterClientPrivate;
|
||||
const result = await clientPrivate.postStatusUpdate({ text: 'hello' });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user