-
-
Notifications
You must be signed in to change notification settings - Fork 68
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 <[email protected]>
@copilot
|
Co-authored-by: kawax <[email protected]>
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
static
return types withself
in theSheetsClient
class and related components to make mock testing of chained methods easier.Files Modified
src/Contracts/Factory.php
- Updated interface declarations fromstatic
toself
(10 methods)src/SheetsClient.php
- Changed method return types fromstatic
toself
(6 methods)src/Concerns/SheetsDrive.php
- Changed method return types fromstatic
toself
(1 method)src/Concerns/SheetsValues.php
- Changed method return types fromstatic
toself
(4 methods)src/Facades/Sheets.php
- Updated@method
annotations fromstatic static
tostatic self
(11 annotations)Methods Updated
setService()
,setAccessToken()
,spreadsheet()
,spreadsheetByTitle()
,sheet()
,sheetById()
,setDriveService()
,range()
,majorDimension()
,valueRenderOption()
,dateTimeRenderOption()
Why This Change?
The change from
static
toself
improves mock testing capabilities because:self
refers to the exact class where it's defined, making it more predictable for mockingstatic
uses 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.