Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/llms-txt-hub / apps/web/__tests__/utils/mock-factories.ts |
| Date | Not specified in source |
| Repository | Janady13/llms-txt-hub |
| Revision | e0f4bf978d4df168369c7601d9c5f5ea89e84377 |
| Branch | main |
| Path or archive member | apps/web/__tests__/utils/mock-factories.ts |
| Original SHA-256 | e6758c33190cde701887f4415bf69a686879ee28452279d267c516dd19ab79d3 |
| Git blob SHA | b426a2cc295a4b23002ba9be548dcadc4cab700a |
| Reading-copy SHA-256 | e6758c33190cde701887f4415bf69a686879ee28452279d267c516dd19ab79d3 |
Recovered source transcript
Download complete source text ↓90 lines · 2.2 KB
/**
* Mock object factories for testing
*/
/**
* Creates a mock user object for testing
*
* @param overrides - Optional properties to override default values
* @returns Mock user object
*/
export const createMockUser = (overrides: Partial<any> = {}) => {
// Extract nested overrides to prevent clobbering
const {
user_metadata: userMetadataOverrides,
publicMetadata: publicMetadataOverrides,
...topLevelOverrides
} = overrides
// Merge nested objects with defaults
const mergedUserMetadata = {
user_name: 'testuser',
avatar_url: 'https://example.com/avatar.jpg',
...userMetadataOverrides
}
const mergedPublicMetadata = {
isProfilePrivate: false,
...publicMetadataOverrides
}
// Return mock user with properly merged nested objects
// Note: We explicitly set the nested objects to prevent top-level overrides from clobbering them
return {
id: 'test-user-id',
email: 'test@example.com',
name: 'Test User',
user_metadata: mergedUserMetadata,
publicMetadata: mergedPublicMetadata,
createdAt: '2024-01-01T00:00:00Z',
...topLevelOverrides
}
}
/**
* Creates a mock project object for testing
*
* @param overrides - Optional properties to override default values
* @returns Mock project object
*/
export const createMockProject = (overrides: Partial<any> = {}) => ({
id: 'test-project-id',
name: 'Test Project',
description: 'A test project',
url: 'https://example.com',
tags: ['test', 'example'],
category: 'developer-tools',
verified: true,
featured: false,
...overrides
})
/**
* Creates a mock API response object for testing
*
* @param data - Response data
* @param overrides - Optional properties to override default values
* @returns Mock API response object
*/
export function createMockApiResponse<T>(data: T, overrides: Partial<any> = {}) {
return {
success: true,
data,
message: 'Success',
...overrides
}
}
/**
* Creates a mock API error object for testing
*
* @param message - Error message
* @param status - HTTP status code (default: 500)
* @returns Mock API error object
*/
export const createMockApiError = (message = 'Test error', status = 500) => ({
success: false,
error: message,
status
})