-
-
Notifications
You must be signed in to change notification settings - Fork 69
Replace static return types with self in SheetsClient for improved mock testing #42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
⏳ I'm reviewing this pull request for security vulnerabilities and code quality issues. I'll provide an update when I'm done |
|
✅ I finished the code review, and didn't find any security or code quality issues. |
…sses Co-authored-by: kawax <1502086+kawax@users.noreply.github.com>
|
@copilot |
Co-authored-by: kawax <1502086+kawax@users.noreply.github.com>
I've implemented the modernization you mentioned. Updated all test code to use the modern |
|
Diff Coverage: The code coverage on the diff in this pull request is 100.0%. Total Coverage: This PR will not change total coverage. 🛟 Help
|
Changes
This PR replaces all
staticreturn types withselfin theSheetsClientclass and related components to make mock testing of chained methods easier.Files Modified
src/Contracts/Factory.php- Updated interface declarations fromstatictoself(10 methods)src/SheetsClient.php- Changed method return types fromstatictoself(6 methods)src/Concerns/SheetsDrive.php- Changed method return types fromstatictoself(1 method)src/Concerns/SheetsValues.php- Changed method return types fromstatictoself(4 methods)src/Facades/Sheets.php- Updated@methodannotations fromstatic statictostatic self(11 annotations)Methods Updated
setService(),setAccessToken(),spreadsheet(),spreadsheetByTitle(),sheet(),sheetById(),setDriveService(),range(),majorDimension(),valueRenderOption(),dateTimeRenderOption()Why This Change?
The change from
statictoselfimproves mock testing capabilities because:selfrefers to the exact class where it's defined, making it more predictable for mockingstaticuses late static binding which can be harder to mock in inheritance scenariosTesting
Example Usage (unchanged)
The functionality remains identical for end users, but developers writing tests can now mock chained method calls more reliably.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.