{"_id":"@codepunter-labs/mock-moolre","_rev":"2-9c7a9c5978edca804d71ec4fcaf945da","name":"@codepunter-labs/mock-moolre","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@codepunter-labs/mock-moolre","version":"0.1.0","license":"MIT","_id":"@codepunter-labs/mock-moolre@0.1.0","maintainers":[{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"}],"homepage":"https://github.com/DERRICK-TORKORNOO/mock-sdks#readme","bugs":{"url":"https://github.com/DERRICK-TORKORNOO/mock-sdks/issues"},"dist":{"shasum":"e7f6c47203968c9a9403063bc18a15d519b2b9bc","tarball":"https://registry.npmjs.org/@codepunter-labs/mock-moolre/-/mock-moolre-0.1.0.tgz","fileCount":9,"integrity":"sha512-+WGih00w8uOzyvI99ZTHS8KuoYVisZ2WQhzOozQpmQHl58wwmODDxPgp5e/3u5YEnAILgS6/nCFKYXrz3NdCaA==","signatures":[{"sig":"MEUCIBlxQ1ZknZcCMdMsYHHelc60pi5L5qXl2dJp8RwD7u/nAiEAnoFiH4agBpT03berl2CYqcp6vlQ9zhXwmw775TDC1J0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60611},"main":"./dist/index.cjs","type":"module","_from":"file:codepunter-labs-mock-moolre-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"},"_resolved":"/tmp/3f4556e529904340da76a4b9fec903c4/codepunter-labs-mock-moolre-0.1.0.tgz","_integrity":"sha512-+WGih00w8uOzyvI99ZTHS8KuoYVisZ2WQhzOozQpmQHl58wwmODDxPgp5e/3u5YEnAILgS6/nCFKYXrz3NdCaA==","repository":{"url":"git+https://github.com/DERRICK-TORKORNOO/mock-sdks.git","type":"git","directory":"packages/mock-moolre"},"_npmVersion":"10.8.2","description":"TODO","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@codepunter-labs/mock-core":"0.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"*","vitest":"*","typescript":"*"},"_npmOperationalInternal":{"tmp":"tmp/mock-moolre_0.1.0_1783371655909_0.6094577265743286","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@codepunter-labs/mock-moolre","version":"0.2.0","description":"TODO","repository":{"type":"git","url":"git+https://github.com/DERRICK-TORKORNOO/mock-sdks.git","directory":"packages/mock-moolre"},"license":"MIT","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","dependencies":{"@codepunter-labs/mock-core":"0.2.0"},"devDependencies":{"tsup":"*","typescript":"*","vitest":"*"},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit"},"_id":"@codepunter-labs/mock-moolre@0.2.0","bugs":{"url":"https://github.com/DERRICK-TORKORNOO/mock-sdks/issues"},"homepage":"https://github.com/DERRICK-TORKORNOO/mock-sdks#readme","_integrity":"sha512-/rYNf3PnZLiLD5/YNcFUeX12K3WqNytIp065VVxpTgIqe0NM7bLOxsjh3WPIWIKKzMFCrIUURMgLu//Sol4EHw==","_resolved":"/tmp/b315fd3bebe867702012ad59c9210dcd/codepunter-labs-mock-moolre-0.2.0.tgz","_from":"file:codepunter-labs-mock-moolre-0.2.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-/rYNf3PnZLiLD5/YNcFUeX12K3WqNytIp065VVxpTgIqe0NM7bLOxsjh3WPIWIKKzMFCrIUURMgLu//Sol4EHw==","shasum":"b3dbec96233cf490b46684d45b6a4262e8ac4f91","tarball":"https://registry.npmjs.org/@codepunter-labs/mock-moolre/-/mock-moolre-0.2.0.tgz","fileCount":9,"unpackedSize":61240,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDRgp7HYOwvie6B8wHU3mm3gk6BqRissF+0pX34KVAwCwIgT09jnMhFC47gZwNo7QkKZb6SMYkVLJ/hEJJpIo9qTio="}]},"_npmUser":{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"},"directories":{},"maintainers":[{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mock-moolre_0.2.0_1783446218072_0.8812343302102004"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-06T21:00:55.724Z","modified":"2026-07-07T17:43:38.358Z","0.1.0":"2026-07-06T21:00:56.025Z","0.2.0":"2026-07-07T17:43:38.227Z"},"bugs":{"url":"https://github.com/DERRICK-TORKORNOO/mock-sdks/issues"},"license":"MIT","homepage":"https://github.com/DERRICK-TORKORNOO/mock-sdks#readme","repository":{"type":"git","url":"git+https://github.com/DERRICK-TORKORNOO/mock-sdks.git","directory":"packages/mock-moolre"},"description":"TODO","maintainers":[{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"}],"readme":"# @codepunter-labs/mock-moolre\n\nMock SDK for Moolre API. Provides fully-typed mock implementations for testing Moolre account, transfers, payments, and SMS integrations without making real API calls.\n\n[![npm version](https://badge.fury.io/js/@codepunter-labs/mock-moolre.svg)](https://www.npmjs.com/package/@codepunter-labs/mock-moolre)\n[![GitHub](https://img.shields.io/badge/GitHub-Repository-blue)](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-moolre)\n\n## Installation\n\n```bash\nnpm install @codepunter-labs/mock-moolre\n```\n\n## Features\n\n- **Account**: Create wallets, update accounts, check balance\n- **Transfers**: Send transfers\n- **Payments**: Process mobile money payments\n- **SMS**: Send SMS, generate and verify OTP\n- **Type-safe**: Full TypeScript support with accurate API types\n- **Test Framework Agnostic**: Works with Jest, Vitest, and other spy-based frameworks\n\n## Repository\n\n- **GitHub**: https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-moolre\n- **Source Code**: [src/](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-moolre/src)\n- **Tests**: [tests/](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-moolre/tests)\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport { vi } from 'vitest';\nimport { createMockMoolre } from '@codepunter-labs/mock-moolre';\n\nconst moolre = createMockMoolre({ spy: vi.fn });\n```\n\n### Using with Jest\n\n```typescript\nimport { createMockMoolre } from '@codepunter-labs/mock-moolre';\n\nconst moolre = createMockMoolre({ spy: jest.fn });\n```\n\n### Example: Create Wallet\n\n```typescript\n// Default behavior - returns realistic mock data\nconst result = await moolre.createWallet({\n  accountname: 'My Business LTD',\n  api: true,\n  callback: 'https://example.com/webhook'\n});\n```\n\n### Example: Send Transfer\n\n```typescript\nconst result = await moolre.sendTransfer({\n  accountnumber: '100000157291',\n  amount: 100,\n  recipient_account: '9207067319',\n  recipient_bank: '000013',\n  recipient_name: 'John Doe'\n});\n```\n\n### Example: Override Mock Response\n\n```typescript\nimport { makeWallet } from '@codepunter-labs/mock-moolre';\n\nmoolre.createWallet.mockResolvedValue({\n  status: 1,\n  code: 'WC02',\n  message: 'Wallet Created Successfully',\n  data: makeWallet({ accountname: 'Test Business' }),\n  go: null\n});\n```\n\n### Example: Error Simulation\n\n```typescript\nimport { MockErrors } from '@codepunter-labs/mock-core';\n\nmoolre.sendTransfer.mockRejectedValue(\n  MockErrors.badRequest('Insufficient balance')\n);\n```\n\n## API Reference\n\n### MockMoolre\n\n- `createWallet(request)` - Create wallet\n- `updateAccount(request)` - Update account\n- `getBalance()` - Get account balance\n- `sendTransfer(request)` - Send transfer\n- `processMobileMoneyPayment(request)` - Process mobile money payment\n- `sendSms(request)` - Send SMS\n- `generateOtp(request)` - Generate OTP\n- `verifyOtp(request)` - Verify OTP\n\n### Fixture Factories\n\n- `makeWallet(options?)` - Create wallet\n- `makeBalanceResponse(options?)` - Create balance response\n- `makeTransferResponse(options?)` - Create transfer response\n- `makePaymentResponse(options?)` - Create payment response\n- `makeSmsResponse(options?)` - Create SMS response\n- `makeOtpResponse(options?)` - Create OTP response\n- `makeVerifyOtpResponse(options?)` - Create OTP verification response\n\n## Testing Patterns\n\n### Test Success Path\n\n```typescript\ntest('should create wallet successfully', async () => {\n  const moolre = createMockMoolre({ spy: vi.fn });\n  \n  const result = await moolre.createWallet(request);\n  \n  expect(result.status).toBe(1);\n  expect(result.message).toBe('Wallet Created Successfully');\n});\n```\n\n### Test Error Handling\n\n```typescript\ntest('should handle insufficient balance error', async () => {\n  const moolre = createMockMoolre({ spy: vi.fn });\n  \n  moolre.sendTransfer.mockRejectedValue(\n    MoolreErrors.insufficientBalance()\n  );\n  \n  await expect(moolre.sendTransfer(request)).rejects.toMatchObject({ status: 0, code: 'TRF002' });\n});\n```\n\n### Test with Custom Data\n\n```typescript\ntest('should use custom wallet name', async () => {\n  const moolre = createMockMoolre({ spy: vi.fn });\n  \n  moolre.createWallet.mockResolvedValue({\n    status: 1,\n    code: 'WC02',\n    message: 'Wallet Created Successfully',\n    data: makeWallet({ accountname: 'Custom Business' }),\n    go: null\n  });\n  \n  const result = await moolre.createWallet(request);\n  expect(result.data.accountname).toBe('Custom Business');\n});\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}