/** * Mock data functions for test mode */ /** * Simulates Microsoft Graph API responses for testing * @param {string} method - HTTP method * @param {string} path - API path * @param {object} data - Request data * @param {object} queryParams - Query parameters * @returns {object} - Simulated API response */ function simulateGraphAPIResponse(method, path, data, queryParams) { console.error(`Simulating response for: ${method} ${path}`); if (method === 'GET') { if (path.includes('messages') && !path.includes('sendMail')) { // Simulate a successful email list/search response if (path.includes('/messages/')) { // Single email response return { id: "simulated-email-id", subject: "Simulated Email Subject", from: { emailAddress: { name: "Simulated Sender", address: "sender@example.com" } }, toRecipients: [{ emailAddress: { name: "Recipient Name", address: "recipient@example.com" } }], ccRecipients: [], bccRecipients: [], receivedDateTime: new Date().toISOString(), bodyPreview: "This is a simulated email preview...", body: { contentType: "text", content: "This is the full content of the simulated email. Since we can't connect to the real Microsoft Graph API, we're returning this placeholder content instead." }, hasAttachments: false, importance: "normal", isRead: false, internetMessageHeaders: [] }; } else { // Email list response return { value: [ { id: "simulated-email-1", subject: "Important Meeting Tomorrow", from: { emailAddress: { name: "John Doe", address: "john@example.com" } }, toRecipients: [{ emailAddress: { name: "You", address: "you@example.com" } }], ccRecipients: [], receivedDateTime: new Date().toISOString(), bodyPreview: "Let's discuss the project status...", hasAttachments: false, importance: "high", isRead: false }, { id: "simulated-email-2", subject: "Weekly Report", from: { emailAddress: { name: "Jane Smith", address: "jane@example.com" } }, toRecipients: [{ emailAddress: { name: "You", address: "you@example.com" } }], ccRecipients: [], receivedDateTime: new Date(Date.now() - 86400000).toISOString(), // Yesterday bodyPreview: "Please find attached the weekly report...", hasAttachments: true, importance: "normal", isRead: true }, { id: "simulated-email-3", subject: "Question about the project", from: { emailAddress: { name: "Bob Johnson", address: "bob@example.com" } }, toRecipients: [{ emailAddress: { name: "You", address: "you@example.com" } }], ccRecipients: [], receivedDateTime: new Date(Date.now() - 172800000).toISOString(), // 2 days ago bodyPreview: "I had a question about the timeline...", hasAttachments: false, importance: "normal", isRead: false } ] }; } } else if (path.includes('mailFolders')) { // Simulate a mail folders response return { value: [ { id: "inbox", displayName: "Inbox" }, { id: "drafts", displayName: "Drafts" }, { id: "sentItems", displayName: "Sent Items" }, { id: "deleteditems", displayName: "Deleted Items" } ] }; } } else if (method === 'POST' && path.includes('sendMail')) { // Simulate a successful email send return {}; } // If we get here, we don't have a simulation for this endpoint console.error(`No simulation available for: ${method} ${path}`); return {}; } module.exports = { simulateGraphAPIResponse };