Skip to content

Commit

Permalink
fmt
Browse files Browse the repository at this point in the history
  • Loading branch information
elliotBraem committed Jan 14, 2025
1 parent e1cf914 commit 097bc06
Show file tree
Hide file tree
Showing 23 changed files with 457 additions and 325 deletions.
6 changes: 6 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
build
coverage
node_modules
.turbo
.next
.docusaurus
72 changes: 46 additions & 26 deletions backend/src/__tests__/mocks/db-service.mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,56 +11,76 @@ const storage = {
};

export const mockDb = {
upsertFeed: mock<(feed: { id: string; name: string; description?: string }) => void>(() => {}),

upsertFeed: mock<
(feed: { id: string; name: string; description?: string }) => void
>(() => {}),

getDailySubmissionCount: mock<(userId: string) => number>((userId) => {
return storage.dailySubmissionCounts.get(userId) || 0;
}),

saveSubmission: mock<(submission: TwitterSubmission) => void>((submission) => {
storage.submissions.set(submission.tweetId, submission);
}),

saveSubmissionToFeed: mock<(submissionId: string, feedId: string) => void>((submissionId, feedId) => {
const feeds = storage.submissionFeeds.get(submissionId) || new Set();
feeds.add(feedId);
storage.submissionFeeds.set(submissionId, feeds);
}),


saveSubmission: mock<(submission: TwitterSubmission) => void>(
(submission) => {
storage.submissions.set(submission.tweetId, submission);
},
),

saveSubmissionToFeed: mock<(submissionId: string, feedId: string) => void>(
(submissionId, feedId) => {
const feeds = storage.submissionFeeds.get(submissionId) || new Set();
feeds.add(feedId);
storage.submissionFeeds.set(submissionId, feeds);
},
),

incrementDailySubmissionCount: mock<(userId: string) => void>((userId) => {
const currentCount = storage.dailySubmissionCounts.get(userId) || 0;
storage.dailySubmissionCounts.set(userId, currentCount + 1);
}),

updateSubmissionAcknowledgment: mock<(tweetId: string, acknowledgmentTweetId: string) => void>((tweetId, ackId) => {

updateSubmissionAcknowledgment: mock<
(tweetId: string, acknowledgmentTweetId: string) => void
>((tweetId, ackId) => {
storage.acknowledgments.set(tweetId, ackId);
}),

getSubmissionByAcknowledgmentTweetId: mock<(acknowledgmentTweetId: string) => TwitterSubmission | null>((ackId) => {

getSubmissionByAcknowledgmentTweetId: mock<
(acknowledgmentTweetId: string) => TwitterSubmission | null
>((ackId) => {
for (const [tweetId, storedAckId] of storage.acknowledgments.entries()) {
if (storedAckId === ackId) {
return storage.submissions.get(tweetId) || null;
}
}
return null;
}),

saveModerationAction: mock<(moderation: any) => void>(() => {}),

updateSubmissionStatus: mock<(tweetId: string, status: "approved" | "rejected", responseTweetId: string) => void>((tweetId, status, responseId) => {

updateSubmissionStatus: mock<
(
tweetId: string,
status: "approved" | "rejected",
responseTweetId: string,
) => void
>((tweetId, status, responseId) => {
const submission = storage.submissions.get(tweetId);
if (submission) {
submission.status = status;
storage.moderationResponses.set(tweetId, responseId);
}
}),

getFeedsBySubmission: mock<(submissionId: string) => Array<{ feedId: string }>>((submissionId) => {

getFeedsBySubmission: mock<
(submissionId: string) => Array<{ feedId: string }>
>((submissionId) => {
const feeds = storage.submissionFeeds.get(submissionId) || new Set();
return Array.from(feeds).map(feedId => ({ feedId }));
return Array.from(feeds).map((feedId) => ({ feedId }));
}),

removeFromSubmissionFeed: mock<(submissionId: string, feedId: string) => void>((submissionId, feedId) => {

removeFromSubmissionFeed: mock<
(submissionId: string, feedId: string) => void
>((submissionId, feedId) => {
const feeds = storage.submissionFeeds.get(submissionId);
if (feeds) {
feeds.delete(feedId);
Expand All @@ -70,7 +90,7 @@ export const mockDb = {

// Helper to reset all mock functions and storage
export const resetMockDb = () => {
Object.values(mockDb).forEach(mockFn => mockFn.mockReset());
Object.values(mockDb).forEach((mockFn) => mockFn.mockReset());
storage.submissions.clear();
storage.submissionFeeds.clear();
storage.dailySubmissionCounts.clear();
Expand Down
2 changes: 1 addition & 1 deletion backend/src/__tests__/mocks/distribution-service.mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export class MockDistributionService {
async processStreamOutput(
feedId: string,
submissionId: string,
content: string
content: string,
): Promise<void> {
this.processedSubmissions.push({ feedId, submissionId, content });
}
Expand Down
65 changes: 46 additions & 19 deletions backend/src/__tests__/mocks/drizzle.mock.ts
Original file line number Diff line number Diff line change
@@ -1,38 +1,65 @@
import { mock } from 'bun:test';
import { TwitterSubmission } from '../../types/twitter';
import { mock } from "bun:test";
import { TwitterSubmission } from "../../types/twitter";

// Define the database interface to match our schema
interface DbInterface {
upsertFeed: (feed: { id: string; name: string; description?: string }) => void;
upsertFeed: (feed: {
id: string;
name: string;
description?: string;
}) => void;
getDailySubmissionCount: (userId: string) => number;
saveSubmission: (submission: TwitterSubmission) => void;
saveSubmissionToFeed: (submissionId: string, feedId: string) => void;
incrementDailySubmissionCount: (userId: string) => void;
updateSubmissionAcknowledgment: (tweetId: string, acknowledgmentTweetId: string) => void;
getSubmissionByAcknowledgmentTweetId: (acknowledgmentTweetId: string) => Promise<TwitterSubmission | null>;
updateSubmissionAcknowledgment: (
tweetId: string,
acknowledgmentTweetId: string,
) => void;
getSubmissionByAcknowledgmentTweetId: (
acknowledgmentTweetId: string,
) => Promise<TwitterSubmission | null>;
saveModerationAction: (moderation: any) => void;
updateSubmissionStatus: (tweetId: string, status: "approved" | "rejected", responseTweetId: string) => void;
getFeedsBySubmission: (submissionId: string) => Promise<Array<{ feedId: string }>>;
updateSubmissionStatus: (
tweetId: string,
status: "approved" | "rejected",
responseTweetId: string,
) => void;
getFeedsBySubmission: (
submissionId: string,
) => Promise<Array<{ feedId: string }>>;
removeFromSubmissionFeed: (submissionId: string, feedId: string) => void;
}

// Create mock functions for each database operation
export const drizzleMock = {
upsertFeed: mock<DbInterface['upsertFeed']>(() => {}),
getDailySubmissionCount: mock<DbInterface['getDailySubmissionCount']>(() => 0),
saveSubmission: mock<DbInterface['saveSubmission']>(() => {}),
saveSubmissionToFeed: mock<DbInterface['saveSubmissionToFeed']>(() => {}),
incrementDailySubmissionCount: mock<DbInterface['incrementDailySubmissionCount']>(() => {}),
updateSubmissionAcknowledgment: mock<DbInterface['updateSubmissionAcknowledgment']>(() => {}),
getSubmissionByAcknowledgmentTweetId: mock<DbInterface['getSubmissionByAcknowledgmentTweetId']>(() => Promise.resolve(null)),
saveModerationAction: mock<DbInterface['saveModerationAction']>(() => {}),
updateSubmissionStatus: mock<DbInterface['updateSubmissionStatus']>(() => {}),
getFeedsBySubmission: mock<DbInterface['getFeedsBySubmission']>(() => Promise.resolve([])),
removeFromSubmissionFeed: mock<DbInterface['removeFromSubmissionFeed']>(() => {}),
upsertFeed: mock<DbInterface["upsertFeed"]>(() => {}),
getDailySubmissionCount: mock<DbInterface["getDailySubmissionCount"]>(
() => 0,
),
saveSubmission: mock<DbInterface["saveSubmission"]>(() => {}),
saveSubmissionToFeed: mock<DbInterface["saveSubmissionToFeed"]>(() => {}),
incrementDailySubmissionCount: mock<
DbInterface["incrementDailySubmissionCount"]
>(() => {}),
updateSubmissionAcknowledgment: mock<
DbInterface["updateSubmissionAcknowledgment"]
>(() => {}),
getSubmissionByAcknowledgmentTweetId: mock<
DbInterface["getSubmissionByAcknowledgmentTweetId"]
>(() => Promise.resolve(null)),
saveModerationAction: mock<DbInterface["saveModerationAction"]>(() => {}),
updateSubmissionStatus: mock<DbInterface["updateSubmissionStatus"]>(() => {}),
getFeedsBySubmission: mock<DbInterface["getFeedsBySubmission"]>(() =>
Promise.resolve([]),
),
removeFromSubmissionFeed: mock<DbInterface["removeFromSubmissionFeed"]>(
() => {},
),
};

// Mock the db module
import { db } from '../../services/db';
import { db } from "../../services/db";
Object.assign(db, drizzleMock);

export default drizzleMock;
4 changes: 2 additions & 2 deletions backend/src/__tests__/mocks/twitter-service.mock.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,12 +42,12 @@ export class MockTwitterService {
}

async getTweet(tweetId: string): Promise<Tweet | null> {
return this.mockTweets.find(t => t.id === tweetId) || null;
return this.mockTweets.find((t) => t.id === tweetId) || null;
}

async fetchAllNewMentions(lastCheckedId: string | null): Promise<Tweet[]> {
if (!lastCheckedId) return this.mockTweets;
const index = this.mockTweets.findIndex(t => t.id === lastCheckedId);
const index = this.mockTweets.findIndex((t) => t.id === lastCheckedId);
if (index === -1) return this.mockTweets;
return this.mockTweets.slice(index + 1);
}
Expand Down
Loading

0 comments on commit 097bc06

Please sign in to comment.