facebookarchive / ios-snapshot-test-case

Snapshot view unit tests for iOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iOS - forcing a UIView to have `userInterfaceStyle` produces strange snapshot results

georgegillams opened this issue · comments

This seems to be an issue with XCTest/XCode as it happens even if I use native methods to convert a view to an image within a XCTest context, but I thought it would still be worth tracking here too, in case you have any ideas or workarounds.

Open radar bug: http://www.openradar.appspot.com/7404933

Essentially I have a test where I define two dynamic colours:

  • dynamicColor1 is green in dark mode, purple in light mode, and black in iOS < 13.0
  • dynamicColor2 is orange in dark mode, cyan in light mode, and black in iOS < 13.0

For the light mode snapshot, I simply take a screenshot of the UIView.
For the dark mode snapshot, I create a new instance of the View, set userInterfaceStyle to dark and take a screenshot of the UIView

As you can see in the test snapshots, the dynamic text colour is being correctly applied when I force userInterfaceStyle on the UIView, while the dynamic background colour is not.

image

This repository has been archived, please open this PR here: https://github.com/uber/ios-snapshot-test-case

This repository has been archived, please open this PR here: https://github.com/uber/ios-snapshot-test-case

Thanks for the heads-up. New issue opened here uber/ios-snapshot-test-case#122