@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
|
@@ -14,23 +14,26 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
14
14
|
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
15
|
if (mod && mod.__esModule) return mod;
|
|
16
16
|
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
const RecommendationCalculator_1 = require("@hedia/recommendation-calculator/src/RecommendationCalculator");
|
|
23
22
|
const types_1 = require("@hedia/types");
|
|
24
|
-
const enum_1 = require("../types/enum");
|
|
25
23
|
const Constants_1 = require("../utils/Constants");
|
|
26
24
|
const Errors = __importStar(require("../utils/RecommendationError"));
|
|
27
25
|
const Validations = __importStar(require("../utils/Validations"));
|
|
26
|
+
const utils_1 = require("./utils");
|
|
27
|
+
const ActivityEnum = types_1.Activity.Enums.ActivityEnum;
|
|
28
|
+
const ActivityIntensity = types_1.Activity.Enums.ActivityIntensity;
|
|
29
|
+
const InjectionMethod = types_1.UserSettings.Enums.InjectionMethod;
|
|
30
|
+
const { light, moderate, hard } = ActivityIntensity;
|
|
28
31
|
describe(`Test validations functions for the recommendation props`, () => {
|
|
29
32
|
test.each `
|
|
30
33
|
validInjectionMethod
|
|
31
|
-
${
|
|
32
|
-
${
|
|
33
|
-
${
|
|
34
|
+
${InjectionMethod.PenHalf}
|
|
35
|
+
${InjectionMethod.PenWhole}
|
|
36
|
+
${InjectionMethod.Pump}
|
|
34
37
|
`(`Validation checking on treatment types $validInjectionMethod `, ({ validInjectionMethod }) => {
|
|
35
38
|
expect(() => Validations.checkInjectionMethod(validInjectionMethod)).not.toThrowError(Errors.InjectionMethodError());
|
|
36
39
|
});
|
|
@@ -74,12 +77,12 @@ describe(`Test validations functions for the recommendation props`, () => {
|
|
|
74
77
|
});
|
|
75
78
|
test.each `
|
|
76
79
|
validLanguage
|
|
77
|
-
${
|
|
78
|
-
${
|
|
79
|
-
${
|
|
80
|
-
${
|
|
81
|
-
${
|
|
82
|
-
${
|
|
80
|
+
${types_1.Languages.da}
|
|
81
|
+
${types_1.Languages.en}
|
|
82
|
+
${types_1.Languages.de}
|
|
83
|
+
${types_1.Languages.es}
|
|
84
|
+
${types_1.Languages.it}
|
|
85
|
+
${types_1.Languages.fr}
|
|
83
86
|
`(`Validation checking on supported languages types $validLanguage`, ({ validLanguage }) => {
|
|
84
87
|
expect(() => Validations.checkLanguage(validLanguage)).not.toThrowError(Errors.LanguageError());
|
|
85
88
|
});
|
|
@@ -92,13 +95,30 @@ describe(`Test validations functions for the recommendation props`, () => {
|
|
|
92
95
|
`(`Validation checking on supported languages types $invalidLanguage throws error`, (invalidLanguage) => {
|
|
93
96
|
expect(() => Validations.checkLanguage(invalidLanguage)).toThrowError(Errors.LanguageError());
|
|
94
97
|
});
|
|
98
|
+
it.each `
|
|
99
|
+
validLatestLogbookFrom6Hours
|
|
100
|
+
${utils_1.generateDefaultLogbook()}
|
|
101
|
+
${null}
|
|
102
|
+
`(`Validation checking on the latest logbook from the latest 6 hours with a valid logbook`, ({ validLatestLogbookFrom6Hours }) => {
|
|
103
|
+
expect(() => Validations.checkLatestLogbook6Hours(validLatestLogbookFrom6Hours)).not.toThrowError(Errors.LatestLogbook6HoursBGLError());
|
|
104
|
+
});
|
|
105
|
+
it.each `
|
|
106
|
+
invalidLatestLogbookFrom6Hours
|
|
107
|
+
${undefined}
|
|
108
|
+
${{}}
|
|
109
|
+
${[]}
|
|
110
|
+
${{ ...utils_1.generateDefaultLogbook(), blood_glucose_millimolar: 1 }}
|
|
111
|
+
${{ ...utils_1.generateDefaultLogbook(), blood_glucose_millimolar: 33.4 }}
|
|
112
|
+
`(`Validation checking on the latest logbook from the latest 6 hours with an invalid logbook `, ({ invalidLatestLogbookFrom6Hours }) => {
|
|
113
|
+
expect(() => Validations.checkLatestLogbook6Hours(invalidLatestLogbookFrom6Hours)).toThrowError(Errors.LatestLogbook6HoursBGLError());
|
|
114
|
+
});
|
|
95
115
|
test.each `
|
|
96
116
|
validActivityType
|
|
97
|
-
${
|
|
98
|
-
${
|
|
99
|
-
${
|
|
100
|
-
${
|
|
101
|
-
${
|
|
117
|
+
${ActivityEnum.Walk}
|
|
118
|
+
${ActivityEnum.Swim}
|
|
119
|
+
${ActivityEnum.Run}
|
|
120
|
+
${ActivityEnum.Other}
|
|
121
|
+
${ActivityEnum.Cycling}
|
|
102
122
|
`(`Validation checking on activity types $validActivityType `, ({ validActivityType }) => {
|
|
103
123
|
expect(() => Validations.checkActivityType(validActivityType)).not.toThrowError(Errors.ActivityTypeError());
|
|
104
124
|
});
|
|
@@ -152,28 +172,22 @@ describe(`Test validations for the calculator parameters`, () => {
|
|
|
152
172
|
});
|
|
153
173
|
test.each `
|
|
154
174
|
validIntensity
|
|
155
|
-
${
|
|
156
|
-
${
|
|
157
|
-
${
|
|
175
|
+
${hard}
|
|
176
|
+
${light}
|
|
177
|
+
${moderate}
|
|
158
178
|
`(`Validation checking on activity $validIntensity`, ({ validIntensity }) => {
|
|
159
179
|
expect(() => Validations.checkActivityIntensity(validIntensity)).not.toThrowError(Errors.ActivityIntensityError());
|
|
160
180
|
});
|
|
161
181
|
test.each `
|
|
162
182
|
invalidIntensity
|
|
163
|
-
${`
|
|
183
|
+
${`Hard`}
|
|
164
184
|
${`easy`}
|
|
165
185
|
${undefined}
|
|
166
186
|
${null}
|
|
167
187
|
`(`Validation checking on activity $invalidIntensity throws error`, ({ invalidIntensity }) => {
|
|
168
188
|
expect(() => Validations.checkActivityIntensity(invalidIntensity)).toThrowError(Errors.ActivityIntensityError());
|
|
169
189
|
});
|
|
170
|
-
const validActivitySettings1 =
|
|
171
|
-
light: { fromZero: 0.25, fromThirty: 0.9, fromFortysix: 0.25 },
|
|
172
|
-
moderate: { fromZero: 0.25, fromThirty: 0.99, fromFortysix: 0.25 },
|
|
173
|
-
hard: { fromZero: 0.25, fromThirty: 0.9, fromFortysix: 1 },
|
|
174
|
-
post: { fromZero: 0, fromThirty: 0, fromFortysix: 0.25 },
|
|
175
|
-
target: 8.3,
|
|
176
|
-
};
|
|
190
|
+
const validActivitySettings1 = utils_1.generateDefaultActivitySettings();
|
|
177
191
|
const validActivitySettings2 = {
|
|
178
192
|
...validActivitySettings1,
|
|
179
193
|
hard: { fromZero: 1, fromThirty: 0.99, fromFortysix: null },
|
|
@@ -184,10 +198,12 @@ describe(`Test validations for the calculator parameters`, () => {
|
|
|
184
198
|
};
|
|
185
199
|
const invalidActivitySettings1 = {
|
|
186
200
|
...validActivitySettings1,
|
|
201
|
+
// @ts-ignore Purposefully invalid settings
|
|
187
202
|
hard: { fromZero: 0, fromThirty: null, fromFortysix: null },
|
|
188
203
|
};
|
|
189
204
|
const invalidActivitySettings2 = {
|
|
190
205
|
...validActivitySettings1,
|
|
206
|
+
// @ts-ignore Purposefully invalid settings
|
|
191
207
|
light: { fromZero: undefined, fromThirty: 0.99, fromFortysix: 0.25 },
|
|
192
208
|
};
|
|
193
209
|
const invalidActivitySettings3 = {
|
|
@@ -195,24 +211,24 @@ describe(`Test validations for the calculator parameters`, () => {
|
|
|
195
211
|
hard: { fromZero: 1, fromThirty: 0.99, fromFortysix: 1.1 },
|
|
196
212
|
};
|
|
197
213
|
const validActivity1 = {
|
|
198
|
-
activityDate: new Date(Date.now() -
|
|
214
|
+
activityDate: new Date(Date.now() - types_1.Milliseconds.Hour * 5 - types_1.Milliseconds.Minute * 9.9),
|
|
199
215
|
activityDuration: 60,
|
|
200
|
-
activityIntensity:
|
|
216
|
+
activityIntensity: moderate,
|
|
201
217
|
activitySettings: validActivitySettings1,
|
|
202
218
|
};
|
|
203
219
|
const validActivity2 = {
|
|
204
220
|
...validActivity1,
|
|
205
|
-
activityDate: new Date(Date.now() -
|
|
221
|
+
activityDate: new Date(Date.now() - types_1.Milliseconds.Hour * 4.5 - types_1.Milliseconds.Minute * 9.9),
|
|
206
222
|
activityDuration: 30,
|
|
207
223
|
};
|
|
208
224
|
const invalidActivity1 = {
|
|
209
225
|
...validActivity1,
|
|
210
|
-
activityDate: new Date(Date.now() -
|
|
226
|
+
activityDate: new Date(Date.now() - types_1.Milliseconds.Hour * 4.5 - types_1.Milliseconds.Minute * 10),
|
|
211
227
|
activityDuration: 30,
|
|
212
228
|
};
|
|
213
229
|
const invalidActivity2 = {
|
|
214
230
|
...validActivity1,
|
|
215
|
-
activityDate: new Date(Date.now() -
|
|
231
|
+
activityDate: new Date(Date.now() - types_1.Milliseconds.Hour * 4.25 - types_1.Milliseconds.Minute * 10),
|
|
216
232
|
activityDuration: 15,
|
|
217
233
|
};
|
|
218
234
|
test(`Can call checkActivity with a valid activity`, () => {
|
|
@@ -368,10 +384,13 @@ describe(`Test validations for the calculator parameters`, () => {
|
|
|
368
384
|
secondsPassed: Constants_1.FOUR_HOURS_SECONDS,
|
|
369
385
|
};
|
|
370
386
|
const invalidBolus1 = {
|
|
387
|
+
// @ts-ignore Forcefully incorrect.
|
|
371
388
|
insulinDose: null,
|
|
389
|
+
// @ts-ignore Forcefully incorrect.
|
|
372
390
|
secondsPassed: null,
|
|
373
391
|
};
|
|
374
392
|
const invalidBolus2 = {
|
|
393
|
+
// @ts-ignore Forcefully incorrect.
|
|
375
394
|
insulinDose: undefined,
|
|
376
395
|
secondsPassed: Constants_1.FOUR_HOURS_SECONDS + 1,
|
|
377
396
|
};
|
|
@@ -411,6 +430,13 @@ describe(`Test validations for the calculator parameters`, () => {
|
|
|
411
430
|
`(`Validation checking on Recent Boluses seconds passed throws error`, ({ invalidRecentBoluses }) => {
|
|
412
431
|
expect(() => Validations.checkRecentBolusesSecondsPassed(invalidRecentBoluses)).toThrowError(Errors.BolusInsulinSecondsPassedError());
|
|
413
432
|
});
|
|
433
|
+
test.each `
|
|
434
|
+
invalidRecentBoluses
|
|
435
|
+
${null}
|
|
436
|
+
${undefined}
|
|
437
|
+
`(`Validation checking on Recent Boluses: null and undefined throws error`, ({ invalidRecentBoluses }) => {
|
|
438
|
+
expect(() => Validations.checkRecentBolus(invalidRecentBoluses)).toThrowError(Errors.RecentBolusError());
|
|
439
|
+
});
|
|
414
440
|
test.each `
|
|
415
441
|
validCurrentBKL
|
|
416
442
|
${0}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
IActivityParams,
|
|
4
|
-
IActivitySettings,
|
|
5
|
-
IRecentBolus,
|
|
6
|
-
} from "@hedia/recommendation-calculator/src/RecommendationCalculator";
|
|
7
|
-
import { BloodGlucoseUnit, BloodKetonesUnit } from "@hedia/types";
|
|
8
|
-
import { ActivityEnum, InjectionMethod, Language, Milliseconds } from "../types/enum";
|
|
1
|
+
import { Activity, BloodGlucoseUnit, BloodKetonesUnit, Languages, Milliseconds, UserSettings } from "@hedia/types";
|
|
2
|
+
import { ActivitySettings, IActivityParams, IRecentBolus, logbookEntry } from "../types/types";
|
|
9
3
|
import { FOUR_HOURS_SECONDS } from "../utils/Constants";
|
|
10
4
|
import * as Errors from "../utils/RecommendationError";
|
|
11
5
|
import * as Validations from "../utils/Validations";
|
|
6
|
+
import { generateDefaultActivitySettings, generateDefaultLogbook } from "./utils";
|
|
7
|
+
|
|
8
|
+
const ActivityEnum = Activity.Enums.ActivityEnum;
|
|
9
|
+
const ActivityIntensity = Activity.Enums.ActivityIntensity;
|
|
10
|
+
const InjectionMethod = UserSettings.Enums.InjectionMethod;
|
|
11
|
+
|
|
12
|
+
const { light, moderate, hard } = ActivityIntensity;
|
|
12
13
|
|
|
13
14
|
describe(`Test validations functions for the recommendation props`, (): void => {
|
|
14
15
|
test.each`
|
|
@@ -18,7 +19,7 @@ describe(`Test validations functions for the recommendation props`, (): void =>
|
|
|
18
19
|
${InjectionMethod.Pump}
|
|
19
20
|
`(
|
|
20
21
|
`Validation checking on treatment types $validInjectionMethod `,
|
|
21
|
-
({ validInjectionMethod }: { validInjectionMethod: InjectionMethod }): void => {
|
|
22
|
+
({ validInjectionMethod }: { validInjectionMethod: UserSettings.Enums.InjectionMethod }): void => {
|
|
22
23
|
expect((): void => Validations.checkInjectionMethod(validInjectionMethod)).not.toThrowError(
|
|
23
24
|
Errors.InjectionMethodError(),
|
|
24
25
|
);
|
|
@@ -32,7 +33,7 @@ describe(`Test validations functions for the recommendation props`, (): void =>
|
|
|
32
33
|
${`Hedia`}
|
|
33
34
|
`(
|
|
34
35
|
`Validation checking on treatment types $invalidInjectionMethod throws error`,
|
|
35
|
-
(invalidInjectionMethod: InjectionMethod): void => {
|
|
36
|
+
(invalidInjectionMethod: UserSettings.Enums.InjectionMethod): void => {
|
|
36
37
|
expect((): void => Validations.checkInjectionMethod(invalidInjectionMethod)).toThrowError(
|
|
37
38
|
Errors.InjectionMethodError(),
|
|
38
39
|
);
|
|
@@ -86,15 +87,15 @@ describe(`Test validations functions for the recommendation props`, (): void =>
|
|
|
86
87
|
|
|
87
88
|
test.each`
|
|
88
89
|
validLanguage
|
|
89
|
-
${
|
|
90
|
-
${
|
|
91
|
-
${
|
|
92
|
-
${
|
|
93
|
-
${
|
|
94
|
-
${
|
|
90
|
+
${Languages.da}
|
|
91
|
+
${Languages.en}
|
|
92
|
+
${Languages.de}
|
|
93
|
+
${Languages.es}
|
|
94
|
+
${Languages.it}
|
|
95
|
+
${Languages.fr}
|
|
95
96
|
`(
|
|
96
97
|
`Validation checking on supported languages types $validLanguage`,
|
|
97
|
-
({ validLanguage }: { validLanguage:
|
|
98
|
+
({ validLanguage }: { validLanguage: Languages }): void => {
|
|
98
99
|
expect((): void => Validations.checkLanguage(validLanguage)).not.toThrowError(Errors.LanguageError());
|
|
99
100
|
},
|
|
100
101
|
);
|
|
@@ -107,11 +108,39 @@ describe(`Test validations functions for the recommendation props`, (): void =>
|
|
|
107
108
|
${`Deutsch`}
|
|
108
109
|
`(
|
|
109
110
|
`Validation checking on supported languages types $invalidLanguage throws error`,
|
|
110
|
-
(invalidLanguage:
|
|
111
|
+
(invalidLanguage: Languages): void => {
|
|
111
112
|
expect((): void => Validations.checkLanguage(invalidLanguage)).toThrowError(Errors.LanguageError());
|
|
112
113
|
},
|
|
113
114
|
);
|
|
114
115
|
|
|
116
|
+
it.each`
|
|
117
|
+
validLatestLogbookFrom6Hours
|
|
118
|
+
${generateDefaultLogbook()}
|
|
119
|
+
${null}
|
|
120
|
+
`(
|
|
121
|
+
`Validation checking on the latest logbook from the latest 6 hours with a valid logbook`,
|
|
122
|
+
({ validLatestLogbookFrom6Hours }: { validLatestLogbookFrom6Hours: logbookEntry }): void => {
|
|
123
|
+
expect((): void => Validations.checkLatestLogbook6Hours(validLatestLogbookFrom6Hours)).not.toThrowError(
|
|
124
|
+
Errors.LatestLogbook6HoursBGLError(),
|
|
125
|
+
);
|
|
126
|
+
},
|
|
127
|
+
);
|
|
128
|
+
it.each`
|
|
129
|
+
invalidLatestLogbookFrom6Hours
|
|
130
|
+
${undefined}
|
|
131
|
+
${{}}
|
|
132
|
+
${[]}
|
|
133
|
+
${{ ...generateDefaultLogbook(), blood_glucose_millimolar: 1 }}
|
|
134
|
+
${{ ...generateDefaultLogbook(), blood_glucose_millimolar: 33.4 }}
|
|
135
|
+
`(
|
|
136
|
+
`Validation checking on the latest logbook from the latest 6 hours with an invalid logbook `,
|
|
137
|
+
({ invalidLatestLogbookFrom6Hours }: { invalidLatestLogbookFrom6Hours: logbookEntry }): void => {
|
|
138
|
+
expect((): void => Validations.checkLatestLogbook6Hours(invalidLatestLogbookFrom6Hours)).toThrowError(
|
|
139
|
+
Errors.LatestLogbook6HoursBGLError(),
|
|
140
|
+
);
|
|
141
|
+
},
|
|
142
|
+
);
|
|
143
|
+
|
|
115
144
|
test.each`
|
|
116
145
|
validActivityType
|
|
117
146
|
${ActivityEnum.Walk}
|
|
@@ -121,7 +150,7 @@ describe(`Test validations functions for the recommendation props`, (): void =>
|
|
|
121
150
|
${ActivityEnum.Cycling}
|
|
122
151
|
`(
|
|
123
152
|
`Validation checking on activity types $validActivityType `,
|
|
124
|
-
({ validActivityType }: { validActivityType: ActivityEnum }): void => {
|
|
153
|
+
({ validActivityType }: { validActivityType: Activity.Enums.ActivityEnum }): void => {
|
|
125
154
|
expect((): void => Validations.checkActivityType(validActivityType)).not.toThrowError(
|
|
126
155
|
Errors.ActivityTypeError(),
|
|
127
156
|
);
|
|
@@ -137,7 +166,7 @@ describe(`Test validations functions for the recommendation props`, (): void =>
|
|
|
137
166
|
${`Cycle`}
|
|
138
167
|
`(
|
|
139
168
|
`Validation checking on activity types $invalidActivityType throws error`,
|
|
140
|
-
(invalidActivityType: ActivityEnum): void => {
|
|
169
|
+
(invalidActivityType: Activity.Enums.ActivityEnum): void => {
|
|
141
170
|
expect((): void => Validations.checkActivityType(invalidActivityType)).toThrowError(
|
|
142
171
|
Errors.ActivityTypeError(),
|
|
143
172
|
);
|
|
@@ -201,12 +230,12 @@ describe(`Test validations for the calculator parameters`, (): void => {
|
|
|
201
230
|
|
|
202
231
|
test.each`
|
|
203
232
|
validIntensity
|
|
204
|
-
${
|
|
205
|
-
${
|
|
206
|
-
${
|
|
233
|
+
${hard}
|
|
234
|
+
${light}
|
|
235
|
+
${moderate}
|
|
207
236
|
`(
|
|
208
237
|
`Validation checking on activity $validIntensity`,
|
|
209
|
-
({ validIntensity }: { validIntensity: ActivityIntensity }): void => {
|
|
238
|
+
({ validIntensity }: { validIntensity: Activity.Enums.ActivityIntensity }): void => {
|
|
210
239
|
expect((): void => Validations.checkActivityIntensity(validIntensity)).not.toThrowError(
|
|
211
240
|
Errors.ActivityIntensityError(),
|
|
212
241
|
);
|
|
@@ -215,48 +244,44 @@ describe(`Test validations for the calculator parameters`, (): void => {
|
|
|
215
244
|
|
|
216
245
|
test.each`
|
|
217
246
|
invalidIntensity
|
|
218
|
-
${`
|
|
247
|
+
${`Hard`}
|
|
219
248
|
${`easy`}
|
|
220
249
|
${undefined}
|
|
221
250
|
${null}
|
|
222
251
|
`(
|
|
223
252
|
`Validation checking on activity $invalidIntensity throws error`,
|
|
224
|
-
({ invalidIntensity }: { invalidIntensity: ActivityIntensity }): void => {
|
|
253
|
+
({ invalidIntensity }: { invalidIntensity: Activity.Enums.ActivityIntensity }): void => {
|
|
225
254
|
expect((): void => Validations.checkActivityIntensity(invalidIntensity)).toThrowError(
|
|
226
255
|
Errors.ActivityIntensityError(),
|
|
227
256
|
);
|
|
228
257
|
},
|
|
229
258
|
);
|
|
230
259
|
|
|
231
|
-
const validActivitySettings1:
|
|
232
|
-
light: { fromZero: 0.25, fromThirty: 0.9, fromFortysix: 0.25 },
|
|
233
|
-
moderate: { fromZero: 0.25, fromThirty: 0.99, fromFortysix: 0.25 },
|
|
234
|
-
hard: { fromZero: 0.25, fromThirty: 0.9, fromFortysix: 1 },
|
|
235
|
-
post: { fromZero: 0, fromThirty: 0, fromFortysix: 0.25 },
|
|
236
|
-
target: 8.3,
|
|
237
|
-
};
|
|
260
|
+
const validActivitySettings1: ActivitySettings = generateDefaultActivitySettings();
|
|
238
261
|
|
|
239
|
-
const validActivitySettings2:
|
|
262
|
+
const validActivitySettings2: ActivitySettings = {
|
|
240
263
|
...validActivitySettings1,
|
|
241
264
|
hard: { fromZero: 1, fromThirty: 0.99, fromFortysix: null },
|
|
242
265
|
};
|
|
243
266
|
|
|
244
|
-
const validActivitySettings3:
|
|
267
|
+
const validActivitySettings3: ActivitySettings = {
|
|
245
268
|
...validActivitySettings1,
|
|
246
269
|
hard: { fromZero: 0, fromThirty: 0, fromFortysix: 0 },
|
|
247
270
|
};
|
|
248
271
|
|
|
249
|
-
const invalidActivitySettings1:
|
|
272
|
+
const invalidActivitySettings1: ActivitySettings = {
|
|
250
273
|
...validActivitySettings1,
|
|
274
|
+
// @ts-ignore Purposefully invalid settings
|
|
251
275
|
hard: { fromZero: 0, fromThirty: null, fromFortysix: null },
|
|
252
276
|
};
|
|
253
277
|
|
|
254
|
-
const invalidActivitySettings2:
|
|
278
|
+
const invalidActivitySettings2: ActivitySettings = {
|
|
255
279
|
...validActivitySettings1,
|
|
280
|
+
// @ts-ignore Purposefully invalid settings
|
|
256
281
|
light: { fromZero: undefined, fromThirty: 0.99, fromFortysix: 0.25 },
|
|
257
282
|
};
|
|
258
283
|
|
|
259
|
-
const invalidActivitySettings3:
|
|
284
|
+
const invalidActivitySettings3: ActivitySettings = {
|
|
260
285
|
...validActivitySettings1,
|
|
261
286
|
hard: { fromZero: 1, fromThirty: 0.99, fromFortysix: 1.1 },
|
|
262
287
|
};
|
|
@@ -264,7 +289,7 @@ describe(`Test validations for the calculator parameters`, (): void => {
|
|
|
264
289
|
const validActivity1: IActivityParams = {
|
|
265
290
|
activityDate: new Date(Date.now() - Milliseconds.Hour * 5 - Milliseconds.Minute * 9.9),
|
|
266
291
|
activityDuration: 60,
|
|
267
|
-
activityIntensity:
|
|
292
|
+
activityIntensity: moderate,
|
|
268
293
|
activitySettings: validActivitySettings1,
|
|
269
294
|
};
|
|
270
295
|
|
|
@@ -325,7 +350,7 @@ describe(`Test validations for the calculator parameters`, (): void => {
|
|
|
325
350
|
${validActivitySettings3}
|
|
326
351
|
`(
|
|
327
352
|
`Validation checking on validActivitySettings`,
|
|
328
|
-
({ validActivitySettings }: { validActivitySettings:
|
|
353
|
+
({ validActivitySettings }: { validActivitySettings: ActivitySettings }): void => {
|
|
329
354
|
expect((): void => Validations.checkActivitySettings(validActivitySettings)).not.toThrowError(
|
|
330
355
|
Errors.ActivitySettingsError(),
|
|
331
356
|
);
|
|
@@ -339,7 +364,7 @@ describe(`Test validations for the calculator parameters`, (): void => {
|
|
|
339
364
|
${invalidActivitySettings3}
|
|
340
365
|
`(
|
|
341
366
|
`Validation checking on invalidActivitySettings throws error`,
|
|
342
|
-
({ invalidActivitySettings }: { invalidActivitySettings:
|
|
367
|
+
({ invalidActivitySettings }: { invalidActivitySettings: ActivitySettings }): void => {
|
|
343
368
|
expect((): void => Validations.checkActivitySettings(invalidActivitySettings)).toThrowError(
|
|
344
369
|
Errors.ActivitySettingsError(),
|
|
345
370
|
);
|
|
@@ -512,10 +537,13 @@ describe(`Test validations for the calculator parameters`, (): void => {
|
|
|
512
537
|
secondsPassed: FOUR_HOURS_SECONDS,
|
|
513
538
|
};
|
|
514
539
|
const invalidBolus1: IRecentBolus = {
|
|
540
|
+
// @ts-ignore Forcefully incorrect.
|
|
515
541
|
insulinDose: null,
|
|
542
|
+
// @ts-ignore Forcefully incorrect.
|
|
516
543
|
secondsPassed: null,
|
|
517
544
|
};
|
|
518
545
|
const invalidBolus2: IRecentBolus = {
|
|
546
|
+
// @ts-ignore Forcefully incorrect.
|
|
519
547
|
insulinDose: undefined,
|
|
520
548
|
secondsPassed: FOUR_HOURS_SECONDS + 1,
|
|
521
549
|
};
|
|
@@ -577,6 +605,20 @@ describe(`Test validations for the calculator parameters`, (): void => {
|
|
|
577
605
|
);
|
|
578
606
|
},
|
|
579
607
|
);
|
|
608
|
+
|
|
609
|
+
test.each`
|
|
610
|
+
invalidRecentBoluses
|
|
611
|
+
${null}
|
|
612
|
+
${undefined}
|
|
613
|
+
`(
|
|
614
|
+
`Validation checking on Recent Boluses: null and undefined throws error`,
|
|
615
|
+
({ invalidRecentBoluses }: { invalidRecentBoluses: Array<IRecentBolus> }): void => {
|
|
616
|
+
expect((): void => Validations.checkRecentBolus(invalidRecentBoluses)).toThrowError(
|
|
617
|
+
Errors.RecentBolusError(),
|
|
618
|
+
);
|
|
619
|
+
},
|
|
620
|
+
);
|
|
621
|
+
|
|
580
622
|
test.each`
|
|
581
623
|
validCurrentBKL
|
|
582
624
|
${0}
|
|
File without changes
|
|
@@ -3,33 +3,36 @@ 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
|
|
6
|
+
const types_1 = require("@hedia/types");
|
|
7
7
|
const react_1 = require("@lingui/react");
|
|
8
8
|
const react_2 = __importDefault(require("react"));
|
|
9
9
|
const react_native_testing_library_1 = require("react-native-testing-library");
|
|
10
10
|
const Activity_1 = __importDefault(require("../../components/activity/Activity"));
|
|
11
11
|
const i18nUtils_1 = require("../../locale/i18nUtils");
|
|
12
12
|
const enum_1 = require("../../types/enum");
|
|
13
|
+
const Translations_1 = require("../../utils/Translations");
|
|
13
14
|
const utils_1 = require("../utils");
|
|
15
|
+
const ActivityIntensity = types_1.Activity.Enums.ActivityIntensity;
|
|
16
|
+
const { light, moderate, hard } = ActivityIntensity;
|
|
14
17
|
describe(`Activity - Component`, () => {
|
|
15
18
|
afterEach(react_native_testing_library_1.cleanup);
|
|
16
19
|
beforeEach(() => {
|
|
17
|
-
i18nUtils_1.i18n.activate(
|
|
20
|
+
i18nUtils_1.i18n.activate(types_1.Languages.en);
|
|
18
21
|
});
|
|
19
22
|
test.each `
|
|
20
23
|
activityIntensity
|
|
21
|
-
${
|
|
22
|
-
${
|
|
23
|
-
${
|
|
24
|
+
${light}
|
|
25
|
+
${moderate}
|
|
26
|
+
${hard}
|
|
24
27
|
`(`Renders $activityIntensity`, ({ activityIntensity }) => {
|
|
25
28
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
26
29
|
const activity = utils_1.generateActivityProps();
|
|
27
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(<Activity_1.default activity={{ ...activity, activityIntensity }} activityType={activityDisplayProps
|
|
30
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(<Activity_1.default activity={{ ...activity, activityIntensity }} activityType={activityDisplayProps?.activityType ?? null} activityTitle={activityDisplayProps?.activityTitle ?? null} activityReduction={0}/>));
|
|
28
31
|
utils_1.expectTextExists(wrapper, `Activity`);
|
|
29
32
|
utils_1.expectTextExists(wrapper, `30`);
|
|
30
33
|
utils_1.expectTextExists(wrapper, `min`);
|
|
31
34
|
utils_1.expectTextExists(wrapper, `Based on the selected activity your insulin recommendation is reduced by:`);
|
|
32
|
-
utils_1.expectTextExists(wrapper, activityIntensity);
|
|
35
|
+
utils_1.expectTextExists(wrapper, Translations_1.ActivityIntensityTranslations[activityIntensity]());
|
|
33
36
|
});
|
|
34
37
|
test.each `
|
|
35
38
|
reduction
|
|
@@ -41,30 +44,48 @@ describe(`Activity - Component`, () => {
|
|
|
41
44
|
`(`Renders activity reduction from decimal: $reduction to percentage`, ({ reduction }) => {
|
|
42
45
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
43
46
|
const activity = utils_1.generateActivityProps();
|
|
44
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(<Activity_1.default activity={activity} activityType={activityDisplayProps
|
|
47
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(<Activity_1.default activity={activity} activityType={activityDisplayProps?.activityType ?? null} activityReduction={reduction} activityTitle={activityDisplayProps?.activityTitle ?? null}/>));
|
|
45
48
|
utils_1.expectTextExists(wrapper, `${reduction * 100}%`);
|
|
46
49
|
});
|
|
50
|
+
test(`Renders activity reduction as 0 when null is passed`, () => {
|
|
51
|
+
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
52
|
+
const activity = utils_1.generateActivityProps();
|
|
53
|
+
const reduction = null;
|
|
54
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(<Activity_1.default activity={activity} activityType={activityDisplayProps?.activityType ?? null} activityReduction={reduction} activityTitle={activityDisplayProps?.activityTitle ?? null}/>));
|
|
55
|
+
const text = utils_1.queryTextFromComponent(wrapper, enum_1.ActivityTestIds.ActivityReduction);
|
|
56
|
+
expect(text).toBe(`0%`);
|
|
57
|
+
});
|
|
47
58
|
test(`Can render activity title`, () => {
|
|
48
59
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
49
60
|
const activity = utils_1.generateActivityProps();
|
|
50
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(<Activity_1.default activity={{ ...activity }} activityType={activityDisplayProps
|
|
51
|
-
utils_1.expectTextExists(wrapper, activityDisplayProps
|
|
61
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(<Activity_1.default activity={{ ...activity }} activityType={activityDisplayProps?.activityType ?? null} activityTitle={activityDisplayProps?.activityTitle ?? null} activityReduction={0}/>));
|
|
62
|
+
utils_1.expectTextExists(wrapper, activityDisplayProps?.activityTitle);
|
|
52
63
|
});
|
|
53
64
|
test.each `
|
|
54
|
-
language | locale
|
|
55
|
-
${`English`} | ${
|
|
56
|
-
${`Danish`} | ${
|
|
57
|
-
${`German`} | ${
|
|
58
|
-
${`Spanish`} | ${
|
|
59
|
-
${`Italian`} | ${
|
|
60
|
-
${`French`} | ${
|
|
65
|
+
language | locale | message
|
|
66
|
+
${`English`} | ${types_1.Languages.en} | ${`Activity`}
|
|
67
|
+
${`Danish`} | ${types_1.Languages.da} | ${`Aktivitet`}
|
|
68
|
+
${`German`} | ${types_1.Languages.de} | ${`Aktivität`}
|
|
69
|
+
${`Spanish`} | ${types_1.Languages.es} | ${`Actividad`}
|
|
70
|
+
${`Italian`} | ${types_1.Languages.it} | ${`Attività fisica`}
|
|
71
|
+
${`French`} | ${types_1.Languages.fr} | ${`Activité`}
|
|
61
72
|
`(`Can render in $language`, ({ message, locale }) => {
|
|
62
73
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
63
74
|
const activity = utils_1.generateActivityProps();
|
|
64
75
|
i18nUtils_1.i18n.activate(locale);
|
|
65
76
|
const wrapper = react_native_testing_library_1.render(<react_1.I18nProvider language={locale} i18n={i18nUtils_1.i18n}>
|
|
66
|
-
<Activity_1.default activity={activity} activityType={activityDisplayProps
|
|
77
|
+
<Activity_1.default activity={activity} activityType={activityDisplayProps?.activityType ?? null} activityTitle={activityDisplayProps?.activityTitle ?? null} activityReduction={0}/>
|
|
67
78
|
</react_1.I18nProvider>);
|
|
68
79
|
utils_1.expectTextExists(wrapper, message);
|
|
69
80
|
});
|
|
81
|
+
test(`ActivityIcon defaults to other if activityType is null`, () => {
|
|
82
|
+
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
83
|
+
const activity = utils_1.generateActivityProps();
|
|
84
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(<Activity_1.default activity={{ ...activity }} activityType={null} activityTitle={activityDisplayProps?.activityTitle ?? null} activityReduction={0}/>));
|
|
85
|
+
utils_1.expectTextExists(wrapper, activityDisplayProps?.activityTitle);
|
|
86
|
+
const existingLabel = `${types_1.Activity.Enums.ActivityEnum[types_1.Activity.Enums.ActivityEnum.Other]}_activity`;
|
|
87
|
+
const nonExistingLabel = `${types_1.Activity.Enums.ActivityEnum[types_1.Activity.Enums.ActivityEnum.Run]}_activity`;
|
|
88
|
+
expect(wrapper.queryByA11yLabel(existingLabel)).not.toBeNull();
|
|
89
|
+
expect(wrapper.queryByA11yLabel(nonExistingLabel)).toBeNull();
|
|
90
|
+
});
|
|
70
91
|
});
|