Refactored check in IGListCollectionViewLayout for more reliable coverage

Summary:
The `[context invalidateDataSourceCounts] && _minimumInvalidatedSection == NSNotFound` condition was never getting triggered in any of our tests.

I tried to simulate this condition in my testing, but it doesn't seem possible to have `_minimumInvalidatedSection` set to `NSNotFound` when execution reaches this point. This is because the only public pathway I could see to `[context invalidateLayoutWithContext:]` was via the regular `invalidateLayout` method which always sets `_minimumInvalidatedSection` to 0 before continuing.

To solve this, since the resulting logic ends up being the same in the check above, I simply collapsed this check into the one above it.

Reviewed By: fabiomassimo

Differential Revision: D50000788

fbshipit-source-id: da0bf0cb16c98de95f802dfd35bbdf0e935e615f
This commit is contained in:
Tim Oliver 2023-10-11 22:30:36 -07:00 committed by Facebook GitHub Bot
parent 1c73ecb4e7
commit a511891376

View file

@ -389,12 +389,10 @@ static void adjustZIndexForAttributes(UICollectionViewLayoutAttributes *attribut
if (hasInvalidatedItemIndexPaths
|| [context invalidateEverything]
|| ([context invalidateDataSourceCounts] && _minimumInvalidatedSection == NSNotFound) // if count changed and we don't have information on the minimum invalidated section
|| context.ig_invalidateAllAttributes) {
// invalidates all
_minimumInvalidatedSection = 0;
} else if ([context invalidateDataSourceCounts] && _minimumInvalidatedSection == NSNotFound) {
// invalidate all if count changed and we don't have information on the minimum invalidated section
_minimumInvalidatedSection = 0;
}
if (context.ig_invalidateSupplementaryAttributes) {