(fileIndex)
| 87 | } |
| 88 | |
| 89 | function generateFileContent(fileIndex) { |
| 90 | const numMessages = Math.floor(Math.random() * 10) + 5 // 5-15 messages per file |
| 91 | |
| 92 | const messages = [] |
| 93 | for (let i = 0; i < numMessages; i++) { |
| 94 | const messageId = `msg_${fileIndex}_${i}` |
| 95 | const defaultMessage = selectRandomMessage() |
| 96 | messages.push({ |
| 97 | id: messageId, |
| 98 | defaultMessage, |
| 99 | description: `Message ${i} in file ${fileIndex}`, |
| 100 | }) |
| 101 | } |
| 102 | |
| 103 | // Mix different patterns: defineMessages, defineMessage, formatMessage, FormattedMessage |
| 104 | const formatType = fileIndex % 4 |
| 105 | |
| 106 | if (formatType === 0) { |
| 107 | // defineMessages pattern (group of messages) |
| 108 | const imports = `import {defineMessages} from 'react-intl'\n\n` |
| 109 | const messagesObj = messages |
| 110 | .map( |
| 111 | msg => ` ${msg.id}: { |
| 112 | id: '${msg.id}', |
| 113 | defaultMessage: '${msg.defaultMessage.replace(/'/g, "\\'")}', |
| 114 | description: '${msg.description}', |
| 115 | }` |
| 116 | ) |
| 117 | .join(',\n') |
| 118 | |
| 119 | const component = ` |
| 120 | const messages = defineMessages({ |
| 121 | ${messagesObj} |
| 122 | }) |
| 123 | |
| 124 | export function Component${fileIndex}() { |
| 125 | return <div>{/* Component content */}</div> |
| 126 | } |
| 127 | ` |
| 128 | return imports + component |
| 129 | } else if (formatType === 1) { |
| 130 | // defineMessage pattern (individual messages) |
| 131 | const imports = `import {defineMessage} from 'react-intl'\n\n` |
| 132 | const messageDefs = messages |
| 133 | .map( |
| 134 | msg => `const ${msg.id} = defineMessage({ |
| 135 | id: '${msg.id}', |
| 136 | defaultMessage: '${msg.defaultMessage.replace(/'/g, "\\'")}', |
| 137 | description: '${msg.description}', |
| 138 | })` |
| 139 | ) |
| 140 | .join('\n\n') |
| 141 | |
| 142 | const component = ` |
| 143 | export function Component${fileIndex}() { |
| 144 | return <div>{/* Component content */}</div> |
| 145 | } |
| 146 | ` |
no test coverage detected