{"_id":"@codepunter-labs/mock-gcp-workflows","_rev":"2-b7f9e24f032b993ccb6e662e96b66961","name":"@codepunter-labs/mock-gcp-workflows","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"@codepunter-labs/mock-gcp-workflows","version":"0.1.0","license":"MIT","_id":"@codepunter-labs/mock-gcp-workflows@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":"643faf60073577e8370858e0e05fcf23cc9d1731","tarball":"https://registry.npmjs.org/@codepunter-labs/mock-gcp-workflows/-/mock-gcp-workflows-0.1.0.tgz","fileCount":9,"integrity":"sha512-X/sEBEZrl+TpmO/8nHufidoVUuc+qMm/sBB4dkJDHmqr57L03aVbNCblEn9IPvvL5ZDyUFzBMF6dSRXffpMyQg==","signatures":[{"sig":"MEUCIQDWChTV4eXvMKZUCRbAWz7RSg3qlRsNUCl7pFnXneDhGAIgdPo1Jm7mVJb2V1uhDlSwC1YVi0wqpbFPizR13GxT8IY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44007},"main":"./dist/index.cjs","type":"module","_from":"file:codepunter-labs-mock-gcp-workflows-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/27ce03e2f48fc7a470b4bac21807e027/codepunter-labs-mock-gcp-workflows-0.1.0.tgz","_integrity":"sha512-X/sEBEZrl+TpmO/8nHufidoVUuc+qMm/sBB4dkJDHmqr57L03aVbNCblEn9IPvvL5ZDyUFzBMF6dSRXffpMyQg==","repository":{"url":"git+https://github.com/DERRICK-TORKORNOO/mock-sdks.git","type":"git","directory":"packages/mock-gcp-workflows"},"_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-gcp-workflows_0.1.0_1783371655681_0.8695216368658165","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@codepunter-labs/mock-gcp-workflows","version":"0.2.0","description":"TODO","repository":{"type":"git","url":"git+https://github.com/DERRICK-TORKORNOO/mock-sdks.git","directory":"packages/mock-gcp-workflows"},"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-gcp-workflows@0.2.0","bugs":{"url":"https://github.com/DERRICK-TORKORNOO/mock-sdks/issues"},"homepage":"https://github.com/DERRICK-TORKORNOO/mock-sdks#readme","_integrity":"sha512-ls/JHwYzpbGGyFNWnT1qwsaTtKBq/9glRcoteUbGoEaTMZT7/f3Y15yQdWt6om3vDpu/mPOW2q8one4o35CZfg==","_resolved":"/tmp/f87850e8fd9e507308abf34c6ed61b35/codepunter-labs-mock-gcp-workflows-0.2.0.tgz","_from":"file:codepunter-labs-mock-gcp-workflows-0.2.0.tgz","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-ls/JHwYzpbGGyFNWnT1qwsaTtKBq/9glRcoteUbGoEaTMZT7/f3Y15yQdWt6om3vDpu/mPOW2q8one4o35CZfg==","shasum":"d85395c97c59ab2038082490e9fa524b998edf5e","tarball":"https://registry.npmjs.org/@codepunter-labs/mock-gcp-workflows/-/mock-gcp-workflows-0.2.0.tgz","fileCount":9,"unpackedSize":44696,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwOZYTIVV0Cnxn4/OGxIld5oLbgjhW9u5XI8Pakoh5MwIgS+hJ8lRlIHMkSjlPIk+Bih6BkeT+dRrIIJ8uHfJfkGc="}]},"_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-gcp-workflows_0.2.0_1783446217959_0.8920013081891893"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-06T21:00:55.527Z","modified":"2026-07-07T17:43:38.228Z","0.1.0":"2026-07-06T21:00:55.811Z","0.2.0":"2026-07-07T17:43:38.091Z"},"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-gcp-workflows"},"description":"TODO","maintainers":[{"name":"codepunter","email":"derrickmensahtorkornoo@gmail.com"}],"readme":"# @codepunter-labs/mock-gcp-workflows\n\nMock SDK for Google Cloud Workflows API. Provides fully-typed mock implementations for testing Cloud Workflows integrations without making real API calls.\n\n[![npm version](https://badge.fury.io/js/@codepunter-labs/mock-gcp-workflows.svg)](https://www.npmjs.com/package/@codepunter-labs/mock-gcp-workflows)\n[![GitHub](https://img.shields.io/badge/GitHub-Repository-blue)](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-gcp-workflows)\n\n## Installation\n\n```bash\nnpm install @codepunter-labs/mock-gcp-workflows\n```\n\n## Features\n\n- **Workflows**: Deploy, describe, list, and delete workflows\n- **Executions**: Execute, run, list, and describe workflow executions\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-gcp-workflows\n- **Source Code**: [src/](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-gcp-workflows/src)\n- **Tests**: [tests/](https://github.com/DERRICK-TORKORNOO/mock-sdks/tree/main/packages/mock-gcp-workflows/tests)\n\n## Usage\n\n### Basic Setup\n\n```typescript\nimport { vi } from 'vitest';\nimport { createMockGcpWorkflows } from '@codepunter-labs/mock-gcp-workflows';\n\nconst workflows = createMockGcpWorkflows({ spy: vi.fn });\n```\n\n### Using with Jest\n\n```typescript\nimport { createMockGcpWorkflows } from '@codepunter-labs/mock-gcp-workflows';\n\nconst workflows = createMockGcpWorkflows({ spy: jest.fn });\n```\n\n### Example: Deploy Workflow\n\n```typescript\n// Default behavior - returns realistic mock data\nconst result = await workflows.deployWorkflow({\n  name: 'projects/test-project/locations/us-central1/workflows/my-workflow',\n  sourceContents: 'main:\\n  params: [args]\\n  steps:\\n    - call: log\\n      args: [\"Hello, ${args}\"]'\n});\n```\n\n### Example: Execute Workflow\n\n```typescript\nconst result = await workflows.executeWorkflow(\n  'projects/test-project/locations/us-central1/workflows/my-workflow',\n  { argument: '{\"name\": \"World\"}' }\n);\n```\n\n### Example: Override Mock Response\n\n```typescript\nimport { makeWorkflowResponse } from '@codepunter-labs/mock-gcp-workflows';\n\nworkflows.deployWorkflow.mockResolvedValue(\n  makeWorkflowResponse({ name: 'custom-workflow' })\n);\n```\n\n### Example: Error Simulation\n\n```typescript\nimport { MockErrors } from '@codepunter-labs/mock-core';\n\nworkflows.deployWorkflow.mockRejectedValue(\n  MockErrors.badRequest('Invalid workflow definition')\n);\n```\n\n## API Reference\n\n### MockGcpWorkflows\n\n- `deployWorkflow(request)` - Deploy workflow\n- `describeWorkflow(name)` - Get workflow details\n- `listWorkflows(parent)` - List workflows\n- `deleteWorkflow(name)` - Delete workflow\n- `executeWorkflow(parent, request)` - Execute workflow\n- `runWorkflow(parent, request)` - Execute workflow and wait for completion\n- `listExecutions(parent)` - List executions\n- `describeExecution(name)` - Get execution details\n\n### Fixture Factories\n\n- `makeWorkflowResponse(options?)` - Create workflow response\n- `makeExecutionResponse(options?)` - Create execution response\n- `makeExecuteWorkflowResponse(options?)` - Create execute workflow response\n\n## Testing Patterns\n\n### Test Success Path\n\n```typescript\ntest('should deploy workflow successfully', async () => {\n  const workflows = createMockGcpWorkflows({ spy: vi.fn });\n  \n  const result = await workflows.deployWorkflow(request);\n  \n  expect(result.state).toBe('ACTIVE');\n  expect(result.name).toContain('workflows');\n});\n```\n\n### Test Error Handling\n\n```typescript\ntest('should handle invalid workflow definition error', async () => {\n  const workflows = createMockGcpWorkflows({ spy: vi.fn });\n  \n  workflows.deployWorkflow.mockRejectedValue(\n    GcpWorkflowsErrors.invalidWorkflowDefinition()\n  );\n  \n  await expect(workflows.deployWorkflow(request)).rejects.toMatchObject({ message: /Invalid workflow definition/ });\n});\n```\n\n### Test with Custom Data\n\n```typescript\ntest('should use custom workflow state', async () => {\n  const workflows = createMockGcpWorkflows({ spy: vi.fn });\n  \n  workflows.deployWorkflow.mockResolvedValue(\n    makeWorkflowResponse({ state: 'UNAVAILABLE' })\n  );\n  \n  const result = await workflows.deployWorkflow(request);\n  expect(result.state).toBe('UNAVAILABLE');\n});\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}