apiVersion: capsule.dev/v0.1
kind: Capsule
name: ext-http-request-logger-dev
version: 0.1.0
type: template
purpose:
summary: 'Provides the development and testing environment for the `ext-http-request-logger`
capsule, including linting configurations, test suites, and test fixtures. This
capsule serves as a starting point for setting up a local development workflow.
'
owns:
- Test files for verifying the logger's functionality.
- ESLint configurations for code quality.
- Test fixtures (e.g., SSL certificates for HTTPS tests).
- Git ignore rules for common development artifacts.
does_not_own:
- The core `morgan` library logic.
- Continuous integration pipeline definitions.
interfaces:
requires:
- kind: library
name: morgan
from_capsule: ext-http-request-logger
description: The core HTTP request logger library being tested.
- kind: library
name: mocha
description: Test framework.
- kind: library
name: supertest
description: HTTP assertions for Node.js.
- kind: library
name: split
description: Split a stream into lines.
- kind: library
name: eslint
description: JavaScript linter.
- kind: library
name: nyc
description: Istanbul code coverage tool.
dependencies:
capsules:
- name: ext-http-request-logger
version: '>=0.1.0'
agent:
summary_for_ai: 'This capsule provides the testing and linting setup for `ext-http-request-logger`.
An AI agent working here should focus on writing new tests for new features, improving
test coverage, updating linting rules, or maintaining test fixtures. Ensure tests
are robust and cover edge cases, and that linting rules enforce good code practices
without being overly restrictive. The `NO_DEPRECATION` environment variable is
set for tests.
'
avoid:
- Modifying the core `morgan` logic in `index.js`.
- Adding production-specific code or dependencies.
verification:
invariants:
- All tests must pass for the `ext-http-request-logger` capsule.
- Linting rules must be consistently applied across the codebase.
x-reuse:
notes: 'The ESLint configurations (`.eslintrc.yml`, `test/.eslintrc.yml`, `.eslintignore`)
are tailored to the original project''s coding style and dependencies. Consumers
should review and adapt these to their own linting standards. The `test/fixtures`
contain specific SSL certificates used for testing HTTPS, which are unlikely to
be directly reusable and serve as examples. The `package.json` (which is in `ext-http-request-logger`)
lists `devDependencies` and `scripts` that are part of this development setup
and would need to be integrated or modified.
'
x-reconstruct:
install: install.json