Contributing to @esimplicity/stack-tests
Welcome! We appreciate your interest in contributing to the @esimplicity/stack-tests BDD testing framework.
Code of Conduct
Be respectful, inclusive, and constructive. We're all here to build better testing tools.
Ways to Contribute
Bug Reports
- Search existing issues first
- Use the bug report template
- Include:
- Framework version
- Playwright version
- Minimal reproduction
- Expected vs actual behavior
Feature Requests
- Open a GitHub issue with
[Feature]prefix - Describe the use case
- Explain why existing features don't solve it
- Suggest an implementation approach
Pull Requests
- Fork the repository
- Create a feature branch from
main - Follow coding standards
- Add tests for new functionality
- Update documentation
- Submit PR against
main
Pull Request Process
Branch Naming
feat/add-graphql-port # New feature
fix/api-timeout-handling # Bug fix
docs/update-api-guide # Documentation
refactor/cleanup-adapters # Refactoring
test/add-tui-unit-tests # Tests only
Commit Messages
Follow Conventional Commits:
# Format
<type>(<scope>): <description>
# Examples
feat(api): add retry logic for transient failures
fix(ui): resolve flaky selector timeout
docs(tui): add wizard testing guide
refactor(ports): extract common validation logic
test(adapters): add unit tests for auth adapter
Types: feat, fix, docs, refactor, test, chore, perf
PR Checklist
- Code follows project style guidelines
- Tests pass locally (
npm test) - Linter passes (
npm run lint) - New features have tests
- Documentation updated if needed
- Commit messages follow convention
- PR description explains the change
Review Process
- Automated Checks: CI runs tests and linting
- Code Review: Maintainer reviews within 3 business days
- Feedback: Address any requested changes
- Approval: Requires 1 maintainer approval
- Merge: Squash and merge to
main
Development Workflow
Quick Start
# Clone and setup
git clone https://github.com/kata/stack-tests.git
cd stack-tests
npm install
# Create branch
git checkout -b feat/my-feature
# Make changes and test
npm run build
npm test
# Commit and push
git add .
git commit -m "feat(scope): description"
git push origin feat/my-feature
Running Specific Tests
# Run all tests
npm test
# Run specific test file
npm test -- --grep "ApiPort"
# Run with verbose output
npm test -- --verbose
Getting Help
- Questions: Open a GitHub Discussion
- Bugs: Open a GitHub Issue
- Chat: Join our Discord (link in README)
Recognition
Contributors are recognized in:
- CHANGELOG.md for each release
- GitHub release notes
- README contributors section
Related Guides
- Development Setup - Detailed setup instructions
- Coding Standards - Style guidelines
- Testing - Testing the framework
- Adding Ports - Create new ports
- Adding Adapters - Create new adapters
- Adding Steps - Create step definitions
- Release Process - How releases work