Added tests to FocusedInputHolder. Refactored code, reduced duplications, aligned to JS-based namings.
💡 Motivation and Context
I decided to fully cover a new functionality with unit tests. The ViewHierarchyTraversal was already covered, so I decided to cover other classes. The next one FocusedInputHolder. This is a very simple class, so it contains two unit tests:
check that weak references implemented correctly;
check that focus actually calls expected methods.
Along with that I did some refactoring: reduced code fragmentation, reduced code duplication, aligned API to look similar to RN JS API (and hide internals).
📜 Description
Added tests to
FocusedInputHolder
. Refactored code, reduced duplications, aligned to JS-based namings.💡 Motivation and Context
I decided to fully cover a new functionality with unit tests. The
ViewHierarchyTraversal
was already covered, so I decided to cover other classes. The next oneFocusedInputHolder
. This is a very simple class, so it contains two unit tests:focus
actually calls expected methods.Along with that I did some refactoring: reduced code fragmentation, reduced code duplication, aligned API to look similar to RN JS API (and hide internals).
📢 Changelog
iOS
focus
instead ofrequestFocus
;FocusedInputHolder.shared.requestFocus()
->FocusedInputHolder.shared.focus()
;Android
FocusedInputHolderTests
focus
extension to avoid code duplication;focus
extension instead ofrequestFocus
/requestFocusFromJS
;FocusedInputHolder.requestFocus()
->FocusedInputHolder.focus()
;FocusedInputHolder
works with plainEditText
(i. e. no react-specific code);get
toFocusedInputHolder
;🤔 How Has This Been Tested?
Tested via CI.
📝 Checklist