Skip to main content
Glama
WorkspaceMemberMockFactory.ts1.92 kB
import { AttioWorkspaceMember } from '../../../src/types/attio.js'; export class WorkspaceMemberMockFactory { /** * Generate a mock workspace member with optional overrides */ static create( overrides: Partial<AttioWorkspaceMember> = {} ): AttioWorkspaceMember { const timestamp = new Date().toISOString(); const randomId = `mock-member-${Date.now()}-${Math.random() .toString(36) .substr(2, 9)}`; return { id: { workspace_member_id: randomId, workspace_id: 'mock-workspace-id', ...overrides.id, }, first_name: 'John', last_name: 'Doe', email_address: 'john.doe@example.com', access_level: 'editor' as const, created_at: timestamp, updated_at: timestamp, ...overrides, }; } /** * Generate multiple mock workspace members */ static createMany( count: number, overrides: Partial<AttioWorkspaceMember> = {} ): AttioWorkspaceMember[] { return Array.from({ length: count }, (_, index) => this.create({ first_name: `User${index + 1}`, last_name: 'Test', email_address: `user${index + 1}@example.com`, ...overrides, }) ); } /** * Generate a mock admin workspace member */ static createAdmin( overrides: Partial<AttioWorkspaceMember> = {} ): AttioWorkspaceMember { return this.create({ first_name: 'Admin', last_name: 'User', email_address: 'admin@example.com', access_level: 'admin' as const, ...overrides, }); } /** * Generate a mock viewer workspace member */ static createViewer( overrides: Partial<AttioWorkspaceMember> = {} ): AttioWorkspaceMember { return this.create({ first_name: 'Viewer', last_name: 'User', email_address: 'viewer@example.com', access_level: 'viewer' as const, ...overrides, }); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kesslerio/attio-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server