-
Notifications
You must be signed in to change notification settings - Fork 425
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
@W-17749645 Resolve failing unit tests caused by handling of strongSelf #3827
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## dev #3827 +/- ##
==========================================
+ Coverage 60.70% 61.22% +0.51%
==========================================
Files 233 233
Lines 21703 21710 +7
==========================================
+ Hits 13175 13291 +116
+ Misses 8528 8419 -109
|
} | ||
|
||
[strongSelf handleTokenEndpointResponse:completionBlock request:endpointReq data:data urlResponse:urlResponse]; | ||
[SFSDKEventBuilderHelper createAndStoreEvent:@"tokenRefresh" userAccount:[SFUserAccountManager sharedInstance].currentUser className:className attributes:nil]; | ||
if (strongSelf) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What was the test failure this was causing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everytime I'd run SalesforceSDKCore UnitTests, I was getting an Error that "a method should be called on main" . But after doing some debugging and tracking it down, it was because this we were setting a nil value into a dictionary during a test. Inside of SFSDKEventBuilderHelper line 57. The reason it was crashing every time was because a strongSelf was nil every time. The way the life cycle was set up for the test would cause self to be released and nil to be inserted in the dictionary. It was happening because of SalesforceSDKIdentityTests and TestSetupUtils synchronousAuthRefresh lifecycle. Let me know if you want sync up and chat about this too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a urlResponse when strongSelf is nil? Wondering if something is being deallocated too early
edit: oops missed the merge part
Resolve failing unit tests caused by handling of strongSelf in the accessTokenForRefresh:completion: method. Ensure the completion handler executes safely when self is deallocated, improving test stability and robustness of asynchronous operations.