@hedia/recommendation-screen 2.1.34-alpha.9 → 2.1.35-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/{src → dist/src}/RecommendationScreen.d.ts +3 -3
  2. package/{src → dist/src}/RecommendationScreen.js +6 -6
  3. package/{src → dist/src}/components/Header.js +2 -2
  4. package/{src → dist/src}/components/InvisibleNumberInput.js +1 -1
  5. package/{src → dist/src}/components/LimitationMessage.js +1 -1
  6. package/{src → dist/src}/components/RecommendationModal.js +3 -3
  7. package/{src → dist/src}/components/RecommendedCarbs.js +2 -2
  8. package/{src → dist/src}/components/RecommendedInsulin.js +2 -2
  9. package/{src → dist/src}/components/Remeasure.js +4 -2
  10. package/{src → dist/src}/components/TransferToLogbook.js +1 -1
  11. package/{src → dist/src}/components/TwoOptionModal.js +3 -3
  12. package/{src → dist/src}/components/activity/Activity.js +3 -1
  13. package/{src → dist/src}/components/activity/ActivityIcon.d.ts +2 -2
  14. package/{src → dist/src}/components/activity/ActivityIcon.js +4 -4
  15. package/{src → dist/src}/components/activity/ActivityIntensity.js +3 -1
  16. package/{src → dist/src}/components/mood/MoodIcon.js +2 -2
  17. package/{src → dist/src}/locale/da/messages.po +92 -92
  18. package/{src → dist/src}/locale/de/messages.po +92 -92
  19. package/{src → dist/src}/locale/en/messages.po +92 -92
  20. package/{src → dist/src}/locale/es/messages.js +1 -1
  21. package/{src → dist/src}/locale/es/messages.po +92 -92
  22. package/{src → dist/src}/locale/fr/messages.po +92 -92
  23. package/{src → dist/src}/locale/it/messages.po +92 -92
  24. package/{src → dist/src}/types/enum.d.ts +15 -11
  25. package/{src → dist/src}/types/enum.js +13 -9
  26. package/package.json +22 -21
  27. package/.flowconfig +0 -65
  28. package/.github/pull_request_template.md +0 -6
  29. package/.github/workflows/ci.yaml +0 -17
  30. package/.github/workflows/publish-release-package.yaml +0 -17
  31. package/.github/workflows/validate-pr-title.yaml +0 -20
  32. package/.linguirc +0 -6
  33. package/.npmpackagejsonlintrc.json +0 -12
  34. package/.prettierignore +0 -2
  35. package/.prettierrc +0 -25
  36. package/Changelog.md +0 -9
  37. package/android/app/BUCK +0 -55
  38. package/android/app/build.gradle +0 -228
  39. package/android/app/build_defs.bzl +0 -19
  40. package/android/app/debug.keystore +0 -0
  41. package/android/app/proguard-rules.pro +0 -10
  42. package/android/app/src/debug/AndroidManifest.xml +0 -13
  43. package/android/app/src/debug/java/com/hediarecommendationscreen/ReactNativeFlipper.java +0 -72
  44. package/android/app/src/main/AndroidManifest.xml +0 -25
  45. package/android/app/src/main/assets/fonts/AntDesign.ttf +0 -0
  46. package/android/app/src/main/assets/fonts/Entypo.ttf +0 -0
  47. package/android/app/src/main/assets/fonts/EvilIcons.ttf +0 -0
  48. package/android/app/src/main/assets/fonts/Feather.ttf +0 -0
  49. package/android/app/src/main/assets/fonts/FontAwesome.ttf +0 -0
  50. package/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf +0 -0
  51. package/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf +0 -0
  52. package/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf +0 -0
  53. package/android/app/src/main/assets/fonts/Fontisto.ttf +0 -0
  54. package/android/app/src/main/assets/fonts/Foundation.ttf +0 -0
  55. package/android/app/src/main/assets/fonts/Ionicons.ttf +0 -0
  56. package/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf +0 -0
  57. package/android/app/src/main/assets/fonts/MaterialIcons.ttf +0 -0
  58. package/android/app/src/main/assets/fonts/Octicons.ttf +0 -0
  59. package/android/app/src/main/assets/fonts/Roboto-Black.ttf +0 -0
  60. package/android/app/src/main/assets/fonts/Roboto-BlackItalic.ttf +0 -0
  61. package/android/app/src/main/assets/fonts/Roboto-Bold.ttf +0 -0
  62. package/android/app/src/main/assets/fonts/Roboto-BoldItalic.ttf +0 -0
  63. package/android/app/src/main/assets/fonts/Roboto-Italic.ttf +0 -0
  64. package/android/app/src/main/assets/fonts/Roboto-Light.ttf +0 -0
  65. package/android/app/src/main/assets/fonts/Roboto-LightItalic.ttf +0 -0
  66. package/android/app/src/main/assets/fonts/Roboto-Medium.ttf +0 -0
  67. package/android/app/src/main/assets/fonts/Roboto-MediumItalic.ttf +0 -0
  68. package/android/app/src/main/assets/fonts/Roboto-Regular.ttf +0 -0
  69. package/android/app/src/main/assets/fonts/Roboto-Thin.ttf +0 -0
  70. package/android/app/src/main/assets/fonts/Roboto-ThinItalic.ttf +0 -0
  71. package/android/app/src/main/assets/fonts/SimpleLineIcons.ttf +0 -0
  72. package/android/app/src/main/assets/fonts/Zocial.ttf +0 -0
  73. package/android/app/src/main/java/com/hediarecommendationscreen/MainActivity.java +0 -15
  74. package/android/app/src/main/java/com/hediarecommendationscreen/MainApplication.java +0 -80
  75. package/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  76. package/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  77. package/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  78. package/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  79. package/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  80. package/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  81. package/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  82. package/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  83. package/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  84. package/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  85. package/android/app/src/main/res/values/color.xml +0 -3
  86. package/android/app/src/main/res/values/strings.xml +0 -3
  87. package/android/app/src/main/res/values/styles.xml +0 -11
  88. package/android/build.gradle +0 -38
  89. package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  90. package/android/gradle/wrapper/gradle-wrapper.properties +0 -5
  91. package/android/gradle.properties +0 -28
  92. package/android/gradlew +0 -185
  93. package/android/gradlew.bat +0 -89
  94. package/android/settings.gradle +0 -3
  95. package/assets/fonts/Roboto/LICENSE.txt +0 -202
  96. package/assets/fonts/Roboto/Roboto-Black.ttf +0 -0
  97. package/assets/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
  98. package/assets/fonts/Roboto/Roboto-Bold.ttf +0 -0
  99. package/assets/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
  100. package/assets/fonts/Roboto/Roboto-Italic.ttf +0 -0
  101. package/assets/fonts/Roboto/Roboto-Light.ttf +0 -0
  102. package/assets/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
  103. package/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
  104. package/assets/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
  105. package/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
  106. package/assets/fonts/Roboto/Roboto-Thin.ttf +0 -0
  107. package/assets/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
  108. package/babel.config.js +0 -18
  109. package/ignore-git.sh +0 -46
  110. package/ignore-publish.sh +0 -33
  111. package/index-git.sh +0 -5
  112. package/ios/HediaRecommendationScreen/AppDelegate.h +0 -8
  113. package/ios/HediaRecommendationScreen/AppDelegate.m +0 -61
  114. package/ios/HediaRecommendationScreen/Images.xcassets/AppIcon.appiconset/Contents.json +0 -38
  115. package/ios/HediaRecommendationScreen/Images.xcassets/Contents.json +0 -6
  116. package/ios/HediaRecommendationScreen/Info.plist +0 -90
  117. package/ios/HediaRecommendationScreen/LaunchScreen.storyboard +0 -47
  118. package/ios/HediaRecommendationScreen/main.m +0 -9
  119. package/ios/HediaRecommendationScreen.xcodeproj/project.pbxproj +0 -778
  120. package/ios/HediaRecommendationScreen.xcodeproj/xcshareddata/xcschemes/HediaRecommendationScreen-tvOS.xcscheme +0 -88
  121. package/ios/HediaRecommendationScreen.xcodeproj/xcshareddata/xcschemes/HediaRecommendationScreen.xcscheme +0 -88
  122. package/ios/HediaRecommendationScreen.xcworkspace/contents.xcworkspacedata +0 -10
  123. package/ios/HediaRecommendationScreen.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  124. package/ios/HediaRecommendationScreenTests/HediaRecommendationScreenTests.m +0 -65
  125. package/ios/HediaRecommendationScreenTests/Info.plist +0 -24
  126. package/ios/Podfile +0 -32
  127. package/ios/Podfile.lock +0 -544
  128. package/jest.config.js +0 -197
  129. package/jest.mock.js +0 -1
  130. package/metro.config.js +0 -17
  131. package/react-native.config.js +0 -7
  132. package/src/__tests__/RecommendationScreen.test.d.ts +0 -1
  133. package/src/__tests__/RecommendationScreen.test.js +0 -965
  134. package/src/__tests__/RecommendationUtils.test.d.ts +0 -1
  135. package/src/__tests__/RecommendationUtils.test.js +0 -216
  136. package/src/__tests__/Translate.test.d.ts +0 -1
  137. package/src/__tests__/Translate.test.js +0 -27
  138. package/src/__tests__/Utils.test.d.ts +0 -1
  139. package/src/__tests__/Utils.test.js +0 -66
  140. package/src/__tests__/Validations.test.d.ts +0 -1
  141. package/src/__tests__/Validations.test.js +0 -465
  142. package/src/__tests__/components/Activity.test.d.ts +0 -1
  143. package/src/__tests__/components/Activity.test.js +0 -86
  144. package/src/__tests__/components/Emotion.test.d.ts +0 -1
  145. package/src/__tests__/components/Emotion.test.js +0 -70
  146. package/src/__tests__/components/Header.test.d.ts +0 -1
  147. package/src/__tests__/components/Header.test.js +0 -36
  148. package/src/__tests__/components/InfoBars.test.d.ts +0 -1
  149. package/src/__tests__/components/InfoBars.test.js +0 -130
  150. package/src/__tests__/components/InvisibleNumberInput.test.d.ts +0 -1
  151. package/src/__tests__/components/InvisibleNumberInput.test.js +0 -160
  152. package/src/__tests__/components/LimitationMessage.test.d.ts +0 -1
  153. package/src/__tests__/components/LimitationMessage.test.js +0 -47
  154. package/src/__tests__/components/MoodIcon.test.d.ts +0 -1
  155. package/src/__tests__/components/MoodIcon.test.js +0 -30
  156. package/src/__tests__/components/RecommendationModal.test.d.ts +0 -1
  157. package/src/__tests__/components/RecommendationModal.test.js +0 -98
  158. package/src/__tests__/components/RecommendedCarbs.test.d.ts +0 -1
  159. package/src/__tests__/components/RecommendedCarbs.test.js +0 -120
  160. package/src/__tests__/components/RecommendedInsulin.test.d.ts +0 -1
  161. package/src/__tests__/components/RecommendedInsulin.test.js +0 -154
  162. package/src/__tests__/components/Remeasure.test.d.ts +0 -1
  163. package/src/__tests__/components/Remeasure.test.js +0 -78
  164. package/src/__tests__/components/TransferToLogbook.test.d.ts +0 -1
  165. package/src/__tests__/components/TransferToLogbook.test.js +0 -30
  166. package/src/__tests__/components/TwoOptionModal.test.d.ts +0 -1
  167. package/src/__tests__/components/TwoOptionModal.test.js +0 -65
  168. package/src/__tests__/utils.d.ts +0 -16
  169. package/src/__tests__/utils.js +0 -126
  170. package/tsconfig.json +0 -72
  171. package/tslint.json +0 -193
  172. package/typedoc.json +0 -13
  173. /package/{index.d.ts → dist/index.d.ts} +0 -0
  174. /package/{index.js → dist/index.js} +0 -0
  175. /package/{src → dist/src}/assets/activity/Cyclist.png +0 -0
  176. /package/{src → dist/src}/assets/activity/Other.png +0 -0
  177. /package/{src → dist/src}/assets/activity/Runner.png +0 -0
  178. /package/{src → dist/src}/assets/activity/Swimmer.png +0 -0
  179. /package/{src → dist/src}/assets/activity/Walk.png +0 -0
  180. /package/{src → dist/src}/assets/mood/happy.png +0 -0
  181. /package/{src → dist/src}/assets/mood/happy_active.png +0 -0
  182. /package/{src → dist/src}/assets/mood/neutral.png +0 -0
  183. /package/{src → dist/src}/assets/mood/neutral_active.png +0 -0
  184. /package/{src → dist/src}/assets/mood/sad.png +0 -0
  185. /package/{src → dist/src}/assets/mood/sad_active.png +0 -0
  186. /package/{src → dist/src}/assets/mood/semi_happy.png +0 -0
  187. /package/{src → dist/src}/assets/mood/semi_happy_active.png +0 -0
  188. /package/{src → dist/src}/assets/mood/semi_sad.png +0 -0
  189. /package/{src → dist/src}/assets/mood/semi_sad_active.png +0 -0
  190. /package/{src → dist/src}/components/Header.d.ts +0 -0
  191. /package/{src → dist/src}/components/Icon.d.ts +0 -0
  192. /package/{src → dist/src}/components/Icon.js +0 -0
  193. /package/{src → dist/src}/components/InfoBars.d.ts +0 -0
  194. /package/{src → dist/src}/components/InfoBars.js +0 -0
  195. /package/{src → dist/src}/components/InvisibleNumberInput.d.ts +0 -0
  196. /package/{src → dist/src}/components/LimitationMessage.d.ts +0 -0
  197. /package/{src → dist/src}/components/LineSeparator.d.ts +0 -0
  198. /package/{src → dist/src}/components/LineSeparator.js +0 -0
  199. /package/{src → dist/src}/components/RecentInsulin.d.ts +0 -0
  200. /package/{src → dist/src}/components/RecentInsulin.js +0 -0
  201. /package/{src → dist/src}/components/RecommendationModal.d.ts +0 -0
  202. /package/{src → dist/src}/components/RecommendedCarbs.d.ts +0 -0
  203. /package/{src → dist/src}/components/RecommendedInsulin.d.ts +0 -0
  204. /package/{src → dist/src}/components/Remeasure.d.ts +0 -0
  205. /package/{src → dist/src}/components/TransferToLogbook.d.ts +0 -0
  206. /package/{src → dist/src}/components/TwoOptionModal.d.ts +0 -0
  207. /package/{src → dist/src}/components/activity/Activity.d.ts +0 -0
  208. /package/{src → dist/src}/components/activity/ActivityIntensity.d.ts +0 -0
  209. /package/{src → dist/src}/components/mood/Emotion.d.ts +0 -0
  210. /package/{src → dist/src}/components/mood/Emotion.js +0 -0
  211. /package/{src → dist/src}/components/mood/MoodIcon.d.ts +0 -0
  212. /package/{src → dist/src}/locale/da/messages.js +0 -0
  213. /package/{src → dist/src}/locale/de/messages.js +0 -0
  214. /package/{src → dist/src}/locale/en/messages.js +0 -0
  215. /package/{src → dist/src}/locale/fr/messages.js +0 -0
  216. /package/{src → dist/src}/locale/i18nUtils.d.ts +0 -0
  217. /package/{src → dist/src}/locale/i18nUtils.js +0 -0
  218. /package/{src → dist/src}/locale/it/messages.js +0 -0
  219. /package/{src → dist/src}/types/types.d.ts +0 -0
  220. /package/{src → dist/src}/types/types.js +0 -0
  221. /package/{src → dist/src}/utils/AttentionMessages.d.ts +0 -0
  222. /package/{src → dist/src}/utils/AttentionMessages.js +0 -0
  223. /package/{src → dist/src}/utils/Constants.d.ts +0 -0
  224. /package/{src → dist/src}/utils/Constants.js +0 -0
  225. /package/{src → dist/src}/utils/RecommendationError.d.ts +0 -0
  226. /package/{src → dist/src}/utils/RecommendationError.js +0 -0
  227. /package/{src → dist/src}/utils/RecommendationUtils.d.ts +0 -0
  228. /package/{src → dist/src}/utils/RecommendationUtils.js +0 -0
  229. /package/{src → dist/src}/utils/Translations.d.ts +0 -0
  230. /package/{src → dist/src}/utils/Translations.js +0 -0
  231. /package/{src → dist/src}/utils/Utils.d.ts +0 -0
  232. /package/{src → dist/src}/utils/Utils.js +0 -0
  233. /package/{src → dist/src}/utils/Validations.d.ts +0 -0
  234. /package/{src → dist/src}/utils/Validations.js +0 -0
@@ -141,7 +141,7 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
141
141
  * A reference to the screens scrollview allowing us to programmatically scroll the screen in the handleNoRecentInsulin() method.
142
142
  * The member is initiated without a value but will be set as soon as the component is being rendered.
143
143
  */
144
- private scrollViewRef?;
144
+ private scrollView?;
145
145
  /**
146
146
  * A reference to the eventSubscription that'll be returned by AppState.addEventListener().
147
147
  * It'll allow us to later remove the subscription.
@@ -284,8 +284,8 @@ export default class RecommendationScreen extends React.Component<IRecommendatio
284
284
  *
285
285
  * Steps:
286
286
  * 1. Set the isRecommendationDisplayed state variable to be true.
287
- * 2. As a callback to the setState() method, define a new anonymous function that calls the scrollToEnd() method
288
- * of the scrollView member, with the animated argument set to true.
287
+ * 2. As a callback to the setState() method, define a new anonymous function that calls setTimeout() with a duration of 0 milliseconds.
288
+ * When the time expires, call the scrollToEnd() method of the scrollView member, with the animated argument set to true.
289
289
  * This ensures that the scroll event happens after all other events that get queued to happen at the same time,
290
290
  * so all relevant elements are visible on the screen and the scroll happens reliably.
291
291
  */
@@ -191,15 +191,15 @@ export default class RecommendationScreen extends React.Component {
191
191
  *
192
192
  * Steps:
193
193
  * 1. Set the isRecommendationDisplayed state variable to be true.
194
- * 2. As a callback to the setState() method, define a new anonymous function that calls the scrollToEnd() method
195
- * of the scrollView member, with the animated argument set to true.
194
+ * 2. As a callback to the setState() method, define a new anonymous function that calls setTimeout() with a duration of 0 milliseconds.
195
+ * When the time expires, call the scrollToEnd() method of the scrollView member, with the animated argument set to true.
196
196
  * This ensures that the scroll event happens after all other events that get queued to happen at the same time,
197
197
  * so all relevant elements are visible on the screen and the scroll happens reliably.
198
198
  */
199
199
  this.handleNoRecentInsulin = () => {
200
200
  this.setState({ isRecommendationDisplayed: true }, () => {
201
201
  setTimeout(() => {
202
- this.scrollViewRef?.scrollToEnd({ animated: false });
202
+ this.scrollView?.scrollToEnd({ animated: true });
203
203
  }, 0);
204
204
  });
205
205
  };
@@ -311,7 +311,7 @@ export default class RecommendationScreen extends React.Component {
311
311
  * - Set the recommendationDate argument to the recommendationDate member variable.
312
312
  */
313
313
  this.handleTransfer = () => {
314
- const { enteredCarbs, enteredInsulin, insulinRecommendation, remeasureTime, showExitModal, selectedMood, } = this.state;
314
+ const { enteredCarbs, enteredInsulin, insulinRecommendation, remeasureTime, showExitModal, selectedMood } = this.state;
315
315
  const carbs = { suggested: this.suggestedCarbs, entered: enteredCarbs };
316
316
  const insulin = { suggested: insulinRecommendation, entered: enteredInsulin };
317
317
  showExitModal ? this.hideExitModal() : this.hideTimeoutModal();
@@ -368,7 +368,7 @@ export default class RecommendationScreen extends React.Component {
368
368
  this.recommendationDate = new Date(global.Date.now());
369
369
  changeLanguage(props.language);
370
370
  const { recentBoluses } = props.calculatorParams;
371
- const { bolus, carbRecommendation, activityReduction, wasLimited, activeInsulin, } = Calculator.calculateRecommendation(props.calculatorParams);
371
+ const { bolus, carbRecommendation, activityReduction, wasLimited, activeInsulin } = Calculator.calculateRecommendation(props.calculatorParams);
372
372
  this.suggestedCarbs = carbRecommendation;
373
373
  this.state = {
374
374
  remeasureTime: this.getBGLevelRemeasurementReminder(),
@@ -439,7 +439,7 @@ export default class RecommendationScreen extends React.Component {
439
439
  return (<I18nProvider language={this.props.language} i18n={i18n}>
440
440
  <ScrollView testID={RecommendationScreenTestIds.RecommendationScrollView} style={containerStyles.container} ref={(view) => {
441
441
  if (view !== null) {
442
- this.scrollViewRef = view;
442
+ this.scrollView = view;
443
443
  }
444
444
  }}>
445
445
  <Header exitCallback={this.onExit}/>
@@ -15,14 +15,14 @@ export default class Header extends React.Component {
15
15
  <View style={headerStyles.margin}>
16
16
  <View style={headerStyles.exitButtonContainer}>
17
17
  <View style={headerStyles.exitButton}>
18
- <TouchableOpacity testID={Testing.Id.HeaderTestIds.ExitCalculation} accessibilityLabel="exitButton" style={headerStyles.exitButton} onPress={this.props.exitCallback}>
18
+ <TouchableOpacity testID={Testing.Id.HeaderTestIds.ExitCalculation} style={headerStyles.exitButton} onPress={this.props.exitCallback}>
19
19
  <Icon iconIdentifier={`Ionicons/ios-close-circle-outline`} style={headerStyles.iconStyle}/>
20
20
  </TouchableOpacity>
21
21
  <View style={headerStyles.headerFiller}/>
22
22
  </View>
23
23
  </View>
24
24
  <View style={headerStyles.headerTextContainer}>
25
- <Text style={headerStyles.headerText} testID="headerText">
25
+ <Text style={headerStyles.headerText} testID={Testing.Id.HeaderTestIds.HeaderText}>
26
26
  {i18n._(t `INSULIN${`\n`}RECOMMENDATION`)}
27
27
  </Text>
28
28
  </View>
@@ -100,7 +100,7 @@ export default class InvisibleNumberInput extends React.Component {
100
100
  */
101
101
  render() {
102
102
  const { testID } = this.props;
103
- return (<TextInput testID={testID} accessibilityLabel={`InvisibleNumberInput`} value={`${this.state.value}`} ref={(textInput) => {
103
+ return (<TextInput testID={testID} value={`${this.state.value}`} ref={(textInput) => {
104
104
  if (textInput !== null) {
105
105
  this.textInput = textInput;
106
106
  }
@@ -21,7 +21,7 @@ export default class LimitationMessage extends React.Component {
21
21
  <Text style={stylesModal.textMessage}>{limitationMessage}</Text>
22
22
  </View>
23
23
  <View style={stylesModal.containerAcceptButton}>
24
- <TouchableOpacity testID={Testing.Id.LimitationMessageTestIds.OkButton} accessibilityLabel="nextButtonModal" style={stylesModal.okButton} onPress={this.props.onPressNextButton}>
24
+ <TouchableOpacity testID={Testing.Id.LimitationMessageTestIds.OkButton} style={stylesModal.okButton} onPress={this.props.onPressNextButton}>
25
25
  <Text style={stylesModal.buttonText}>{i18n._(t `OK`)}</Text>
26
26
  </TouchableOpacity>
27
27
  </View>
@@ -44,10 +44,10 @@ export default class RecommendationModal extends React.Component {
44
44
  */
45
45
  this.recommendationButtons = () => {
46
46
  return (<View style={stylesModal.recommendationButtonsContainer}>
47
- <TouchableOpacity testID={RecommendationModalTestIds.AcceptCarbs} accessibilityLabel="yesButtonModal" style={stylesModal.affirmativeCarbsButton} onPress={this.props.onAcceptCarbohydrates}>
47
+ <TouchableOpacity testID={RecommendationModalTestIds.AcceptCarbs} style={stylesModal.affirmativeCarbsButton} onPress={this.props.onAcceptCarbohydrates}>
48
48
  <Text style={stylesModal.affirmativeCarbsText}>{i18n._(t `OK`)}</Text>
49
49
  </TouchableOpacity>
50
- <TouchableOpacity testID={RecommendationModalTestIds.DeclineCarbs} accessibilityLabel="noButtonModal" style={stylesModal.negativeCarbsButton} onPress={this.props.onDeclineCarbohydrates}>
50
+ <TouchableOpacity testID={RecommendationModalTestIds.DeclineCarbs} style={stylesModal.negativeCarbsButton} onPress={this.props.onDeclineCarbohydrates}>
51
51
  <Text style={stylesModal.negativeCarbsText}>{i18n._(t `NO`)}</Text>
52
52
  </TouchableOpacity>
53
53
  </View>);
@@ -99,7 +99,7 @@ export default class RecommendationModal extends React.Component {
99
99
  {willRecommendCarbs ? this.recommendCarbohydrates(suggestedCarbohydrates) : null}
100
100
  </View>
101
101
  {willRecommendCarbs ? null : (<View style={stylesModal.containerAcceptButton}>
102
- <TouchableOpacity testID={RecommendationModalTestIds.OkButton} accessibilityLabel="okayButtonModal" style={stylesModal.okButton} onPress={this.props.onClickOkButton}>
102
+ <TouchableOpacity testID={RecommendationModalTestIds.OkButton} style={stylesModal.okButton} onPress={this.props.onClickOkButton}>
103
103
  <Text style={stylesModal.buttonText}>{i18n._(t `OK`)}</Text>
104
104
  </TouchableOpacity>
105
105
  </View>)}
@@ -88,7 +88,7 @@ export default class RecommendedCarbs extends React.Component {
88
88
  <LineSeparator color={BORDER_COLOUR_GREY}/>
89
89
  <View style={calculationStyles.borderContainer}>
90
90
  <View style={calculationStyles.recommendedContainer}>
91
- <TouchableOpacity testID={RecommendedCarbsTestIds.RemoveRecommendation} accessibilityLabel="removeRecommendedCarbs" style={calculationStyles.removeRecommended} onPress={this.props.removeRecommendedCarbs}>
91
+ <TouchableOpacity testID={RecommendedCarbsTestIds.RemoveRecommendation} style={calculationStyles.removeRecommended} onPress={this.props.removeRecommendedCarbs}>
92
92
  <Icon iconIdentifier={`Ionicons/ios-close-circle-outline`} style={calculationStyles.removeRecommendedIcon}/>
93
93
  </TouchableOpacity>
94
94
  <Text style={calculationStyles.recommendedLabel}>{i18n._(t `Recommended`)}</Text>
@@ -99,7 +99,7 @@ export default class RecommendedCarbs extends React.Component {
99
99
  <Text style={calculationStyles.recommendedLabel}>{i18n._(t `Additional`)}</Text>
100
100
  </View>
101
101
  <View style={calculationStyles.valueUnitContainer}>
102
- <TouchableOpacity testID={RecommendedCarbsTestIds.EditRecommendedCarbs} accessibilityLabel="editRecommendedCarbsButton" onPress={this.showTextInput} style={[calculationStyles.valueUnitContainer]}>
102
+ <TouchableOpacity testID={RecommendedCarbsTestIds.EditRecommendedCarbs} onPress={this.showTextInput} style={[calculationStyles.valueUnitContainer]}>
103
103
  <View style={calculationStyles.valueContainer}>
104
104
  <Text testID={RecommendedCarbsTestIds.RecommendedCarbs} style={[calculationStyles.value, { color: BORDER_COLOUR_TEAL }]}>
105
105
  {shownCarbs}
@@ -86,7 +86,7 @@ export default class RecommendedInsulin extends React.Component {
86
86
  const paddingBottom = Platform.OS === `ios` ? `3%` : `1%`;
87
87
  const shownInsulin = this.state.partialInput ?? this.props.insulinRecommendation ?? `0`;
88
88
  return (<React.Fragment>
89
- <TouchableOpacity accessibilityLabel="editRecommendedInsulin" testID={RecommendedInsulinTestIds.EditRecommendedInsulin} onPress={this.handleOnPress}>
89
+ <TouchableOpacity testID={RecommendedInsulinTestIds.EditRecommendedInsulin} onPress={this.handleOnPress}>
90
90
  <LinearGradient style={recommendedInsulinStyles.container} colors={[`#a200ff`, `#578aff`]} start={{ x: 0, y: 0 }} end={{ x: 1, y: 0 }}>
91
91
  <View style={recommendedInsulinStyles.recommendedTextContainer}>
92
92
  <Text style={recommendedInsulinStyles.recommendedText}>
@@ -100,7 +100,7 @@ export default class RecommendedInsulin extends React.Component {
100
100
  </Text>
101
101
  <Text style={recommendedInsulinStyles.units}>{i18n._(t `Units`)}</Text>
102
102
  </View>
103
- <Icon style={recommendedInsulinStyles.editIcon} iconIdentifier={`Feather/edit`}/>
103
+ <Icon style={recommendedInsulinStyles.editIcon} iconIdentifier={`Feather/edit`} testID={RecommendedInsulinTestIds.EditRecommendedInsulinIcon}/>
104
104
  </View>
105
105
  </LinearGradient>
106
106
  </TouchableOpacity>
@@ -65,7 +65,9 @@ export default class Remeasure extends React.Component {
65
65
  </View>
66
66
  <View style={remeasureStyles.valueUnitContainer}>
67
67
  <View style={valueContainer}>
68
- <Text style={remeasureStyles.value}>{measure ? limited : i18n._(t `OFF`)}</Text>
68
+ <Text style={remeasureStyles.value} testID={Testing.Id.RemeasureTestIds.RemeasureHours}>
69
+ {measure ? limited : i18n._(t `OFF`)}
70
+ </Text>
69
71
  </View>
70
72
  {measure ? (<View style={remeasureStyles.unitContainer}>
71
73
  <Text style={remeasureStyles.units}>{i18n._(t `hours`)}</Text>
@@ -76,7 +78,7 @@ export default class Remeasure extends React.Component {
76
78
  if (slider !== null) {
77
79
  this.slider = slider;
78
80
  }
79
- }} testID={Testing.Id.RemeasureTestIds.RemeasureSlider} accessibilityLabel="remeasureSlider" maximumTrackTintColor={BORDER_COLOUR_GREY} minimumTrackTintColor={BORDER_COLOUR_TEAL} thumbTintColor={BORDER_COLOUR_TEAL} maximumValue={6} minimumValue={0} step={0.5} style={[remeasureStyles.sliderStyle, { marginHorizontal }]} onValueChange={this.handleSliderChange}/>
81
+ }} testID={Testing.Id.RemeasureTestIds.RemeasureSlider} maximumTrackTintColor={BORDER_COLOUR_GREY} minimumTrackTintColor={BORDER_COLOUR_TEAL} thumbTintColor={BORDER_COLOUR_TEAL} maximumValue={6} minimumValue={0} step={0.5} style={[remeasureStyles.sliderStyle, { marginHorizontal }]} onValueChange={this.handleSliderChange}/>
80
82
  </View>);
81
83
  }
82
84
  }
@@ -39,7 +39,7 @@ export default class TransferToLogbook extends React.Component {
39
39
  if (!this.props.visible) {
40
40
  return <View style={addToLogbookStyles.marginContainer}/>;
41
41
  }
42
- return (<TouchableOpacity testID={Testing.Id.TransferToLogbookTestIds.TransferButton} onPress={this.handlePress} disabled={this.state.pressed} style={addToLogbookStyles.container} accessibilityLabel="transferToLogbook">
42
+ return (<TouchableOpacity testID={Testing.Id.TransferToLogbookTestIds.TransferButton} onPress={this.handlePress} disabled={this.state.pressed} style={addToLogbookStyles.container}>
43
43
  {!this.state.pressed ? (<View style={addToLogbookStyles.textContainer}>
44
44
  <Text style={addToLogbookStyles.transferText}>{i18n._(t `Transfer to logbook`)}</Text>
45
45
  </View>) : (<View style={addToLogbookStyles.textContainerActive}>
@@ -14,7 +14,7 @@ export default class TwoOptionModal extends React.Component {
14
14
  <StatusBar backgroundColor={`rgba(0, 0, 0, 1)`}/>
15
15
  <View style={modalStyle.modalContainer}>
16
16
  {isCancelable ? (<TouchableOpacity onPress={this.props.onClose} testID={TwoOptionModalTestIds.ExitButton} style={modalStyle.iconWrapper}>
17
- <Icon accessibilityLabel="ModalExitIcon" iconIdentifier={`Ionicons/ios-close-circle-outline`} style={modalStyle.icon}/>
17
+ <Icon iconIdentifier={`Ionicons/ios-close-circle-outline`} style={modalStyle.icon}/>
18
18
  </TouchableOpacity>) : null}
19
19
 
20
20
  <View style={isCancelable ? modalStyle.textContainer : modalStyle.textContainerNotCancelable}>
@@ -24,12 +24,12 @@ export default class TwoOptionModal extends React.Component {
24
24
  <Text style={modalStyle.message}>{this.props.message}</Text>
25
25
  </View>
26
26
  <View style={rowAsButtonLayout ? modalStyle.buttonContainerRow : modalStyle.buttonContainerColumn}>
27
- <TouchableOpacity testID={TwoOptionModalTestIds.FirstOption} accessibilityLabel="firstOptionButton" onPress={this.props.firstOption} style={rowAsButtonLayout ? modalStyle.buttonRow : modalStyle.firstButtonColumn}>
27
+ <TouchableOpacity testID={TwoOptionModalTestIds.FirstOption} onPress={this.props.firstOption} style={rowAsButtonLayout ? modalStyle.buttonRow : modalStyle.firstButtonColumn}>
28
28
  <Text style={rowAsButtonLayout ? modalStyle.textButtonRow : modalStyle.textFirstButtonColumn}>
29
29
  {this.props.textFirstOption}
30
30
  </Text>
31
31
  </TouchableOpacity>
32
- <TouchableOpacity testID={TwoOptionModalTestIds.SecondOption} accessibilityLabel="secondOptionButton" onPress={this.props.secondOption} style={rowAsButtonLayout ? modalStyle.buttonRow : modalStyle.secondButtonColumn}>
32
+ <TouchableOpacity testID={TwoOptionModalTestIds.SecondOption} onPress={this.props.secondOption} style={rowAsButtonLayout ? modalStyle.buttonRow : modalStyle.secondButtonColumn}>
33
33
  <Text style={rowAsButtonLayout ? modalStyle.textButtonRow : modalStyle.textSecondButtonColumn}>
34
34
  {this.props.textSecondOption}
35
35
  </Text>
@@ -33,7 +33,9 @@ export default class Activity extends React.Component {
33
33
  </View>
34
34
  <View style={infoStyles.valueUnitContainer}>
35
35
  <View style={infoStyles.valueContainer}>
36
- <Text style={infoStyles.value}>{activity.activityDuration}</Text>
36
+ <Text style={infoStyles.value} testID={Testing.Id.ActivityTestIds.ActivityDuration}>
37
+ {activity.activityDuration}
38
+ </Text>
37
39
  </View>
38
40
  <View style={infoStyles.unitContainer}>
39
41
  <Text style={infoStyles.units}>{i18n._(t `min`)}</Text>
@@ -13,9 +13,9 @@ export default class ActivityIcon extends React.Component<IActivityDisplayProps>
13
13
  /**
14
14
  * Steps:
15
15
  * 1. Unpack activityType and activityTitle from props.
16
- * 2. Create an accessibility label string by appending ‘_activity’ to the enum label corresponding to the activityType prop.
16
+ * 2. Create a testID string by appending ‘_activity’ to the enum label corresponding to the activityType prop.
17
17
  * @returns A JSX element including the following:
18
- * 1. An image component with the generated accessibility label displaying the icon from getActivityIcon().
18
+ * 1. An image component with the generated testID displaying the icon from getActivityIcon().
19
19
  * 2. The activityTitle if it is truthy or the string “Untitled Activity” otherwise
20
20
  */
21
21
  render(): JSX.Element | null;
@@ -26,16 +26,16 @@ export default class ActivityIcon extends React.Component {
26
26
  /**
27
27
  * Steps:
28
28
  * 1. Unpack activityType and activityTitle from props.
29
- * 2. Create an accessibility label string by appending ‘_activity’ to the enum label corresponding to the activityType prop.
29
+ * 2. Create a testID string by appending ‘_activity’ to the enum label corresponding to the activityType prop.
30
30
  * @returns A JSX element including the following:
31
- * 1. An image component with the generated accessibility label displaying the icon from getActivityIcon().
31
+ * 1. An image component with the generated testID displaying the icon from getActivityIcon().
32
32
  * 2. The activityTitle if it is truthy or the string “Untitled Activity” otherwise
33
33
  */
34
34
  render() {
35
35
  const { activityType, activityTitle } = this.props;
36
- const label = `${Activity.Enums.ActivityEnum[activityType ?? Other]}_activity`;
36
+ const testID = `${Activity.Enums.ActivityEnum[activityType ?? Other]}_activity`;
37
37
  return (<View style={activityIconStyles.container}>
38
- <Image style={activityIconStyles.activityIcon} source={this.getActivityIcon()} accessibilityLabel={label}/>
38
+ <Image style={activityIconStyles.activityIcon} source={this.getActivityIcon()} testID={testID}/>
39
39
  <Text style={activityIconStyles.activityTitle}>{activityTitle || i18n._(t `Untitled Activity`)}</Text>
40
40
  </View>);
41
41
  }
@@ -19,7 +19,9 @@ export default class ActivityIntensity extends React.Component {
19
19
  return (<View style={[infoStyles.margin, activityIntensityStyles.row]}>
20
20
  <View style={activityIntensityStyles.intensityContainer}>
21
21
  <View style={[activityIntensityStyles.intensityTextContainer, style]}>
22
- <Text style={activityIntensityStyles.bold}>{ActivityIntensityTranslations[intensity]()}</Text>
22
+ <Text style={activityIntensityStyles.bold} testID={intensity}>
23
+ {ActivityIntensityTranslations[intensity]()}
24
+ </Text>
23
25
  </View>
24
26
  </View>
25
27
  <View style={activityIntensityStyles.intensityContainerOffset}/>
@@ -49,8 +49,8 @@ export default class MoodIcon extends React.Component {
49
49
  /** JSX element to display the mood icon retrieved using the getMoodIcon() method. */
50
50
  render() {
51
51
  const { mood, active } = this.props;
52
- const label = `${MoodEnum[mood]}_${active}`;
53
- return (<TouchableOpacity style={moodIconStyles.container} onPress={this.handleOnPress} accessibilityLabel={label}>
52
+ const testID = `${MoodEnum[mood]}-${active}`;
53
+ return (<TouchableOpacity style={moodIconStyles.container} onPress={this.handleOnPress} testID={testID}>
54
54
  <Image style={moodIconStyles.icon} source={this.getMoodIcon()}/>
55
55
  </TouchableOpacity>);
56
56
  }