@hedia/recommendation-screen 1.8.2 → 2.0.2
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.
- package/.github/workflows/ci.yml +0 -0
- package/.github/workflows/publish.yml +48 -0
- package/.github/workflows/version-check.yml +45 -0
- package/.linguirc +0 -0
- package/.npmpackagejsonlintrc.json +0 -0
- package/.prettierignore +0 -0
- package/.prettierrc +0 -0
- package/App.d.ts +4 -5
- package/App.jsx +23 -34
- package/App.tsx +36 -41
- package/Changelog.md +0 -0
- package/README.md +0 -0
- package/android/app/BUCK +0 -0
- package/android/app/build.gradle +0 -0
- package/android/app/build_defs.bzl +0 -0
- package/android/app/debug.keystore +0 -0
- package/android/app/proguard-rules.pro +0 -0
- package/android/app/src/debug/AndroidManifest.xml +0 -0
- package/android/app/src/debug/java/com/hediarecommendationscreen/ReactNativeFlipper.java +0 -0
- package/android/app/src/main/AndroidManifest.xml +0 -0
- package/android/app/src/main/assets/fonts/AntDesign.ttf +0 -0
- package/android/app/src/main/assets/fonts/Entypo.ttf +0 -0
- package/android/app/src/main/assets/fonts/EvilIcons.ttf +0 -0
- package/android/app/src/main/assets/fonts/Feather.ttf +0 -0
- package/android/app/src/main/assets/fonts/FontAwesome.ttf +0 -0
- package/android/app/src/main/assets/fonts/FontAwesome5_Brands.ttf +0 -0
- package/android/app/src/main/assets/fonts/FontAwesome5_Regular.ttf +0 -0
- package/android/app/src/main/assets/fonts/FontAwesome5_Solid.ttf +0 -0
- package/android/app/src/main/assets/fonts/Foundation.ttf +0 -0
- package/android/app/src/main/assets/fonts/Ionicons.ttf +0 -0
- package/android/app/src/main/assets/fonts/MaterialCommunityIcons.ttf +0 -0
- package/android/app/src/main/assets/fonts/MaterialIcons.ttf +0 -0
- package/android/app/src/main/assets/fonts/Octicons.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Black.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-BlackItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Bold.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-BoldItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Italic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Light.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-LightItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Medium.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-MediumItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Regular.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-Thin.ttf +0 -0
- package/android/app/src/main/assets/fonts/Roboto-ThinItalic.ttf +0 -0
- package/android/app/src/main/assets/fonts/SimpleLineIcons.ttf +0 -0
- package/android/app/src/main/assets/fonts/Zocial.ttf +0 -0
- package/android/app/src/main/java/com/hediarecommendationscreen/MainActivity.java +0 -0
- package/android/app/src/main/java/com/hediarecommendationscreen/MainApplication.java +0 -0
- package/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/android/app/src/main/res/values/color.xml +0 -0
- package/android/app/src/main/res/values/strings.xml +0 -0
- package/android/app/src/main/res/values/styles.xml +0 -0
- package/android/build.gradle +0 -0
- package/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/gradle/wrapper/gradle-wrapper.properties +0 -0
- package/android/gradle.properties +0 -0
- package/android/gradlew.bat +0 -0
- package/android/settings.gradle +0 -0
- package/app.json +0 -0
- package/assets/fonts/Roboto/LICENSE.txt +0 -0
- package/assets/fonts/Roboto/Roboto-Black.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-BlackItalic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Bold.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-BoldItalic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Italic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Light.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-LightItalic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Medium.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-MediumItalic.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Regular.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-Thin.ttf +0 -0
- package/assets/fonts/Roboto/Roboto-ThinItalic.ttf +0 -0
- package/babel.config.js +0 -0
- package/ignore-git.sh +1 -1
- package/ignore-publish.sh +2 -1
- package/index.d.ts +2 -2
- package/index.js +2 -3
- package/index.ts +2 -2
- package/ios/HediaRecommendationScreen/AppDelegate.h +0 -0
- package/ios/HediaRecommendationScreen/AppDelegate.m +0 -0
- package/ios/HediaRecommendationScreen/Base.lproj/LaunchScreen.xib +0 -0
- package/ios/HediaRecommendationScreen/Images.xcassets/AppIcon.appiconset/Contents.json +0 -0
- package/ios/HediaRecommendationScreen/Images.xcassets/Contents.json +0 -0
- package/ios/HediaRecommendationScreen/Info.plist +0 -0
- package/ios/HediaRecommendationScreen/main.m +0 -0
- package/ios/HediaRecommendationScreen-tvOS/Info.plist +0 -0
- package/ios/HediaRecommendationScreen-tvOSTests/Info.plist +0 -0
- package/ios/HediaRecommendationScreen.xcodeproj/project.pbxproj +0 -0
- package/ios/HediaRecommendationScreen.xcodeproj/xcshareddata/xcschemes/HediaRecommendationScreen-tvOS.xcscheme +0 -0
- package/ios/HediaRecommendationScreen.xcodeproj/xcshareddata/xcschemes/HediaRecommendationScreen.xcscheme +0 -0
- package/ios/HediaRecommendationScreen.xcworkspace/contents.xcworkspacedata +0 -0
- package/ios/HediaRecommendationScreen.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -0
- package/ios/HediaRecommendationScreenTests/HediaRecommendationScreenTests.m +0 -0
- package/ios/HediaRecommendationScreenTests/Info.plist +0 -0
- package/ios/Podfile +0 -0
- package/ios/Podfile.lock +0 -0
- package/jest.config.js +0 -0
- package/jest.mock.js +0 -0
- package/metro.config.js +0 -0
- package/package.json +8 -10
- package/react-native.config.js +0 -0
- package/src/RecommendationScreen.d.ts +18 -20
- package/src/RecommendationScreen.jsx +26 -15
- package/src/RecommendationScreen.tsx +60 -37
- package/src/__tests__/RecommendationScreen.test.d.ts +0 -0
- package/src/__tests__/RecommendationScreen.test.jsx +163 -138
- package/src/__tests__/RecommendationScreen.test.tsx +256 -159
- package/src/__tests__/RecommendationUtils.test.d.ts +0 -0
- package/src/__tests__/RecommendationUtils.test.js +30 -39
- package/src/__tests__/RecommendationUtils.test.ts +38 -43
- package/src/__tests__/Translate.test.d.ts +0 -0
- package/src/__tests__/Translate.test.jsx +13 -12
- package/src/__tests__/Translate.test.tsx +15 -14
- package/src/__tests__/Utils.test.d.ts +0 -0
- package/src/__tests__/Utils.test.js +22 -20
- package/src/__tests__/Utils.test.ts +32 -21
- package/src/__tests__/Validations.test.d.ts +0 -0
- package/src/__tests__/Validations.test.js +59 -33
- package/src/__tests__/Validations.test.ts +83 -41
- package/src/__tests__/components/Activity.test.d.ts +0 -0
- package/src/__tests__/components/Activity.test.jsx +39 -18
- package/src/__tests__/components/Activity.test.tsx +99 -45
- package/src/__tests__/components/Emotion.test.d.ts +0 -0
- package/src/__tests__/components/Emotion.test.jsx +34 -25
- package/src/__tests__/components/Emotion.test.tsx +41 -24
- package/src/__tests__/components/Header.test.d.ts +0 -0
- package/src/__tests__/components/Header.test.jsx +10 -9
- package/src/__tests__/components/Header.test.tsx +12 -11
- package/src/__tests__/components/InfoBars.test.d.ts +0 -0
- package/src/__tests__/components/InfoBars.test.jsx +1 -0
- package/src/__tests__/components/InfoBars.test.tsx +7 -6
- package/src/__tests__/components/InvisibleNumberInput.test.d.ts +0 -0
- package/src/__tests__/components/InvisibleNumberInput.test.jsx +40 -24
- package/src/__tests__/components/InvisibleNumberInput.test.tsx +41 -17
- package/src/__tests__/components/LimitationMessage.test.d.ts +0 -0
- package/src/__tests__/components/LimitationMessage.test.jsx +11 -30
- package/src/__tests__/components/LimitationMessage.test.tsx +15 -13
- package/src/__tests__/components/MoodIcon.test.d.ts +0 -0
- package/src/__tests__/components/MoodIcon.test.jsx +12 -8
- package/src/__tests__/components/MoodIcon.test.tsx +13 -5
- package/src/__tests__/components/RecommendationModal.test.d.ts +0 -0
- package/src/__tests__/components/RecommendationModal.test.jsx +22 -21
- package/src/__tests__/components/RecommendationModal.test.tsx +29 -27
- package/src/__tests__/components/RecommendedCarbs.test.d.ts +0 -0
- package/src/__tests__/components/RecommendedCarbs.test.jsx +7 -10
- package/src/__tests__/components/RecommendedCarbs.test.tsx +9 -10
- package/src/__tests__/components/RecommendedInsulin.test.d.ts +0 -0
- package/src/__tests__/components/RecommendedInsulin.test.jsx +57 -41
- package/src/__tests__/components/RecommendedInsulin.test.tsx +57 -31
- package/src/__tests__/components/Remeasure.test.d.ts +0 -0
- package/src/__tests__/components/Remeasure.test.jsx +7 -3
- package/src/__tests__/components/Remeasure.test.tsx +11 -3
- package/src/__tests__/components/TransferToLogbook.test.d.ts +0 -0
- package/src/__tests__/components/TransferToLogbook.test.jsx +2 -2
- package/src/__tests__/components/TransferToLogbook.test.tsx +2 -2
- package/src/__tests__/components/TwoOptionModal.test.d.ts +0 -0
- package/src/__tests__/components/TwoOptionModal.test.jsx +5 -4
- package/src/__tests__/components/TwoOptionModal.test.tsx +6 -4
- package/src/__tests__/utils.d.ts +7 -2
- package/src/__tests__/utils.jsx +59 -15
- package/src/__tests__/utils.tsx +63 -16
- package/src/assets/activity/Cyclist.png +0 -0
- package/src/assets/activity/Other.png +0 -0
- package/src/assets/activity/Runner.png +0 -0
- package/src/assets/activity/Swimmer.png +0 -0
- package/src/assets/activity/Walk.png +0 -0
- package/src/assets/mood/happy.png +0 -0
- package/src/assets/mood/happy_active.png +0 -0
- package/src/assets/mood/neutral.png +0 -0
- package/src/assets/mood/neutral_active.png +0 -0
- package/src/assets/mood/sad.png +0 -0
- package/src/assets/mood/sad_active.png +0 -0
- package/src/assets/mood/semi_happy.png +0 -0
- package/src/assets/mood/semi_happy_active.png +0 -0
- package/src/assets/mood/semi_sad.png +0 -0
- package/src/assets/mood/semi_sad_active.png +0 -0
- package/src/components/Header.d.ts +0 -0
- package/src/components/Header.jsx +2 -1
- package/src/components/Header.tsx +2 -1
- package/src/components/Icon.js +0 -0
- package/src/components/InfoBars.d.ts +1 -1
- package/src/components/InfoBars.jsx +0 -0
- package/src/components/InfoBars.tsx +1 -1
- package/src/components/InvisibleNumberInput.d.ts +2 -1
- package/src/components/InvisibleNumberInput.jsx +7 -2
- package/src/components/InvisibleNumberInput.tsx +10 -3
- package/src/components/LimitationMessage.d.ts +1 -1
- package/src/components/LimitationMessage.jsx +3 -2
- package/src/components/LimitationMessage.tsx +3 -1
- package/src/components/LineSeparator.d.ts +0 -0
- package/src/components/LineSeparator.jsx +0 -0
- package/src/components/LineSeparator.tsx +0 -0
- package/src/components/RecentInsulin.d.ts +0 -0
- package/src/components/RecentInsulin.jsx +3 -2
- package/src/components/RecentInsulin.tsx +3 -0
- package/src/components/RecommendationModal.d.ts +4 -4
- package/src/components/RecommendationModal.jsx +10 -9
- package/src/components/RecommendationModal.tsx +19 -8
- package/src/components/RecommendedCarbs.d.ts +4 -3
- package/src/components/RecommendedCarbs.jsx +12 -9
- package/src/components/RecommendedCarbs.tsx +31 -16
- package/src/components/RecommendedInsulin.d.ts +7 -7
- package/src/components/RecommendedInsulin.jsx +11 -7
- package/src/components/RecommendedInsulin.tsx +24 -12
- package/src/components/Remeasure.d.ts +2 -2
- package/src/components/Remeasure.jsx +7 -2
- package/src/components/Remeasure.tsx +10 -4
- package/src/components/TransferToLogbook.d.ts +0 -0
- package/src/components/TransferToLogbook.jsx +2 -1
- package/src/components/TransferToLogbook.tsx +2 -0
- package/src/components/TwoOptionModal.d.ts +5 -3
- package/src/components/TwoOptionModal.jsx +44 -13
- package/src/components/TwoOptionModal.tsx +50 -14
- package/src/components/activity/Activity.d.ts +2 -3
- package/src/components/activity/Activity.jsx +5 -2
- package/src/components/activity/Activity.tsx +7 -5
- package/src/components/activity/ActivityIcon.d.ts +1 -1
- package/src/components/activity/ActivityIcon.jsx +9 -8
- package/src/components/activity/ActivityIcon.tsx +12 -10
- package/src/components/activity/ActivityIntensity.d.ts +1 -1
- package/src/components/activity/ActivityIntensity.jsx +2 -8
- package/src/components/activity/ActivityIntensity.tsx +3 -12
- package/src/components/mood/Emotion.d.ts +5 -4
- package/src/components/mood/Emotion.jsx +4 -3
- package/src/components/mood/Emotion.tsx +9 -7
- package/src/components/mood/MoodIcon.d.ts +2 -2
- package/src/components/mood/MoodIcon.jsx +3 -2
- package/src/components/mood/MoodIcon.tsx +4 -2
- package/src/locale/CleanLanguage.ts +0 -0
- package/src/locale/da/messages.js +1 -1
- package/src/locale/da/messages.po +115 -107
- package/src/locale/de/messages.js +1 -1
- package/src/locale/de/messages.po +115 -107
- package/src/locale/en/messages.js +1 -1
- package/src/locale/en/messages.po +118 -110
- package/src/locale/es/messages.js +1 -1
- package/src/locale/es/messages.po +112 -104
- package/src/locale/fr/messages.js +1 -1
- package/src/locale/fr/messages.po +111 -103
- package/src/locale/i18nUtils.d.ts +3 -4
- package/src/locale/i18nUtils.js +13 -12
- package/src/locale/i18nUtils.ts +14 -14
- package/src/locale/it/messages.js +1 -1
- package/src/locale/it/messages.po +113 -105
- package/src/types/enum.d.ts +52 -44
- package/src/types/enum.js +67 -56
- package/src/types/enum.ts +58 -34
- package/src/types/types.d.ts +9 -23
- package/src/types/types.js +0 -0
- package/src/types/types.ts +9 -25
- package/src/utils/AttentionMessages.d.ts +1 -4
- package/src/utils/AttentionMessages.jsx +8 -30
- package/src/utils/AttentionMessages.tsx +11 -16
- package/src/utils/Constants.d.ts +0 -0
- package/src/utils/Constants.js +0 -0
- package/src/utils/Constants.ts +0 -0
- package/src/utils/RecommendationError.d.ts +2 -0
- package/src/utils/RecommendationError.jsx +45 -40
- package/src/utils/RecommendationError.tsx +17 -4
- package/src/utils/RecommendationUtils.d.ts +7 -8
- package/src/utils/RecommendationUtils.js +15 -7
- package/src/utils/RecommendationUtils.ts +24 -14
- package/src/utils/Translations.d.ts +2 -0
- package/src/utils/Translations.js +10 -0
- package/src/utils/Translations.ts +9 -0
- package/src/utils/Utils.d.ts +4 -5
- package/src/utils/Utils.js +6 -5
- package/src/utils/Utils.ts +10 -8
- package/src/utils/Validations.d.ts +10 -9
- package/src/utils/Validations.js +61 -65
- package/src/utils/Validations.ts +76 -81
- package/tsconfig.json +2 -2
- package/tslint.json +0 -0
|
@@ -3,22 +3,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const RecommendationCalculator_1 = require("@hedia/recommendation-calculator/src/RecommendationCalculator");
|
|
7
6
|
const types_1 = require("@hedia/types");
|
|
8
7
|
const react_1 = __importDefault(require("react"));
|
|
9
8
|
const react_native_testing_library_1 = require("react-native-testing-library");
|
|
10
|
-
const InvisibleNumberInput_1 = __importDefault(require("../components/InvisibleNumberInput"));
|
|
11
9
|
const i18nUtils_1 = require("../locale/i18nUtils");
|
|
12
10
|
const RecommendationScreen_1 = __importDefault(require("../RecommendationScreen"));
|
|
13
11
|
const enum_1 = require("../types/enum");
|
|
14
12
|
const AttentionMessages_1 = require("../utils/AttentionMessages");
|
|
15
13
|
const RecommendationError_1 = require("../utils/RecommendationError");
|
|
14
|
+
const Translations_1 = require("../utils/Translations");
|
|
16
15
|
const Utils_1 = require("../utils/Utils");
|
|
17
16
|
const utils_1 = require("./utils");
|
|
17
|
+
const ActivityIntensity = types_1.Activity.Enums.ActivityIntensity;
|
|
18
|
+
const ActivityEnum = types_1.Activity.Enums.ActivityEnum;
|
|
19
|
+
const InjectionMethod = types_1.UserSettings.Enums.InjectionMethod;
|
|
20
|
+
const MoodEnum = types_1.Logbook.Enums.MoodEnum;
|
|
21
|
+
const { light, moderate, hard } = ActivityIntensity;
|
|
18
22
|
describe(`RecommendationScreen`, () => {
|
|
19
23
|
jest.useFakeTimers();
|
|
20
24
|
beforeEach(() => {
|
|
21
|
-
i18nUtils_1.i18n.activate(
|
|
25
|
+
i18nUtils_1.i18n.activate(types_1.Languages.en);
|
|
22
26
|
global.Date.now = () => 1;
|
|
23
27
|
});
|
|
24
28
|
afterEach(() => {
|
|
@@ -34,11 +38,12 @@ describe(`RecommendationScreen`, () => {
|
|
|
34
38
|
insulinSensitivity: 5,
|
|
35
39
|
targetBGL: 7,
|
|
36
40
|
recentBoluses: [],
|
|
41
|
+
activity: null,
|
|
37
42
|
},
|
|
38
43
|
userReminder: 5,
|
|
39
44
|
});
|
|
40
45
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
41
|
-
const okButton = wrapper.
|
|
46
|
+
const okButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
42
47
|
react_native_testing_library_1.fireEvent(okButton, `onPress`);
|
|
43
48
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
44
49
|
utils_1.expectTextExists(wrapper, `Additional`);
|
|
@@ -55,14 +60,14 @@ describe(`RecommendationScreen`, () => {
|
|
|
55
60
|
},
|
|
56
61
|
});
|
|
57
62
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
58
|
-
const okButton = wrapper.
|
|
63
|
+
const okButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
59
64
|
react_native_testing_library_1.fireEvent(okButton, `onPress`);
|
|
60
65
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
61
66
|
utils_1.expectTextExists(wrapper, `Additional`);
|
|
62
67
|
utils_1.expectTextExists(wrapper, `5`);
|
|
63
68
|
utils_1.expectTextExists(wrapper, `Remind me to remeasure in`);
|
|
64
69
|
utils_1.expectTextExists(wrapper, `0.25`);
|
|
65
|
-
const textInput = wrapper.
|
|
70
|
+
const textInput = wrapper.getByTestId(enum_1.RecommendedCarbsTestIds.InvisibleCarbInput);
|
|
66
71
|
react_native_testing_library_1.fireEvent(textInput, `onChangeText`, `85`);
|
|
67
72
|
utils_1.expectTextNotExists(wrapper, `6`);
|
|
68
73
|
utils_1.expectTextExists(wrapper, `85`);
|
|
@@ -76,11 +81,12 @@ describe(`RecommendationScreen`, () => {
|
|
|
76
81
|
insulinSensitivity: 5,
|
|
77
82
|
targetBGL: 7,
|
|
78
83
|
recentBoluses: [],
|
|
84
|
+
activity: null,
|
|
79
85
|
},
|
|
80
86
|
userReminder: 6,
|
|
81
87
|
});
|
|
82
88
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
83
|
-
const okayButton = wrapper.
|
|
89
|
+
const okayButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.OkButton);
|
|
84
90
|
react_native_testing_library_1.fireEvent(okayButton, `onPress`);
|
|
85
91
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
86
92
|
utils_1.expectTextNotExists(wrapper, `Additional`);
|
|
@@ -96,6 +102,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
96
102
|
insulinSensitivity: 5,
|
|
97
103
|
targetBGL: 7,
|
|
98
104
|
recentBoluses: [],
|
|
105
|
+
activity: null,
|
|
99
106
|
},
|
|
100
107
|
});
|
|
101
108
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
@@ -112,15 +119,16 @@ describe(`RecommendationScreen`, () => {
|
|
|
112
119
|
insulinSensitivity: 5,
|
|
113
120
|
targetBGL: 7,
|
|
114
121
|
recentBoluses: [],
|
|
122
|
+
activity: null,
|
|
115
123
|
},
|
|
116
124
|
});
|
|
117
125
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
118
|
-
const okButton = wrapper.
|
|
126
|
+
const okButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
119
127
|
react_native_testing_library_1.fireEvent(okButton, `onPress`);
|
|
120
128
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
121
129
|
utils_1.expectTextExists(wrapper, `Additional`);
|
|
122
130
|
utils_1.expectTextExists(wrapper, `1`);
|
|
123
|
-
const removeButton = wrapper.
|
|
131
|
+
const removeButton = wrapper.getByTestId(enum_1.RecommendedCarbsTestIds.RemoveRecommendation);
|
|
124
132
|
react_native_testing_library_1.fireEvent(removeButton, `onPress`);
|
|
125
133
|
utils_1.expectTextNotExists(wrapper, `Additional`);
|
|
126
134
|
utils_1.expectTextNotExists(wrapper, `1`);
|
|
@@ -129,7 +137,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
129
137
|
const props = utils_1.getRecommendationProps();
|
|
130
138
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
131
139
|
utils_1.expectTextExists(wrapper, `hours`);
|
|
132
|
-
const slider = wrapper.
|
|
140
|
+
const slider = wrapper.getByTestId(enum_1.RemeasureTestIds.RemeasureSlider);
|
|
133
141
|
react_native_testing_library_1.fireEvent(slider, `onValueChange`, 3.2);
|
|
134
142
|
utils_1.expectTextExists(wrapper, `3.2`);
|
|
135
143
|
utils_1.expectTextExists(wrapper, `hours`);
|
|
@@ -138,7 +146,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
138
146
|
const props = utils_1.getRecommendationProps();
|
|
139
147
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
140
148
|
utils_1.expectTextExists(wrapper, `hours`);
|
|
141
|
-
const slider = wrapper.
|
|
149
|
+
const slider = wrapper.getByTestId(enum_1.RemeasureTestIds.RemeasureSlider);
|
|
142
150
|
react_native_testing_library_1.fireEvent(slider, `onValueChange`, 0);
|
|
143
151
|
utils_1.expectTextExists(wrapper, `OFF`);
|
|
144
152
|
utils_1.expectTextNotExists(wrapper, `hours`);
|
|
@@ -153,7 +161,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
153
161
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
154
162
|
expect(props.onRecentInsulinYes).not.toBeCalled();
|
|
155
163
|
utils_1.expectTextExists(wrapper, `Recommended amount of insulin`);
|
|
156
|
-
const button = wrapper.
|
|
164
|
+
const button = wrapper.getByTestId(enum_1.RecentInsulinTestIds.Yes);
|
|
157
165
|
react_native_testing_library_1.fireEvent(button, `onPress`);
|
|
158
166
|
utils_1.expectTextExists(wrapper, `Recommended amount of insulin`);
|
|
159
167
|
expect(props.onRecentInsulinYes).toBeCalled();
|
|
@@ -167,7 +175,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
167
175
|
});
|
|
168
176
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
169
177
|
utils_1.expectTextExists(wrapper, `Have you taken insulin within the last 4 hours?`);
|
|
170
|
-
const button = wrapper.
|
|
178
|
+
const button = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
171
179
|
react_native_testing_library_1.fireEvent(button, `onPress`);
|
|
172
180
|
utils_1.expectTextNotExists(wrapper, `Have you taken insulin within the last 4 hours?`);
|
|
173
181
|
utils_1.expectTextExists(wrapper, `Recommended amount of insulin`);
|
|
@@ -176,19 +184,17 @@ describe(`RecommendationScreen`, () => {
|
|
|
176
184
|
test(`Selecting neutral will set neutral to active`, () => {
|
|
177
185
|
const props = utils_1.getRecommendationProps();
|
|
178
186
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
179
|
-
const
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
187
|
+
const neutral = MoodEnum[MoodEnum.Neutral];
|
|
188
|
+
const icon = utils_1.getIcon(wrapper, neutral, false);
|
|
189
|
+
if (icon === null) {
|
|
190
|
+
return fail(`No icon found for queryByA11yLabel: ${neutral}_${false}`);
|
|
191
|
+
}
|
|
192
|
+
react_native_testing_library_1.fireEvent(icon, `onPress`);
|
|
193
|
+
expect(utils_1.getIcon(wrapper, neutral, false)).toBeNull();
|
|
194
|
+
expect(utils_1.getIcon(wrapper, neutral, true)).not.toBeNull();
|
|
185
195
|
});
|
|
186
196
|
test(`Updating carb recommendation & transfer`, () => {
|
|
187
|
-
const result = {
|
|
188
|
-
carbs: null,
|
|
189
|
-
insulin: null,
|
|
190
|
-
reminder: null,
|
|
191
|
-
};
|
|
197
|
+
const result = {};
|
|
192
198
|
const props = utils_1.getRecommendationProps({
|
|
193
199
|
calculatorParams: {
|
|
194
200
|
currentBGL: 1.1,
|
|
@@ -197,6 +203,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
197
203
|
insulinSensitivity: 5,
|
|
198
204
|
targetBGL: 7,
|
|
199
205
|
recentBoluses: [],
|
|
206
|
+
activity: null,
|
|
200
207
|
},
|
|
201
208
|
transferToLogbook: jest.fn((carbs, insulin, reminder) => {
|
|
202
209
|
result.carbs = carbs;
|
|
@@ -209,42 +216,37 @@ describe(`RecommendationScreen`, () => {
|
|
|
209
216
|
suggested: 1,
|
|
210
217
|
};
|
|
211
218
|
const insulinExpected = {
|
|
212
|
-
entered:
|
|
219
|
+
entered: null,
|
|
213
220
|
suggested: 0,
|
|
214
221
|
};
|
|
215
222
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
223
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.EnteredCarbs)).toBe(`25`);
|
|
224
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.RecommendedCarbs)).toBe(`1`);
|
|
225
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.TotalCarbs)).toBe(`26`);
|
|
216
226
|
// Expect text from carbs -> change -> Expect text updated -> Transfer -> Expect callback
|
|
217
|
-
|
|
218
|
-
const carbInput = wrapper.UNSAFE_queryByType(InvisibleNumberInput_1.default);
|
|
219
|
-
expect(carbInput).not.toBeNull();
|
|
227
|
+
const carbInput = wrapper.getByTestId(enum_1.RecommendedCarbsTestIds.InvisibleCarbInput);
|
|
220
228
|
// Input 3 into the carbs field
|
|
221
229
|
react_native_testing_library_1.fireEvent(carbInput, `onEnd`, carbsExpected.entered);
|
|
222
|
-
|
|
223
|
-
utils_1.
|
|
224
|
-
utils_1.
|
|
230
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.EnteredCarbs)).toBe(`25`);
|
|
231
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.RecommendedCarbs)).toBe(`3`);
|
|
232
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.TotalCarbs)).toBe(`28`);
|
|
225
233
|
// To make the transfer button visible we need to press the "no" option
|
|
226
234
|
utils_1.expectTextNotExists(wrapper, `Transfer to logbook`);
|
|
227
|
-
const noButton = wrapper.
|
|
228
|
-
expect(noButton).not.toBeNull();
|
|
235
|
+
const noButton = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
229
236
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
230
237
|
utils_1.expectTextExists(wrapper, `Transfer to logbook`);
|
|
231
|
-
const transfer = wrapper.
|
|
232
|
-
expect(transfer).not.toBeNull();
|
|
238
|
+
const transfer = wrapper.getByTestId(enum_1.TransferToLogbookTestIds.TransferButton);
|
|
233
239
|
// Press transfer
|
|
234
240
|
react_native_testing_library_1.fireEvent(transfer, `onPress`);
|
|
235
241
|
expect(props.transferToLogbook).toBeCalled();
|
|
236
|
-
expect(result.carbs
|
|
237
|
-
expect(result.carbs
|
|
238
|
-
expect(result.insulin
|
|
239
|
-
expect(result.insulin
|
|
242
|
+
expect(result.carbs?.entered).toBeCloseTo(carbsExpected.entered, 1);
|
|
243
|
+
expect(result.carbs?.suggested).toBeCloseTo(carbsExpected.suggested, 1);
|
|
244
|
+
expect(result.insulin?.entered).toBe(insulinExpected.entered);
|
|
245
|
+
expect(result.insulin?.suggested).toBeCloseTo(insulinExpected.suggested, 1);
|
|
240
246
|
expect(result.reminder).toBe(enum_1.RecommendationReminders.Reminder15Minutes);
|
|
241
247
|
});
|
|
242
248
|
test(`Removing carb recommendation still returns suggested in transfer`, () => {
|
|
243
|
-
const result = {
|
|
244
|
-
carbs: null,
|
|
245
|
-
insulin: null,
|
|
246
|
-
reminder: null,
|
|
247
|
-
};
|
|
249
|
+
const result = {};
|
|
248
250
|
const props = utils_1.getRecommendationProps({
|
|
249
251
|
calculatorParams: {
|
|
250
252
|
currentBGL: 1.1,
|
|
@@ -253,6 +255,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
253
255
|
insulinSensitivity: 5,
|
|
254
256
|
targetBGL: 7,
|
|
255
257
|
recentBoluses: [],
|
|
258
|
+
activity: null,
|
|
256
259
|
},
|
|
257
260
|
transferToLogbook: jest.fn((carbs, insulin, reminder) => {
|
|
258
261
|
result.carbs = carbs;
|
|
@@ -265,26 +268,23 @@ describe(`RecommendationScreen`, () => {
|
|
|
265
268
|
suggested: 1,
|
|
266
269
|
};
|
|
267
270
|
const insulinExpected = {
|
|
268
|
-
entered:
|
|
271
|
+
entered: null,
|
|
269
272
|
suggested: 0,
|
|
270
273
|
};
|
|
271
274
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
272
275
|
// Expect text from carbs -> change -> Expect text updated -> Transfer -> Expect callback
|
|
273
276
|
utils_1.expectTextExists(wrapper, `1`);
|
|
274
|
-
const removeButton = wrapper.
|
|
275
|
-
expect(removeButton).not.toBeNull();
|
|
277
|
+
const removeButton = wrapper.getByTestId(enum_1.RecommendedCarbsTestIds.RemoveRecommendation);
|
|
276
278
|
// Input 3 into the carbs field
|
|
277
279
|
react_native_testing_library_1.fireEvent(removeButton, `onPress`);
|
|
278
280
|
// Expect text updated
|
|
279
281
|
utils_1.expectTextNotExists(wrapper, `1`);
|
|
280
282
|
// To make the transfer button visible we need to press the "no" option
|
|
281
283
|
utils_1.expectTextNotExists(wrapper, `Transfer to logbook`);
|
|
282
|
-
const noButton = wrapper.
|
|
283
|
-
expect(noButton).not.toBeNull();
|
|
284
|
+
const noButton = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
284
285
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
285
286
|
utils_1.expectTextExists(wrapper, `Transfer to logbook`);
|
|
286
|
-
const transfer = wrapper.
|
|
287
|
-
expect(transfer).not.toBeNull();
|
|
287
|
+
const transfer = wrapper.getByTestId(enum_1.TransferToLogbookTestIds.TransferButton);
|
|
288
288
|
// Press transfer
|
|
289
289
|
react_native_testing_library_1.fireEvent(transfer, `onPress`);
|
|
290
290
|
expect(props.transferToLogbook).toBeCalled();
|
|
@@ -320,12 +320,13 @@ describe(`RecommendationScreen`, () => {
|
|
|
320
320
|
insulinSensitivity: 5,
|
|
321
321
|
targetBGL: 7,
|
|
322
322
|
recentBoluses: [],
|
|
323
|
+
activity: null,
|
|
323
324
|
},
|
|
324
325
|
userReminder: 3,
|
|
325
|
-
injectionMethod:
|
|
326
|
+
injectionMethod: InjectionMethod.Pump,
|
|
326
327
|
});
|
|
327
328
|
const carbsExpected = {
|
|
328
|
-
entered:
|
|
329
|
+
entered: null,
|
|
329
330
|
suggested: 0,
|
|
330
331
|
};
|
|
331
332
|
const insulinExpected = {
|
|
@@ -336,18 +337,16 @@ describe(`RecommendationScreen`, () => {
|
|
|
336
337
|
// Expect text from insulin -> change -> Expect text updated -> Transfer -> Expect callback
|
|
337
338
|
utils_1.expectTextNotExists(wrapper, `Additional`);
|
|
338
339
|
utils_1.expectTextNotExists(wrapper, `Transfer to logbook`);
|
|
339
|
-
const noButton = wrapper.
|
|
340
|
-
expect(noButton).not.toBeNull();
|
|
340
|
+
const noButton = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
341
341
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
342
342
|
utils_1.expectTextExists(wrapper, `Transfer to logbook`);
|
|
343
|
-
const insulinInput = wrapper.
|
|
343
|
+
const insulinInput = wrapper.getByTestId(enum_1.RecommendedInsulinTestIds.InvisibleInsulinInput);
|
|
344
344
|
// Input 7 into the insulin field
|
|
345
345
|
react_native_testing_library_1.fireEvent(insulinInput, `onEnd`, insulinExpected.entered);
|
|
346
346
|
// Expect text updated
|
|
347
347
|
utils_1.expectTextNotExists(wrapper, `${insulinExpected.suggested}`);
|
|
348
348
|
utils_1.expectTextExists(wrapper, `${insulinExpected.entered}`);
|
|
349
|
-
const transfer = wrapper.
|
|
350
|
-
expect(transfer).not.toBeNull();
|
|
349
|
+
const transfer = wrapper.getByTestId(enum_1.TransferToLogbookTestIds.TransferButton);
|
|
351
350
|
// Press transfer
|
|
352
351
|
react_native_testing_library_1.fireEvent(transfer, `onPress`);
|
|
353
352
|
expect(props.transferToLogbook).toBeCalledWith(carbsExpected, insulinExpected, 3, new Date(global.Date.now()), null);
|
|
@@ -361,12 +360,13 @@ describe(`RecommendationScreen`, () => {
|
|
|
361
360
|
insulinSensitivity: 5,
|
|
362
361
|
targetBGL: 7,
|
|
363
362
|
recentBoluses: [],
|
|
363
|
+
activity: null,
|
|
364
364
|
},
|
|
365
365
|
userReminder: 3,
|
|
366
|
-
injectionMethod:
|
|
366
|
+
injectionMethod: InjectionMethod.Pump,
|
|
367
367
|
});
|
|
368
368
|
const carbsExpected = {
|
|
369
|
-
entered:
|
|
369
|
+
entered: null,
|
|
370
370
|
suggested: 0,
|
|
371
371
|
};
|
|
372
372
|
const insulinExpected = {
|
|
@@ -376,21 +376,19 @@ describe(`RecommendationScreen`, () => {
|
|
|
376
376
|
const invalidInsulin = 300;
|
|
377
377
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
378
378
|
// Answer "No" to recent insulin
|
|
379
|
-
const noButton = wrapper.
|
|
380
|
-
expect(noButton).not.toBeNull();
|
|
379
|
+
const noButton = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
381
380
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
382
381
|
// Verify initial insulin suggestion matches expected
|
|
383
382
|
utils_1.expectTextExists(wrapper, `${insulinExpected.suggested}`);
|
|
384
383
|
// Type invalid value - 300 - on insulinInput
|
|
385
|
-
const insulinInput = wrapper.
|
|
384
|
+
const insulinInput = wrapper.getByTestId(enum_1.RecommendedInsulinTestIds.InvisibleInsulinInput);
|
|
386
385
|
react_native_testing_library_1.fireEvent(insulinInput, `onEnd`, invalidInsulin);
|
|
387
386
|
// After onEnd event, verify the invalid entered value doesn't exist.
|
|
388
387
|
utils_1.expectTextNotExists(wrapper, `${invalidInsulin}`);
|
|
389
388
|
// Value has been reset to initial suggestion
|
|
390
389
|
utils_1.expectTextExists(wrapper, `${insulinExpected.suggested}`);
|
|
391
390
|
// Press transfer to logbook button
|
|
392
|
-
const transfer = wrapper.
|
|
393
|
-
expect(transfer).not.toBeNull();
|
|
391
|
+
const transfer = wrapper.getByTestId(enum_1.TransferToLogbookTestIds.TransferButton);
|
|
394
392
|
react_native_testing_library_1.fireEvent(transfer, `onPress`);
|
|
395
393
|
// Verify the transferred data
|
|
396
394
|
expect(props.transferToLogbook).toBeCalledWith(carbsExpected, insulinExpected, 3, new Date(global.Date.now()), null);
|
|
@@ -404,47 +402,47 @@ describe(`RecommendationScreen`, () => {
|
|
|
404
402
|
insulinSensitivity: 5,
|
|
405
403
|
targetBGL: 7,
|
|
406
404
|
recentBoluses: [],
|
|
405
|
+
activity: null,
|
|
407
406
|
},
|
|
408
407
|
});
|
|
409
408
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
410
409
|
// Expect text from insulin -> change -> Expect text updated -> Transfer -> Expect callback
|
|
411
|
-
const noButton = wrapper.
|
|
412
|
-
expect(noButton).not.toBeNull();
|
|
410
|
+
const noButton = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
413
411
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
414
412
|
utils_1.expectTextExists(wrapper, `Transfer to logbook`);
|
|
415
|
-
const slider = wrapper.
|
|
416
|
-
expect(slider).not.toBeNull();
|
|
413
|
+
const slider = wrapper.getByTestId(enum_1.RemeasureTestIds.RemeasureSlider);
|
|
417
414
|
// Input 2.5 in remeasure slider
|
|
418
415
|
react_native_testing_library_1.fireEvent(slider, `onValueChange`, 2.5);
|
|
419
416
|
// Expect text updated
|
|
420
417
|
utils_1.expectTextNotExists(wrapper, `1.5`);
|
|
421
418
|
utils_1.expectTextExists(wrapper, `2.5`);
|
|
422
|
-
const
|
|
423
|
-
const
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
419
|
+
const sad = MoodEnum[MoodEnum.Sad];
|
|
420
|
+
const icon = utils_1.getIcon(wrapper, sad, false);
|
|
421
|
+
if (icon === null) {
|
|
422
|
+
return fail(`Could not find icon from queryByA11yLabel: ${sad}_${false}`);
|
|
423
|
+
}
|
|
424
|
+
react_native_testing_library_1.fireEvent(icon, `onPress`);
|
|
425
|
+
const transfer = wrapper.getByTestId(enum_1.TransferToLogbookTestIds.TransferButton);
|
|
428
426
|
// Press transfer
|
|
429
427
|
react_native_testing_library_1.fireEvent(transfer, `onPress`);
|
|
430
428
|
const carbsExpected = {
|
|
431
|
-
entered:
|
|
429
|
+
entered: null,
|
|
432
430
|
suggested: 0,
|
|
433
431
|
};
|
|
434
432
|
const insulinExpected = {
|
|
435
|
-
entered:
|
|
433
|
+
entered: null,
|
|
436
434
|
suggested: 2,
|
|
437
435
|
};
|
|
438
|
-
expect(props.transferToLogbook).toBeCalledWith(carbsExpected, insulinExpected, 2.5, new Date(global.Date.now()),
|
|
436
|
+
expect(props.transferToLogbook).toBeCalledWith(carbsExpected, insulinExpected, 2.5, new Date(global.Date.now()), MoodEnum.Sad);
|
|
439
437
|
});
|
|
440
438
|
test.each `
|
|
441
|
-
locale
|
|
442
|
-
${
|
|
443
|
-
${
|
|
444
|
-
${
|
|
445
|
-
${
|
|
446
|
-
${
|
|
447
|
-
${
|
|
439
|
+
locale | text
|
|
440
|
+
${types_1.Languages.da} | ${`INSULIN\nANBEFALING`}
|
|
441
|
+
${types_1.Languages.en} | ${`INSULIN\nRECOMMENDATION`}
|
|
442
|
+
${types_1.Languages.de} | ${`INSULIN\nEMPFEHLUNG`}
|
|
443
|
+
${types_1.Languages.es} | ${`RECOMENDACIÓN\nDE INSULINA`}
|
|
444
|
+
${types_1.Languages.it} | ${`PRESCRIZIONE DI\nINSULINA`}
|
|
445
|
+
${types_1.Languages.fr} | ${`RECOMMANDATION\nD’INSULINE`}
|
|
448
446
|
`(`Language props determine language shown; $locale`, ({ locale, text }) => {
|
|
449
447
|
const props = utils_1.getRecommendationProps({
|
|
450
448
|
language: locale,
|
|
@@ -458,14 +456,24 @@ describe(`RecommendationScreen`, () => {
|
|
|
458
456
|
utils_1.expectTextNotExists(wrapper, `INSULIN\nRECOMMENDATION`);
|
|
459
457
|
expect(props.onError).toBeCalledWith(RecommendationError_1.LanguageError());
|
|
460
458
|
});
|
|
459
|
+
test(`Error is thrown when passing an unsupported activity settings`, () => {
|
|
460
|
+
const props = utils_1.getRecommendationProps({
|
|
461
|
+
calculatorParams: {
|
|
462
|
+
...utils_1.generateDefaultCalculatorParams(),
|
|
463
|
+
activity: { ...utils_1.generateActivityProps(), activityIntensity: hard, activityDuration: 46 },
|
|
464
|
+
},
|
|
465
|
+
});
|
|
466
|
+
react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
467
|
+
expect(props.onError).toBeCalledWith(new Error(types_1.BolusCalculator.Enums.ActivityErrors.InvalidInterval));
|
|
468
|
+
});
|
|
461
469
|
test.each `
|
|
462
|
-
initialLocale
|
|
463
|
-
${
|
|
464
|
-
${
|
|
465
|
-
${
|
|
466
|
-
${
|
|
467
|
-
${
|
|
468
|
-
${
|
|
470
|
+
initialLocale | locale | initialText | text
|
|
471
|
+
${types_1.Languages.en} | ${types_1.Languages.da} | ${`INSULIN\nRECOMMENDATION`} | ${`INSULIN\nANBEFALING`}
|
|
472
|
+
${types_1.Languages.da} | ${types_1.Languages.de} | ${`INSULIN\nANBEFALING`} | ${`INSULIN\nEMPFEHLUNG`}
|
|
473
|
+
${types_1.Languages.de} | ${types_1.Languages.es} | ${`INSULIN\nEMPFEHLUNG`} | ${`RECOMENDACIÓN\nDE INSULINA`}
|
|
474
|
+
${types_1.Languages.es} | ${types_1.Languages.it} | ${`RECOMENDACIÓN\nDE INSULINA`} | ${`PRESCRIZIONE DI\nINSULINA`}
|
|
475
|
+
${types_1.Languages.it} | ${types_1.Languages.fr} | ${`PRESCRIZIONE DI\nINSULINA`} | ${`RECOMMANDATION\nD’INSULINE`}
|
|
476
|
+
${types_1.Languages.fr} | ${types_1.Languages.en} | ${`RECOMMANDATION\nD’INSULINE`} | ${`INSULIN\nRECOMMENDATION`}
|
|
469
477
|
`(`Changing language changes header text; initial-language:$initialLocale to changed-language:$locale`, ({ initialLocale, locale, initialText, text }) => {
|
|
470
478
|
const props = utils_1.getRecommendationProps({ language: initialLocale });
|
|
471
479
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
@@ -489,7 +497,8 @@ describe(`RecommendationScreen`, () => {
|
|
|
489
497
|
calculatorParams: {
|
|
490
498
|
...utils_1.getRecommendationProps().calculatorParams,
|
|
491
499
|
currentBGL: 8,
|
|
492
|
-
|
|
500
|
+
targetBGL: 8,
|
|
501
|
+
recentBoluses: [],
|
|
493
502
|
},
|
|
494
503
|
});
|
|
495
504
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
@@ -501,11 +510,13 @@ describe(`RecommendationScreen`, () => {
|
|
|
501
510
|
...utils_1.getRecommendationProps({
|
|
502
511
|
calculatorParams: {
|
|
503
512
|
...utils_1.getRecommendationProps().calculatorParams,
|
|
513
|
+
// @ts-ignore
|
|
504
514
|
currentBGL: null,
|
|
505
515
|
},
|
|
506
516
|
}),
|
|
507
517
|
currentBKL: null,
|
|
508
518
|
};
|
|
519
|
+
// @ts-ignore
|
|
509
520
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
510
521
|
utils_1.expectTextExists(wrapper, /2\./);
|
|
511
522
|
expect(wrapper.queryAllByText(`-.-`)).toHaveLength(2);
|
|
@@ -547,16 +558,17 @@ describe(`RecommendationScreen`, () => {
|
|
|
547
558
|
});
|
|
548
559
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
549
560
|
utils_1.expectTextExists(wrapper, `INSULIN\nRECOMMENDATION`);
|
|
550
|
-
utils_1.
|
|
561
|
+
const shownInsulin = utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedInsulinTestIds.ShownInsulinText);
|
|
562
|
+
expect(shownInsulin).toBe(`0`);
|
|
551
563
|
});
|
|
552
564
|
test.each `
|
|
553
|
-
intensity
|
|
554
|
-
${
|
|
555
|
-
${
|
|
556
|
-
${
|
|
565
|
+
intensity | translation
|
|
566
|
+
${light} | ${`Let`}
|
|
567
|
+
${moderate} | ${`Moderat`}
|
|
568
|
+
${hard} | ${`Hård`}
|
|
557
569
|
`(`Activity screen is displayed and intensity: $intensity can be translated`, ({ intensity, translation }) => {
|
|
558
570
|
const props = utils_1.getRecommendationProps({
|
|
559
|
-
activityDisplayProps: { activityType:
|
|
571
|
+
activityDisplayProps: { activityType: ActivityEnum.Run, activityTitle: null },
|
|
560
572
|
calculatorParams: {
|
|
561
573
|
...utils_1.getRecommendationProps().calculatorParams,
|
|
562
574
|
activity: {
|
|
@@ -566,12 +578,13 @@ describe(`RecommendationScreen`, () => {
|
|
|
566
578
|
},
|
|
567
579
|
});
|
|
568
580
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
569
|
-
|
|
581
|
+
const englishText = Translations_1.ActivityIntensityTranslations[intensity]();
|
|
582
|
+
utils_1.expectTextExists(wrapper, englishText);
|
|
570
583
|
utils_1.expectTextNotExists(wrapper, translation);
|
|
571
|
-
i18nUtils_1.i18n.activate(
|
|
584
|
+
i18nUtils_1.i18n.activate(types_1.Languages.da);
|
|
572
585
|
wrapper.rerender(<RecommendationScreen_1.default {...props}/>);
|
|
573
586
|
utils_1.expectTextExists(wrapper, translation);
|
|
574
|
-
utils_1.expectTextNotExists(wrapper,
|
|
587
|
+
utils_1.expectTextNotExists(wrapper, englishText);
|
|
575
588
|
});
|
|
576
589
|
test(`Show limitation page at recalculation`, () => {
|
|
577
590
|
const carbRecommendationAnswer = jest.fn();
|
|
@@ -583,26 +596,32 @@ describe(`RecommendationScreen`, () => {
|
|
|
583
596
|
insulinSensitivity: 0.3,
|
|
584
597
|
targetBGL: 8.3,
|
|
585
598
|
recentBoluses: [],
|
|
599
|
+
activity: null,
|
|
586
600
|
},
|
|
587
601
|
userReminder: 5,
|
|
588
602
|
carbRecommendationAnswer,
|
|
589
603
|
});
|
|
604
|
+
// Render the screen, expecting a carb recommendation modal.
|
|
590
605
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
591
606
|
utils_1.expectTextExists(wrapper, `We recommend eating an additional:`);
|
|
592
|
-
|
|
607
|
+
// Get the yes button from the modal
|
|
608
|
+
const yesButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
593
609
|
react_native_testing_library_1.fireEvent(yesButton, `onPress`);
|
|
594
610
|
expect(carbRecommendationAnswer).toBeCalledWith(true);
|
|
595
611
|
utils_1.expectTextExists(wrapper, `Additional`);
|
|
596
|
-
utils_1.
|
|
597
|
-
|
|
598
|
-
expect(
|
|
612
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.EnteredCarbs)).toBe(`1`);
|
|
613
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.RecommendedCarbs)).toBe(`3`);
|
|
614
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.TotalCarbs)).toBe(`4`);
|
|
615
|
+
const carbInput = wrapper.getByTestId(enum_1.RecommendedCarbsTestIds.InvisibleCarbInput);
|
|
616
|
+
const manualCarbInput = 299;
|
|
599
617
|
// Input 299 into the carbs field
|
|
600
|
-
react_native_testing_library_1.fireEvent(carbInput, `onEnd`,
|
|
601
|
-
utils_1.
|
|
618
|
+
react_native_testing_library_1.fireEvent(carbInput, `onEnd`, manualCarbInput);
|
|
619
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.EnteredCarbs)).toBe(`1`);
|
|
620
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.RecommendedCarbs)).toBe(`299`);
|
|
621
|
+
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.TotalCarbs)).toBe(`300`);
|
|
602
622
|
// Expect text from limitation message after recalculation
|
|
603
623
|
utils_1.expectTextExists(wrapper, `${AttentionMessages_1.Messages.RecommendationWasLimited()}`);
|
|
604
|
-
const nextButton = wrapper.
|
|
605
|
-
expect(nextButton).not.toBeNull();
|
|
624
|
+
const nextButton = wrapper.getByTestId(enum_1.LimitationMessageTestIds.OkButton);
|
|
606
625
|
react_native_testing_library_1.fireEvent(nextButton, `onPress`);
|
|
607
626
|
utils_1.expectTextNotExists(wrapper, `${AttentionMessages_1.Messages.RecommendationWasLimited()}`);
|
|
608
627
|
});
|
|
@@ -618,12 +637,13 @@ describe(`Recommendation Screen - RecommendationModal related tests`, () => {
|
|
|
618
637
|
insulinSensitivity: 5,
|
|
619
638
|
targetBGL: 7,
|
|
620
639
|
recentBoluses: [],
|
|
640
|
+
activity: null,
|
|
621
641
|
},
|
|
622
642
|
userReminder: 5,
|
|
623
643
|
carbRecommendationAnswer,
|
|
624
644
|
});
|
|
625
645
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
626
|
-
const noButton = wrapper.
|
|
646
|
+
const noButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.DeclineCarbs);
|
|
627
647
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
628
648
|
expect(carbRecommendationAnswer).toBeCalledWith(false);
|
|
629
649
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
@@ -639,13 +659,14 @@ describe(`Recommendation Screen - RecommendationModal related tests`, () => {
|
|
|
639
659
|
insulinSensitivity: 5,
|
|
640
660
|
targetBGL: 7,
|
|
641
661
|
recentBoluses: [],
|
|
662
|
+
activity: null,
|
|
642
663
|
},
|
|
643
664
|
userReminder: 5,
|
|
644
665
|
carbRecommendationAnswer,
|
|
645
666
|
});
|
|
646
667
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
647
668
|
utils_1.expectTextExists(wrapper, `We recommend eating an additional:`);
|
|
648
|
-
const yesButton = wrapper.
|
|
669
|
+
const yesButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
649
670
|
react_native_testing_library_1.fireEvent(yesButton, `onPress`);
|
|
650
671
|
expect(carbRecommendationAnswer).toBeCalledWith(true);
|
|
651
672
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
@@ -666,9 +687,9 @@ describe(`Recommendation Screen - RecommendationModal related tests`, () => {
|
|
|
666
687
|
userReminder: 5,
|
|
667
688
|
});
|
|
668
689
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
669
|
-
const nextButton = wrapper.
|
|
690
|
+
const nextButton = wrapper.getByTestId(enum_1.LimitationMessageTestIds.OkButton);
|
|
670
691
|
react_native_testing_library_1.fireEvent(nextButton, `onPress`);
|
|
671
|
-
const yesButton = wrapper.
|
|
692
|
+
const yesButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.OkButton);
|
|
672
693
|
react_native_testing_library_1.fireEvent(yesButton, `onPress`);
|
|
673
694
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
674
695
|
utils_1.expectTextNotExists(wrapper, `Additional`);
|
|
@@ -681,10 +702,10 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
681
702
|
const props = utils_1.getRecommendationProps();
|
|
682
703
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
683
704
|
//press exit button
|
|
684
|
-
const exitButton = wrapper.
|
|
705
|
+
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
685
706
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
686
707
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
687
|
-
const saveToLogbookModalButton = wrapper.
|
|
708
|
+
const saveToLogbookModalButton = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.FirstOption);
|
|
688
709
|
react_native_testing_library_1.fireEvent(saveToLogbookModalButton, `onPress`);
|
|
689
710
|
expect(props.transferToLogbook).toBeCalled();
|
|
690
711
|
utils_1.expectTextNotExists(wrapper, `Save to logbook`);
|
|
@@ -694,10 +715,10 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
694
715
|
const props = utils_1.getRecommendationProps();
|
|
695
716
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
696
717
|
//press exit button
|
|
697
|
-
const exitButton = wrapper.
|
|
718
|
+
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
698
719
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
699
720
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
700
|
-
const closeCalculation = wrapper.
|
|
721
|
+
const closeCalculation = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.SecondOption);
|
|
701
722
|
react_native_testing_library_1.fireEvent(closeCalculation, `onPress`);
|
|
702
723
|
expect(props.closeCalculationCallback).toBeCalled();
|
|
703
724
|
utils_1.expectTextNotExists(wrapper, `Save to logbook`);
|
|
@@ -708,7 +729,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
708
729
|
calculatorParams: { ...utils_1.generateDefaultCalculatorParams(), recentBoluses: [] },
|
|
709
730
|
});
|
|
710
731
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
711
|
-
const exitButton = wrapper.
|
|
732
|
+
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
712
733
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
713
734
|
utils_1.expectTextExists(wrapper, `Have you taken insulin within the last 4 hours?`);
|
|
714
735
|
expect(props.showBolusBar).not.toBeCalled();
|
|
@@ -717,22 +738,22 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
717
738
|
test(`Test triggering on/off the ExitModal`, async () => {
|
|
718
739
|
const props = utils_1.getRecommendationProps();
|
|
719
740
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
720
|
-
const exitButton = wrapper.
|
|
741
|
+
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
721
742
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
722
743
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
723
744
|
utils_1.expectTextExists(wrapper, `Save to logbook`);
|
|
724
745
|
utils_1.expectTextExists(wrapper, `Close calculation`);
|
|
725
|
-
const modalExitIcon = wrapper.
|
|
746
|
+
const modalExitIcon = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.ExitButton);
|
|
726
747
|
react_native_testing_library_1.fireEvent(modalExitIcon, `onPress`);
|
|
727
748
|
expect(props.showBolusBar).toBeCalledWith(true);
|
|
728
749
|
utils_1.expectTextNotExists(wrapper, `Save to logbook`);
|
|
729
750
|
utils_1.expectTextNotExists(wrapper, `Close calculation`);
|
|
730
751
|
});
|
|
731
752
|
test(`Can translate ExitModal option`, () => {
|
|
732
|
-
const props = utils_1.getRecommendationProps({ language:
|
|
753
|
+
const props = utils_1.getRecommendationProps({ language: types_1.Languages.da });
|
|
733
754
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
734
755
|
//press exit button
|
|
735
|
-
const exitButton = wrapper.
|
|
756
|
+
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
736
757
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
737
758
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
738
759
|
utils_1.expectTextExists(wrapper, `Luk beregning`);
|
|
@@ -746,17 +767,17 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
746
767
|
expect(props.onError).not.toBeCalled();
|
|
747
768
|
jest.runAllTimers();
|
|
748
769
|
expect(props.onError).not.toBeCalled();
|
|
749
|
-
const modalExitIcon = wrapper.
|
|
770
|
+
const modalExitIcon = wrapper.queryByTestId(enum_1.TwoOptionModalTestIds.ExitButton);
|
|
750
771
|
expect(modalExitIcon).toBeNull();
|
|
751
772
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
752
773
|
utils_1.expectTextExists(wrapper, `More than 15 minutes has passed since this calculation was started.`);
|
|
753
774
|
utils_1.expectTextExists(wrapper, `Yes, save to logbook`);
|
|
754
775
|
utils_1.expectTextExists(wrapper, `No, return to dashboard`);
|
|
755
|
-
i18nUtils_1.i18n.activate(
|
|
776
|
+
i18nUtils_1.i18n.activate(types_1.Languages.da);
|
|
756
777
|
wrapper.rerender(<RecommendationScreen_1.default {...props}/>);
|
|
757
778
|
jest.runAllTimers();
|
|
758
779
|
utils_1.expectTextExists(wrapper, `Der er gået mere end 15 minutter siden udregningen blev startet.`);
|
|
759
|
-
const saveToLogbook = wrapper.
|
|
780
|
+
const saveToLogbook = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.FirstOption);
|
|
760
781
|
react_native_testing_library_1.fireEvent(saveToLogbook, `onPress`);
|
|
761
782
|
expect(props.transferToLogbook).toBeCalled();
|
|
762
783
|
});
|
|
@@ -766,13 +787,13 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
766
787
|
expect(props.onError).not.toBeCalled();
|
|
767
788
|
jest.runAllTimers();
|
|
768
789
|
expect(props.onError).not.toBeCalled();
|
|
769
|
-
const modalExitIcon = wrapper.
|
|
790
|
+
const modalExitIcon = wrapper.queryByTestId(enum_1.TwoOptionModalTestIds.ExitButton);
|
|
770
791
|
expect(modalExitIcon).toBeNull();
|
|
771
792
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
772
793
|
utils_1.expectTextExists(wrapper, `More than 15 minutes has passed since this calculation was started.`);
|
|
773
794
|
utils_1.expectTextExists(wrapper, `Yes, save to logbook`);
|
|
774
795
|
utils_1.expectTextExists(wrapper, `No, return to dashboard`);
|
|
775
|
-
const returnToDashboard = wrapper.
|
|
796
|
+
const returnToDashboard = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.SecondOption);
|
|
776
797
|
react_native_testing_library_1.fireEvent(returnToDashboard, `onPress`);
|
|
777
798
|
expect(props.closeCalculationCallback).toBeCalled();
|
|
778
799
|
});
|
|
@@ -784,13 +805,13 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
784
805
|
expect(props.onError).not.toBeCalled();
|
|
785
806
|
jest.runAllTimers();
|
|
786
807
|
expect(props.onError).not.toBeCalled();
|
|
787
|
-
const modalExitIcon = wrapper.
|
|
808
|
+
const modalExitIcon = wrapper.queryByTestId(enum_1.TwoOptionModalTestIds.ExitButton);
|
|
788
809
|
expect(modalExitIcon).toBeNull();
|
|
789
810
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
790
811
|
utils_1.expectTextExists(wrapper, `More than 15 minutes has passed since this calculation was started.`);
|
|
791
812
|
utils_1.expectTextExists(wrapper, `Start new calculation`);
|
|
792
813
|
utils_1.expectTextExists(wrapper, `Return to dashboard`);
|
|
793
|
-
const returnToDashboard = wrapper.
|
|
814
|
+
const returnToDashboard = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.SecondOption);
|
|
794
815
|
react_native_testing_library_1.fireEvent(returnToDashboard, `onPress`);
|
|
795
816
|
expect(props.closeCalculationCallback).toBeCalled();
|
|
796
817
|
utils_1.expectTextNotExists(wrapper, `Start new calculation`);
|
|
@@ -804,17 +825,17 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
804
825
|
expect(props.onError).not.toBeCalled();
|
|
805
826
|
jest.runAllTimers();
|
|
806
827
|
expect(props.onError).not.toBeCalled();
|
|
807
|
-
const modalExitIcon = wrapper.
|
|
828
|
+
const modalExitIcon = wrapper.queryByTestId(enum_1.TwoOptionModalTestIds.ExitButton);
|
|
808
829
|
expect(modalExitIcon).toBeNull();
|
|
809
830
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
810
831
|
utils_1.expectTextExists(wrapper, `More than 15 minutes has passed since this calculation was started.`);
|
|
811
832
|
utils_1.expectTextExists(wrapper, `Start new calculation`);
|
|
812
833
|
utils_1.expectTextExists(wrapper, `Return to dashboard`);
|
|
813
|
-
i18nUtils_1.i18n.activate(
|
|
834
|
+
i18nUtils_1.i18n.activate(types_1.Languages.da);
|
|
814
835
|
wrapper.rerender(<RecommendationScreen_1.default {...props}/>);
|
|
815
836
|
jest.runAllTimers();
|
|
816
837
|
utils_1.expectTextExists(wrapper, `Der er gået mere end 15 minutter siden udregningen blev startet.`);
|
|
817
|
-
const returnToDashboard = wrapper.
|
|
838
|
+
const returnToDashboard = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.FirstOption);
|
|
818
839
|
react_native_testing_library_1.fireEvent(returnToDashboard, `onPress`);
|
|
819
840
|
expect(props.restartCalculation).toBeCalled();
|
|
820
841
|
utils_1.expectTextNotExists(wrapper, `Der er gået mere end 15 minutter siden udregningen blev startet.`);
|
|
@@ -833,19 +854,22 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
833
854
|
removeEventListener: jest.fn(),
|
|
834
855
|
}));
|
|
835
856
|
const wrapper = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
836
|
-
|
|
857
|
+
// @ts-ignore
|
|
858
|
+
appStateListener?.(`active`);
|
|
837
859
|
// Run twice to test else path
|
|
838
|
-
global.Date.now = () => new Date().getTime() +
|
|
839
|
-
|
|
860
|
+
global.Date.now = () => new Date().getTime() + types_1.Milliseconds.Minute * 14;
|
|
861
|
+
// @ts-ignore
|
|
862
|
+
appStateListener?.(`active`);
|
|
840
863
|
wrapper.rerender(<RecommendationScreen_1.default {...props}/>);
|
|
841
864
|
expect(props.showBolusBar).not.toBeCalledWith(false);
|
|
842
865
|
utils_1.expectTextNotExists(wrapper, `No, return to dashboard`);
|
|
843
|
-
global.Date.now = () => new Date().getTime() +
|
|
866
|
+
global.Date.now = () => new Date().getTime() + types_1.Milliseconds.Minute * 15;
|
|
867
|
+
// @ts-ignore
|
|
844
868
|
appStateListener(`active`);
|
|
845
869
|
wrapper.rerender(<RecommendationScreen_1.default {...props}/>);
|
|
846
870
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
847
871
|
utils_1.expectTextExists(wrapper, `No, return to dashboard`);
|
|
848
|
-
const closeModalButton = wrapper.
|
|
872
|
+
const closeModalButton = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.SecondOption);
|
|
849
873
|
react_native_testing_library_1.fireEvent(closeModalButton, `secondOption`);
|
|
850
874
|
wrapper.rerender(<RecommendationScreen_1.default {...props}/>);
|
|
851
875
|
utils_1.expectTextNotExists(wrapper, `No, return to dashboard`);
|
|
@@ -865,6 +889,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
865
889
|
removeEventListener: jest.fn(),
|
|
866
890
|
}));
|
|
867
891
|
const rendered = react_native_testing_library_1.render(<RecommendationScreen_1.default {...props}/>);
|
|
892
|
+
// @ts-ignore
|
|
868
893
|
appStateListener(`NotAnAppStateStatus`);
|
|
869
894
|
rendered.rerender(<RecommendationScreen_1.default {...props}/>);
|
|
870
895
|
expect(props.showBolusBar).not.toBeCalled();
|