testing-tdd-london-example-1-service-orchestration-test
Sub-skill of testing-tdd-london: Example 1: Service Orchestration Test (+2).
Best use case
testing-tdd-london-example-1-service-orchestration-test is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Sub-skill of testing-tdd-london: Example 1: Service Orchestration Test (+2).
Teams using testing-tdd-london-example-1-service-orchestration-test should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/example-1-service-orchestration-test/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How testing-tdd-london-example-1-service-orchestration-test Compares
| Feature / Agent | testing-tdd-london-example-1-service-orchestration-test | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Sub-skill of testing-tdd-london: Example 1: Service Orchestration Test (+2).
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Example 1: Service Orchestration Test (+2)
## Example 1: Service Orchestration Test
```typescript
describe('Service Collaboration', () => {
let mockServiceA: jest.Mocked<ServiceA>;
let mockServiceB: jest.Mocked<ServiceB>;
let mockServiceC: jest.Mocked<ServiceC>;
let orchestrator: ServiceOrchestrator;
beforeEach(() => {
mockServiceA = {
prepare: jest.fn().mockResolvedValue({ data: 'prepared' })
};
mockServiceB = {
process: jest.fn().mockResolvedValue({ result: 'processed' })
};
mockServiceC = {
finalize: jest.fn().mockResolvedValue({ status: 'complete' })
};
orchestrator = new ServiceOrchestrator(
mockServiceA,
mockServiceB,
mockServiceC
);
});
it('should coordinate dependencies in correct order', async () => {
await orchestrator.execute(task);
// Verify coordination sequence
expect(mockServiceA.prepare).toHaveBeenCalledBefore(mockServiceB.process);
expect(mockServiceB.process).toHaveBeenCalledBefore(mockServiceC.finalize);
// Verify data flow between services
expect(mockServiceB.process).toHaveBeenCalledWith(
expect.objectContaining({ data: 'prepared' })
);
expect(mockServiceC.finalize).toHaveBeenCalledWith(
expect.objectContaining({ result: 'processed' })
);
});
});
```
## Example 2: Error Handling Verification
```typescript
describe('Error Handling', () => {
it('should handle repository failure gracefully', async () => {
const mockRepository = {
save: jest.fn().mockRejectedValue(new Error('Connection failed'))
};
const mockLogger = {
error: jest.fn()
};
const mockRetry = {
attempt: jest.fn().mockResolvedValue(false)
};
const service = new UserService(mockRepository, mockLogger, mockRetry);
await expect(service.register(userData)).rejects.toThrow('Registration failed');
// Verify error handling interactions
expect(mockLogger.error).toHaveBeenCalledWith(
'Repository save failed',
expect.objectContaining({ error: expect.any(Error) })
);
expect(mockRetry.attempt).toHaveBeenCalledTimes(3);
});
});
```
## Example 3: Swarm Coordination Testing
```typescript
describe('Swarm Test Coordination', () => {
let swarmCoordinator: SwarmCoordinator;
beforeAll(async () => {
// Signal other swarm agents
await swarmCoordinator.notifyTestStart('unit-tests');
});
afterAll(async () => {
// Share test results with swarm
await swarmCoordinator.shareResults(testResults);
});
it('should share mock contracts across swarm', () => {
const sharedMocks = {
userRepository: createSwarmMock('UserRepository', {
save: jest.fn(),
findByEmail: jest.fn()
}),
notificationService: createSwarmMock('NotificationService', {
sendWelcome: jest.fn()
})
};
// Other swarm agents can verify against these contracts
swarmCoordinator.publishContracts(sharedMocks);
});
});
```Related Skills
test-oversized-skill
A test fixture skill that exceeds 200 lines with multiple H2/H3 sections for split testing.
digitalmodel-worktree-test-execution-with-shared-venv
Run digitalmodel tests from isolated worktrees without uv editable-dependency failures by using the main repo's existing virtualenv and PYTHONPATH.
blender-worktree-test-hardening
Recover and harden digitalmodel Blender automation work in isolated worktrees when uv/editable dependency paths break and local machines lack a Blender executable.
work-around-merge-conflicts-in-test-execution
Run tests when repo has unresolved merge conflicts in config files by bypassing broken configs and executing tests directly
test-driven-hook-debugging
Debugging and fixing shell hooks by writing isolated test suites first, then using test failures to pinpoint logic bugs
multi-file-tax-prep-orchestration
Structured approach to complex multi-file tax return preparation with traceability and planning
preserved-plan-refile-with-attested-review-wave
Reopen a previously closed GitHub issue with a preserved local plan, rewrite it into a conservative draft, and drive iterative attested adversarial review waves until it is truly approval-ready.
dummy-backfill-test
Temporary validation skill used to test skill backfill and commit flows.
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.
skeleton-test-coverage-uplift
Write test suites for SKELETON packages (zero test coverage) to uplift them to DEVELOPMENT maturity. Handles non-importable modules, optional dependencies, separate sub-repos, and Flask/web packages without runtime.
background-service-manager
Create and manage long-running background processes with start/stop/status controls, logging, and monitoring. Use for batch processing jobs, data pipelines, continuous services, or any long-running tasks.
fitness-for-service
Expert FFS engineer applying API 579-1/ASME FFS-1 methodology to corroded and damaged offshore equipment. Use for RSF calculations, MAWP re-rating, remaining life projection, UT grid inspection data, run-repair-replace decisions, and Level 1/2/3 assessment workflows. type: reference