-
Notifications
You must be signed in to change notification settings - Fork 943
Open
Description
Assalamu Alaikum,
I'm a new contributor interested in helping improve the test coverage for this project. After exploring the codebase, I noticed there's an opportunity to strengthen the testing foundation, which could help prevent regressions and make future contributions safer.
Current State
- ~24 test files primarily in the
appmodule - No code coverage tooling configured
- Limited shared test utilities
Proposal
I'd like to contribute a testing infrastructure improvement in phases:
Phase 1: Foundation (Ready)
- Add Kover plugin for code coverage reporting
- Create
common:test-utilsmodule with shared test infrastructure:TestDispatcherRulefor coroutines testingRxSchedulerRulefor RxJava testing- Flow test extensions (Turbine-based)
TestDataFactoryfor Quran-specific test fixtures
- Expand
QuranInfotests from 6 to 46 tests (boundary conditions, invalid inputs, edge cases)
Future Phases (if Phase 1 is welcomed)
- Phase 2: Model layer tests (SuraAyah, bookmarks)
- Phase 3: Repository/data layer tests
- Phase 4: Presenter/ViewModel tests
- Phase 5: Integration tests
Why This Approach
- Non-breaking: No changes to production code
- Incremental: Small, reviewable PRs
- Foundation-first: Utilities that make future testing easier
- Follows existing patterns: Matches project's code style and architecture
Questions for Maintainers
Before I submit a PR, I wanted to check:
- Is improving test coverage something you'd welcome?
- Any preferences on testing frameworks? (I used JUnit4, Truth, MockK, Turbine based on existing tests)
- Should the
test-utilsmodule live undercommon/or elsewhere? - Any specific areas you'd prioritize for testing?
I have Phase 1 ready locally and can submit a PR whenever you're ready to review. Happy to adjust the approach based on your feedback.
JazakAllahu Khairan for maintaining this beautiful project.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels