@hedia/recommendation-screen 2.1.1 → 2.1.3-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/clover.xml +378 -367
- package/coverage/coverage-final.json +18 -18
- package/coverage/lcov-report/index.html +15 -15
- package/coverage/lcov-report/src/RecommendationScreen.tsx.html +112 -67
- package/coverage/lcov-report/src/__tests__/index.html +1 -1
- package/coverage/lcov-report/src/__tests__/utils.tsx.html +11 -11
- package/coverage/lcov-report/src/components/Header.tsx.html +2 -2
- package/coverage/lcov-report/src/components/InfoBars.tsx.html +49 -19
- package/coverage/lcov-report/src/components/InvisibleNumberInput.tsx.html +1 -1
- package/coverage/lcov-report/src/components/LimitationMessage.tsx.html +1 -1
- package/coverage/lcov-report/src/components/LineSeparator.tsx.html +2 -2
- package/coverage/lcov-report/src/components/RecentInsulin.tsx.html +1 -1
- package/coverage/lcov-report/src/components/RecommendationModal.tsx.html +17 -17
- package/coverage/lcov-report/src/components/RecommendedCarbs.tsx.html +13 -13
- package/coverage/lcov-report/src/components/RecommendedInsulin.tsx.html +11 -11
- package/coverage/lcov-report/src/components/Remeasure.tsx.html +12 -12
- package/coverage/lcov-report/src/components/TransferToLogbook.tsx.html +5 -5
- package/coverage/lcov-report/src/components/TwoOptionModal.tsx.html +1 -1
- package/coverage/lcov-report/src/components/activity/Activity.tsx.html +1 -1
- package/coverage/lcov-report/src/components/activity/ActivityIcon.tsx.html +1 -1
- package/coverage/lcov-report/src/components/activity/ActivityIntensity.tsx.html +1 -1
- package/coverage/lcov-report/src/components/activity/index.html +1 -1
- package/coverage/lcov-report/src/components/index.html +7 -7
- package/coverage/lcov-report/src/components/mood/Emotion.tsx.html +8 -8
- package/coverage/lcov-report/src/components/mood/MoodIcon.tsx.html +8 -8
- package/coverage/lcov-report/src/components/mood/index.html +1 -1
- package/coverage/lcov-report/src/index.html +7 -7
- package/coverage/lcov-report/src/locale/i18nUtils.ts.html +5 -5
- package/coverage/lcov-report/src/locale/index.html +1 -1
- package/coverage/lcov-report/src/utils/AttentionMessages.tsx.html +5 -5
- package/coverage/lcov-report/src/utils/Constants.ts.html +1 -1
- package/coverage/lcov-report/src/utils/RecommendationError.tsx.html +41 -8
- package/coverage/lcov-report/src/utils/RecommendationUtils.ts.html +33 -33
- package/coverage/lcov-report/src/utils/Translations.ts.html +1 -1
- package/coverage/lcov-report/src/utils/Utils.ts.html +23 -17
- package/coverage/lcov-report/src/utils/Validations.ts.html +77 -50
- package/coverage/lcov-report/src/utils/index.html +12 -12
- package/coverage/lcov.info +821 -794
- package/ios/Podfile.lock +1 -1
- package/package.json +6 -5
- package/src/RecommendationScreen.d.ts +2 -2
- package/src/{RecommendationScreen.jsx → RecommendationScreen.js} +35 -38
- package/src/__tests__/{RecommendationScreen.test.jsx → RecommendationScreen.test.js} +94 -75
- package/src/__tests__/Validations.test.js +18 -0
- package/src/__tests__/components/{Activity.test.jsx → Activity.test.js} +7 -8
- package/src/__tests__/components/{Emotion.test.jsx → Emotion.test.js} +5 -5
- package/src/__tests__/components/{Header.test.jsx → Header.test.js} +3 -4
- package/src/__tests__/components/{InfoBars.test.jsx → InfoBars.test.js} +8 -8
- package/src/__tests__/components/{InvisibleNumberInput.test.jsx → InvisibleNumberInput.test.js} +8 -8
- package/src/__tests__/components/{LimitationMessage.test.jsx → LimitationMessage.test.js} +4 -4
- package/src/__tests__/components/{MoodIcon.test.jsx → MoodIcon.test.js} +2 -2
- package/src/__tests__/components/{RecommendationModal.test.jsx → RecommendationModal.test.js} +8 -9
- package/src/__tests__/components/{RecommendedCarbs.test.jsx → RecommendedCarbs.test.js} +12 -12
- package/src/__tests__/components/{RecommendedInsulin.test.jsx → RecommendedInsulin.test.js} +10 -10
- package/src/__tests__/components/{Remeasure.test.jsx → Remeasure.test.js} +7 -7
- package/src/__tests__/components/{TransferToLogbook.test.jsx → TransferToLogbook.test.js} +3 -3
- package/src/__tests__/components/{TwoOptionModal.test.jsx → TwoOptionModal.test.js} +3 -3
- package/src/__tests__/{utils.jsx → utils.js} +1 -3
- package/src/components/Header.js +71 -0
- package/src/components/{Icon.jsx → Icon.js} +1 -1
- package/src/components/InfoBars.d.ts +7 -2
- package/src/components/{InfoBars.jsx → InfoBars.js} +16 -20
- package/src/components/{InvisibleNumberInput.jsx → InvisibleNumberInput.js} +5 -5
- package/src/components/{LimitationMessage.jsx → LimitationMessage.js} +8 -13
- package/src/components/{LineSeparator.jsx → LineSeparator.js} +2 -3
- package/src/components/{RecentInsulin.jsx → RecentInsulin.js} +12 -20
- package/src/components/{RecommendationModal.jsx → RecommendationModal.js} +29 -50
- package/src/components/RecommendedCarbs.js +176 -0
- package/src/components/{RecommendedInsulin.jsx → RecommendedInsulin.js} +11 -21
- package/src/components/{Remeasure.jsx → Remeasure.js} +14 -20
- package/src/components/{TransferToLogbook.jsx → TransferToLogbook.js} +5 -9
- package/src/components/{TwoOptionModal.jsx → TwoOptionModal.js} +13 -27
- package/src/components/activity/Activity.js +60 -0
- package/src/components/activity/{ActivityIcon.jsx → ActivityIcon.js} +3 -4
- package/src/components/activity/{ActivityIntensity.jsx → ActivityIntensity.js} +5 -8
- package/src/components/mood/{Emotion.jsx → Emotion.js} +5 -7
- package/src/components/mood/{MoodIcon.jsx → MoodIcon.js} +2 -3
- package/src/locale/da/messages.js +1 -1
- package/src/locale/da/messages.po +31 -27
- package/src/locale/de/messages.js +1 -1
- package/src/locale/de/messages.po +31 -27
- package/src/locale/en/messages.js +1 -1
- package/src/locale/en/messages.po +31 -27
- package/src/locale/es/messages.js +1 -1
- package/src/locale/es/messages.po +31 -27
- package/src/locale/fr/messages.js +1 -1
- package/src/locale/fr/messages.po +31 -27
- package/src/locale/it/messages.js +1 -1
- package/src/locale/it/messages.po +31 -27
- package/src/types/enum.d.ts +20 -2
- package/src/types/enum.js +23 -1
- package/src/utils/RecommendationError.d.ts +1 -0
- package/src/utils/{RecommendationError.jsx → RecommendationError.js} +3 -1
- package/src/utils/RecommendationUtils.d.ts +1 -1
- package/src/utils/Utils.d.ts +2 -2
- package/src/utils/Utils.js +2 -2
- package/src/utils/Validations.d.ts +4 -3
- package/src/utils/Validations.js +13 -4
- package/tsconfig.json +1 -1
- package/src/components/Header.jsx +0 -80
- package/src/components/RecommendedCarbs.jsx +0 -200
- package/src/components/activity/Activity.jsx +0 -72
- /package/src/__tests__/{Translate.test.jsx → Translate.test.js} +0 -0
- /package/src/utils/{AttentionMessages.jsx → AttentionMessages.js} +0 -0
|
@@ -42,7 +42,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
42
42
|
},
|
|
43
43
|
userReminder: 5,
|
|
44
44
|
});
|
|
45
|
-
const wrapper = react_native_testing_library_1.render(
|
|
45
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
46
46
|
const okButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
47
47
|
react_native_testing_library_1.fireEvent(okButton, `onPress`);
|
|
48
48
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
@@ -59,7 +59,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
59
59
|
recentBoluses: [],
|
|
60
60
|
},
|
|
61
61
|
});
|
|
62
|
-
const wrapper = react_native_testing_library_1.render(
|
|
62
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
63
63
|
const okButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
64
64
|
react_native_testing_library_1.fireEvent(okButton, `onPress`);
|
|
65
65
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
@@ -85,7 +85,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
85
85
|
},
|
|
86
86
|
userReminder: 6,
|
|
87
87
|
});
|
|
88
|
-
const wrapper = react_native_testing_library_1.render(
|
|
88
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
89
89
|
const okayButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.OkButton);
|
|
90
90
|
react_native_testing_library_1.fireEvent(okayButton, `onPress`);
|
|
91
91
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
@@ -105,7 +105,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
105
105
|
activity: null,
|
|
106
106
|
},
|
|
107
107
|
});
|
|
108
|
-
const wrapper = react_native_testing_library_1.render(
|
|
108
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
109
109
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
110
110
|
utils_1.expectTextNotExists(wrapper, `Recommended`);
|
|
111
111
|
utils_1.expectTextNotExists(wrapper, `Additional`);
|
|
@@ -122,7 +122,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
122
122
|
activity: null,
|
|
123
123
|
},
|
|
124
124
|
});
|
|
125
|
-
const wrapper = react_native_testing_library_1.render(
|
|
125
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
126
126
|
const okButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
127
127
|
react_native_testing_library_1.fireEvent(okButton, `onPress`);
|
|
128
128
|
utils_1.expectTextExists(wrapper, `Food`);
|
|
@@ -135,7 +135,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
135
135
|
});
|
|
136
136
|
test(`Update remeasureTime to number > 0`, () => {
|
|
137
137
|
const props = utils_1.getRecommendationProps();
|
|
138
|
-
const wrapper = react_native_testing_library_1.render(
|
|
138
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
139
139
|
utils_1.expectTextExists(wrapper, `hours`);
|
|
140
140
|
const slider = wrapper.getByTestId(enum_1.RemeasureTestIds.RemeasureSlider);
|
|
141
141
|
react_native_testing_library_1.fireEvent(slider, `onValueChange`, 3.2);
|
|
@@ -144,7 +144,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
144
144
|
});
|
|
145
145
|
test(`Update remeasureTime to 0`, () => {
|
|
146
146
|
const props = utils_1.getRecommendationProps();
|
|
147
|
-
const wrapper = react_native_testing_library_1.render(
|
|
147
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
148
148
|
utils_1.expectTextExists(wrapper, `hours`);
|
|
149
149
|
const slider = wrapper.getByTestId(enum_1.RemeasureTestIds.RemeasureSlider);
|
|
150
150
|
react_native_testing_library_1.fireEvent(slider, `onValueChange`, 0);
|
|
@@ -158,7 +158,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
158
158
|
recentBoluses: [],
|
|
159
159
|
},
|
|
160
160
|
});
|
|
161
|
-
const wrapper = react_native_testing_library_1.render(
|
|
161
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
162
162
|
expect(props.onRecentInsulinYes).not.toBeCalled();
|
|
163
163
|
utils_1.expectTextExists(wrapper, `Recommended amount of insulin`);
|
|
164
164
|
const button = wrapper.getByTestId(enum_1.RecentInsulinTestIds.Yes);
|
|
@@ -173,7 +173,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
173
173
|
recentBoluses: [],
|
|
174
174
|
},
|
|
175
175
|
});
|
|
176
|
-
const wrapper = react_native_testing_library_1.render(
|
|
176
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
177
177
|
utils_1.expectTextExists(wrapper, `Have you taken insulin within the last 4 hours?`);
|
|
178
178
|
const button = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
179
179
|
react_native_testing_library_1.fireEvent(button, `onPress`);
|
|
@@ -183,7 +183,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
183
183
|
});
|
|
184
184
|
test(`Selecting neutral will set neutral to active`, () => {
|
|
185
185
|
const props = utils_1.getRecommendationProps();
|
|
186
|
-
const wrapper = react_native_testing_library_1.render(
|
|
186
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
187
187
|
const neutral = MoodEnum[MoodEnum.Neutral];
|
|
188
188
|
const icon = utils_1.getIcon(wrapper, neutral, false);
|
|
189
189
|
if (icon === null) {
|
|
@@ -219,7 +219,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
219
219
|
entered: null,
|
|
220
220
|
suggested: 0,
|
|
221
221
|
};
|
|
222
|
-
const wrapper = react_native_testing_library_1.render(
|
|
222
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
223
223
|
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.EnteredCarbs)).toBe(`25`);
|
|
224
224
|
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.RecommendedCarbs)).toBe(`1`);
|
|
225
225
|
expect(utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedCarbsTestIds.TotalCarbs)).toBe(`26`);
|
|
@@ -271,7 +271,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
271
271
|
entered: null,
|
|
272
272
|
suggested: 0,
|
|
273
273
|
};
|
|
274
|
-
const wrapper = react_native_testing_library_1.render(
|
|
274
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
275
275
|
// Expect text from carbs -> change -> Expect text updated -> Transfer -> Expect callback
|
|
276
276
|
utils_1.expectTextExists(wrapper, `1`);
|
|
277
277
|
const removeButton = wrapper.getByTestId(enum_1.RecommendedCarbsTestIds.RemoveRecommendation);
|
|
@@ -305,7 +305,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
305
305
|
recentBoluses,
|
|
306
306
|
},
|
|
307
307
|
});
|
|
308
|
-
const wrapper = react_native_testing_library_1.render(
|
|
308
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
309
309
|
if (shown) {
|
|
310
310
|
return utils_1.expectTextExists(wrapper, `Have you taken insulin within the last 4 hours?`);
|
|
311
311
|
}
|
|
@@ -333,7 +333,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
333
333
|
entered: 7,
|
|
334
334
|
suggested: 2,
|
|
335
335
|
};
|
|
336
|
-
const wrapper = react_native_testing_library_1.render(
|
|
336
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
337
337
|
// Expect text from insulin -> change -> Expect text updated -> Transfer -> Expect callback
|
|
338
338
|
utils_1.expectTextNotExists(wrapper, `Additional`);
|
|
339
339
|
utils_1.expectTextNotExists(wrapper, `Transfer to logbook`);
|
|
@@ -374,7 +374,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
374
374
|
suggested: 2,
|
|
375
375
|
};
|
|
376
376
|
const invalidInsulin = 300;
|
|
377
|
-
const wrapper = react_native_testing_library_1.render(
|
|
377
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
378
378
|
// Answer "No" to recent insulin
|
|
379
379
|
const noButton = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
380
380
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
@@ -405,7 +405,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
405
405
|
activity: null,
|
|
406
406
|
},
|
|
407
407
|
});
|
|
408
|
-
const wrapper = react_native_testing_library_1.render(
|
|
408
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
409
409
|
// Expect text from insulin -> change -> Expect text updated -> Transfer -> Expect callback
|
|
410
410
|
const noButton = wrapper.getByTestId(enum_1.RecentInsulinTestIds.No);
|
|
411
411
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
@@ -447,12 +447,12 @@ describe(`RecommendationScreen`, () => {
|
|
|
447
447
|
const props = utils_1.getRecommendationProps({
|
|
448
448
|
language: locale,
|
|
449
449
|
});
|
|
450
|
-
const wrapper = react_native_testing_library_1.render(
|
|
450
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
451
451
|
utils_1.expectTextExists(wrapper, text);
|
|
452
452
|
});
|
|
453
453
|
test(`Error is thrown when passing an unsupported language`, () => {
|
|
454
454
|
const props = utils_1.getRecommendationProps();
|
|
455
|
-
const wrapper = react_native_testing_library_1.render(
|
|
455
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props, { language: `INVALID_LANGUAGE` })));
|
|
456
456
|
utils_1.expectTextNotExists(wrapper, `INSULIN\nRECOMMENDATION`);
|
|
457
457
|
expect(props.onError).toBeCalledWith(RecommendationError_1.LanguageError());
|
|
458
458
|
});
|
|
@@ -463,7 +463,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
463
463
|
activity: { ...utils_1.generateActivityProps(), activityIntensity: hard, activityDuration: 46 },
|
|
464
464
|
},
|
|
465
465
|
});
|
|
466
|
-
react_native_testing_library_1.render(
|
|
466
|
+
react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
467
467
|
expect(props.onError).toBeCalledWith(new Error(types_1.BolusCalculator.Enums.ActivityErrors.InvalidInterval));
|
|
468
468
|
});
|
|
469
469
|
test.each `
|
|
@@ -476,17 +476,17 @@ describe(`RecommendationScreen`, () => {
|
|
|
476
476
|
${types_1.Languages.fr} | ${types_1.Languages.en} | ${`RECOMMANDATION\nD’INSULINE`} | ${`INSULIN\nRECOMMENDATION`}
|
|
477
477
|
`(`Changing language changes header text; initial-language:$initialLocale to changed-language:$locale`, ({ initialLocale, locale, initialText, text }) => {
|
|
478
478
|
const props = utils_1.getRecommendationProps({ language: initialLocale });
|
|
479
|
-
const wrapper = react_native_testing_library_1.render(
|
|
479
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
480
480
|
utils_1.expectTextExists(wrapper, initialText);
|
|
481
481
|
utils_1.expectTextNotExists(wrapper, text);
|
|
482
482
|
i18nUtils_1.i18n.activate(locale);
|
|
483
|
-
wrapper.rerender(
|
|
483
|
+
wrapper.rerender(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
484
484
|
utils_1.expectTextNotExists(wrapper, initialText);
|
|
485
485
|
utils_1.expectTextExists(wrapper, text);
|
|
486
486
|
});
|
|
487
487
|
test(`Timeout callback runs after 15 minutes`, () => {
|
|
488
488
|
const props = utils_1.getRecommendationProps();
|
|
489
|
-
const wrapper = react_native_testing_library_1.render(
|
|
489
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
490
490
|
expect(props.onError).not.toBeCalled();
|
|
491
491
|
jest.runAllTimers();
|
|
492
492
|
expect(props.onError).not.toBeCalled();
|
|
@@ -501,62 +501,81 @@ describe(`RecommendationScreen`, () => {
|
|
|
501
501
|
recentBoluses: [],
|
|
502
502
|
},
|
|
503
503
|
});
|
|
504
|
-
const wrapper = react_native_testing_library_1.render(
|
|
504
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
505
505
|
utils_1.expectTextExists(wrapper, `INSULIN\nRECOMMENDATION`);
|
|
506
506
|
utils_1.expectTextExists(wrapper, `0`);
|
|
507
507
|
});
|
|
508
508
|
test(`InfoBars behave as expected with BGL & Active Insulin`, () => {
|
|
509
|
+
const { BloodGlucose: BGValueTestID, BloodKetone: BKValueTestID, ActiveInsulin: ActiveInsulinValueTestID, } = enum_1.InfoBarTestIds.Value;
|
|
510
|
+
const { ActiveInsulin: ActiveInsulinUnitTestID } = enum_1.InfoBarTestIds.Unit;
|
|
509
511
|
const props = {
|
|
510
512
|
...utils_1.getRecommendationProps({
|
|
511
513
|
calculatorParams: {
|
|
512
514
|
...utils_1.getRecommendationProps().calculatorParams,
|
|
513
|
-
// @ts-ignore
|
|
514
515
|
currentBGL: null,
|
|
515
516
|
},
|
|
516
517
|
}),
|
|
517
518
|
currentBKL: null,
|
|
518
519
|
};
|
|
519
|
-
|
|
520
|
-
const
|
|
521
|
-
utils_1.
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
520
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
521
|
+
const shownKetoneValue = utils_1.queryTextFromComponent(wrapper, BKValueTestID);
|
|
522
|
+
const shownGlucoseValue = utils_1.queryTextFromComponent(wrapper, BGValueTestID);
|
|
523
|
+
const shownActiveInsulinValue = utils_1.queryTextFromComponent(wrapper, ActiveInsulinValueTestID);
|
|
524
|
+
const shownActiveInsulinUnit = utils_1.queryTextFromComponent(wrapper, ActiveInsulinUnitTestID);
|
|
525
|
+
expect(shownKetoneValue).toBe(`-.-`);
|
|
526
|
+
expect(shownGlucoseValue).toBe(`-.-`);
|
|
527
|
+
expect(shownActiveInsulinValue).not.toBe(`0`);
|
|
528
|
+
expect(shownActiveInsulinUnit).toBe(`units`);
|
|
529
|
+
});
|
|
530
|
+
test(`InfoBars displays bgl and ketones in mg/dL`, () => {
|
|
531
|
+
const { BloodGlucose: BGValueTestID, BloodKetone: BKValueTestID } = enum_1.InfoBarTestIds.Value;
|
|
532
|
+
const { BloodGlucose: BGUnitTestID, BloodKetone: BKUnitTestID } = enum_1.InfoBarTestIds.Unit;
|
|
525
533
|
const props = utils_1.getRecommendationProps({
|
|
526
|
-
calculatorParams: {
|
|
527
|
-
...utils_1.getRecommendationProps().calculatorParams,
|
|
528
|
-
currentBGL: 1.1,
|
|
529
|
-
},
|
|
530
534
|
bloodGlucoseUnit: types_1.BloodGlucoseUnit.MG_DL,
|
|
531
535
|
bloodKetoneUnit: types_1.BloodKetonesUnit.MG_DL,
|
|
532
536
|
});
|
|
533
|
-
const
|
|
534
|
-
const
|
|
535
|
-
const
|
|
536
|
-
utils_1.
|
|
537
|
-
|
|
538
|
-
|
|
537
|
+
const { currentBKL, calculatorParams: { currentBGL }, } = props;
|
|
538
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
539
|
+
const shownKetoneUnit = utils_1.queryTextFromComponent(wrapper, BKUnitTestID);
|
|
540
|
+
const shownKetoneValue = utils_1.queryTextFromComponent(wrapper, BKValueTestID);
|
|
541
|
+
const bklMGDL = Utils_1.Utils.convertBKLToMGDL(currentBKL);
|
|
542
|
+
expect(shownKetoneUnit).toBe(`mg/dL`);
|
|
543
|
+
expect(shownKetoneValue).toBe(`${bklMGDL}`);
|
|
544
|
+
const shownGlucoseUnit = utils_1.queryTextFromComponent(wrapper, BGUnitTestID);
|
|
545
|
+
const shownGlucoseValue = utils_1.queryTextFromComponent(wrapper, BGValueTestID);
|
|
546
|
+
const bglMGDL = Utils_1.Utils.convertBGLToMGDL(currentBGL);
|
|
547
|
+
expect(shownGlucoseUnit).toBe(`mg/dL`);
|
|
548
|
+
expect(shownGlucoseValue).toBe(`${bglMGDL}`);
|
|
539
549
|
});
|
|
540
550
|
test(`InfoBars displays negative level currentBKL as 0`, () => {
|
|
551
|
+
const { BloodKetone: BKValueTestID } = enum_1.InfoBarTestIds.Value;
|
|
552
|
+
const { BloodKetone: BKUnitTestID } = enum_1.InfoBarTestIds.Unit;
|
|
541
553
|
const props = utils_1.getRecommendationProps({
|
|
542
|
-
calculatorParams: {
|
|
543
|
-
...utils_1.getRecommendationProps().calculatorParams,
|
|
544
|
-
currentBGL: 33,
|
|
545
|
-
carbohydrates: 1,
|
|
546
|
-
},
|
|
547
554
|
currentBKL: 0,
|
|
548
555
|
bloodKetoneUnit: types_1.BloodKetonesUnit.MG_DL,
|
|
549
556
|
});
|
|
550
|
-
const wrapper = react_native_testing_library_1.render(
|
|
551
|
-
utils_1.
|
|
552
|
-
utils_1.
|
|
553
|
-
|
|
554
|
-
|
|
557
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
558
|
+
const shownKetoneUnit = utils_1.queryTextFromComponent(wrapper, BKUnitTestID);
|
|
559
|
+
const shownKetoneValue = utils_1.queryTextFromComponent(wrapper, BKValueTestID);
|
|
560
|
+
expect(shownKetoneValue).toBe(`0`);
|
|
561
|
+
expect(shownKetoneUnit).toBe(`mg/dL`);
|
|
562
|
+
});
|
|
563
|
+
test(`InfoBars displays null curentBKL and null BloodKetoneUnit as -`, () => {
|
|
564
|
+
const { BloodKetone: BKValueTestID } = enum_1.InfoBarTestIds.Value;
|
|
565
|
+
const { BloodKetone: BKUnitTestID } = enum_1.InfoBarTestIds.Unit;
|
|
566
|
+
const props = { ...utils_1.getRecommendationProps(), currentBKL: null, bloodKetoneUnit: null };
|
|
567
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
568
|
+
const shownKetoneUnit = utils_1.queryTextFromComponent(wrapper, BKUnitTestID);
|
|
569
|
+
const shownKetoneValue = utils_1.queryTextFromComponent(wrapper, BKValueTestID);
|
|
570
|
+
expect(shownKetoneUnit).toBe(``);
|
|
571
|
+
expect(shownKetoneValue).toBe(`-`);
|
|
572
|
+
});
|
|
573
|
+
test(`Can display with null activityDisplayProps`, () => {
|
|
555
574
|
const props = utils_1.getRecommendationProps({
|
|
556
575
|
calculatorParams: utils_1.getRecommendationProps().calculatorParams,
|
|
557
|
-
activityDisplayProps:
|
|
576
|
+
activityDisplayProps: null,
|
|
558
577
|
});
|
|
559
|
-
const wrapper = react_native_testing_library_1.render(
|
|
578
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
560
579
|
utils_1.expectTextExists(wrapper, `INSULIN\nRECOMMENDATION`);
|
|
561
580
|
const shownInsulin = utils_1.queryTextFromComponent(wrapper, enum_1.RecommendedInsulinTestIds.ShownInsulinText);
|
|
562
581
|
expect(shownInsulin).toBe(`0`);
|
|
@@ -577,12 +596,12 @@ describe(`RecommendationScreen`, () => {
|
|
|
577
596
|
},
|
|
578
597
|
},
|
|
579
598
|
});
|
|
580
|
-
const wrapper = react_native_testing_library_1.render(
|
|
599
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
581
600
|
const englishText = Translations_1.ActivityIntensityTranslations[intensity]();
|
|
582
601
|
utils_1.expectTextExists(wrapper, englishText);
|
|
583
602
|
utils_1.expectTextNotExists(wrapper, translation);
|
|
584
603
|
i18nUtils_1.i18n.activate(types_1.Languages.da);
|
|
585
|
-
wrapper.rerender(
|
|
604
|
+
wrapper.rerender(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
586
605
|
utils_1.expectTextExists(wrapper, translation);
|
|
587
606
|
utils_1.expectTextNotExists(wrapper, englishText);
|
|
588
607
|
});
|
|
@@ -602,7 +621,7 @@ describe(`RecommendationScreen`, () => {
|
|
|
602
621
|
carbRecommendationAnswer,
|
|
603
622
|
});
|
|
604
623
|
// Render the screen, expecting a carb recommendation modal.
|
|
605
|
-
const wrapper = react_native_testing_library_1.render(
|
|
624
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
606
625
|
utils_1.expectTextExists(wrapper, `We recommend eating an additional:`);
|
|
607
626
|
// Get the yes button from the modal
|
|
608
627
|
const yesButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
@@ -642,7 +661,7 @@ describe(`Recommendation Screen - RecommendationModal related tests`, () => {
|
|
|
642
661
|
userReminder: 5,
|
|
643
662
|
carbRecommendationAnswer,
|
|
644
663
|
});
|
|
645
|
-
const wrapper = react_native_testing_library_1.render(
|
|
664
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
646
665
|
const noButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.DeclineCarbs);
|
|
647
666
|
react_native_testing_library_1.fireEvent(noButton, `onPress`);
|
|
648
667
|
expect(carbRecommendationAnswer).toBeCalledWith(false);
|
|
@@ -664,7 +683,7 @@ describe(`Recommendation Screen - RecommendationModal related tests`, () => {
|
|
|
664
683
|
userReminder: 5,
|
|
665
684
|
carbRecommendationAnswer,
|
|
666
685
|
});
|
|
667
|
-
const wrapper = react_native_testing_library_1.render(
|
|
686
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
668
687
|
utils_1.expectTextExists(wrapper, `We recommend eating an additional:`);
|
|
669
688
|
const yesButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.AcceptCarbs);
|
|
670
689
|
react_native_testing_library_1.fireEvent(yesButton, `onPress`);
|
|
@@ -686,7 +705,7 @@ describe(`Recommendation Screen - RecommendationModal related tests`, () => {
|
|
|
686
705
|
},
|
|
687
706
|
userReminder: 5,
|
|
688
707
|
});
|
|
689
|
-
const wrapper = react_native_testing_library_1.render(
|
|
708
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
690
709
|
const nextButton = wrapper.getByTestId(enum_1.LimitationMessageTestIds.OkButton);
|
|
691
710
|
react_native_testing_library_1.fireEvent(nextButton, `onPress`);
|
|
692
711
|
const yesButton = wrapper.getByTestId(enum_1.RecommendationModalTestIds.OkButton);
|
|
@@ -700,7 +719,7 @@ describe(`Recommendation Screen - RecommendationModal related tests`, () => {
|
|
|
700
719
|
describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
701
720
|
test(`Save to logbook from ExitModal option`, () => {
|
|
702
721
|
const props = utils_1.getRecommendationProps();
|
|
703
|
-
const wrapper = react_native_testing_library_1.render(
|
|
722
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
704
723
|
//press exit button
|
|
705
724
|
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
706
725
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
@@ -713,7 +732,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
713
732
|
});
|
|
714
733
|
test(`Close calculation callback from ExitModal option`, () => {
|
|
715
734
|
const props = utils_1.getRecommendationProps();
|
|
716
|
-
const wrapper = react_native_testing_library_1.render(
|
|
735
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
717
736
|
//press exit button
|
|
718
737
|
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
719
738
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
@@ -728,7 +747,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
728
747
|
const props = utils_1.getRecommendationProps({
|
|
729
748
|
calculatorParams: { ...utils_1.generateDefaultCalculatorParams(), recentBoluses: [] },
|
|
730
749
|
});
|
|
731
|
-
const wrapper = react_native_testing_library_1.render(
|
|
750
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
732
751
|
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
733
752
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
734
753
|
utils_1.expectTextExists(wrapper, `Have you taken insulin within the last 4 hours?`);
|
|
@@ -737,7 +756,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
737
756
|
});
|
|
738
757
|
test(`Test triggering on/off the ExitModal`, async () => {
|
|
739
758
|
const props = utils_1.getRecommendationProps();
|
|
740
|
-
const wrapper = react_native_testing_library_1.render(
|
|
759
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
741
760
|
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
742
761
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
743
762
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
@@ -751,7 +770,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
751
770
|
});
|
|
752
771
|
test(`Can translate ExitModal option`, () => {
|
|
753
772
|
const props = utils_1.getRecommendationProps({ language: types_1.Languages.da });
|
|
754
|
-
const wrapper = react_native_testing_library_1.render(
|
|
773
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
755
774
|
//press exit button
|
|
756
775
|
const exitButton = wrapper.getByTestId(enum_1.HeaderTestIds.ExitCalculation);
|
|
757
776
|
react_native_testing_library_1.fireEvent(exitButton, `onPress`);
|
|
@@ -763,7 +782,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
763
782
|
});
|
|
764
783
|
test(`Test TimeoutModal first option WITH recommendation visible`, () => {
|
|
765
784
|
const props = utils_1.getRecommendationProps();
|
|
766
|
-
const wrapper = react_native_testing_library_1.render(
|
|
785
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
767
786
|
expect(props.onError).not.toBeCalled();
|
|
768
787
|
jest.runAllTimers();
|
|
769
788
|
expect(props.onError).not.toBeCalled();
|
|
@@ -774,7 +793,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
774
793
|
utils_1.expectTextExists(wrapper, `Yes, save to logbook`);
|
|
775
794
|
utils_1.expectTextExists(wrapper, `No, return to dashboard`);
|
|
776
795
|
i18nUtils_1.i18n.activate(types_1.Languages.da);
|
|
777
|
-
wrapper.rerender(
|
|
796
|
+
wrapper.rerender(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
778
797
|
jest.runAllTimers();
|
|
779
798
|
utils_1.expectTextExists(wrapper, `Der er gået mere end 15 minutter siden udregningen blev startet.`);
|
|
780
799
|
const saveToLogbook = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.FirstOption);
|
|
@@ -783,7 +802,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
783
802
|
});
|
|
784
803
|
test(`Test TimeoutModal second option WITH recommendation visible`, () => {
|
|
785
804
|
const props = utils_1.getRecommendationProps();
|
|
786
|
-
const wrapper = react_native_testing_library_1.render(
|
|
805
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
787
806
|
expect(props.onError).not.toBeCalled();
|
|
788
807
|
jest.runAllTimers();
|
|
789
808
|
expect(props.onError).not.toBeCalled();
|
|
@@ -801,7 +820,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
801
820
|
const props = utils_1.getRecommendationProps({
|
|
802
821
|
calculatorParams: { ...utils_1.generateDefaultCalculatorParams(), recentBoluses: [] },
|
|
803
822
|
});
|
|
804
|
-
const wrapper = react_native_testing_library_1.render(
|
|
823
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
805
824
|
expect(props.onError).not.toBeCalled();
|
|
806
825
|
jest.runAllTimers();
|
|
807
826
|
expect(props.onError).not.toBeCalled();
|
|
@@ -821,7 +840,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
821
840
|
const props = utils_1.getRecommendationProps({
|
|
822
841
|
calculatorParams: { ...utils_1.generateDefaultCalculatorParams(), recentBoluses: [] },
|
|
823
842
|
});
|
|
824
|
-
const wrapper = react_native_testing_library_1.render(
|
|
843
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
825
844
|
expect(props.onError).not.toBeCalled();
|
|
826
845
|
jest.runAllTimers();
|
|
827
846
|
expect(props.onError).not.toBeCalled();
|
|
@@ -832,7 +851,7 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
832
851
|
utils_1.expectTextExists(wrapper, `Start new calculation`);
|
|
833
852
|
utils_1.expectTextExists(wrapper, `Return to dashboard`);
|
|
834
853
|
i18nUtils_1.i18n.activate(types_1.Languages.da);
|
|
835
|
-
wrapper.rerender(
|
|
854
|
+
wrapper.rerender(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
836
855
|
jest.runAllTimers();
|
|
837
856
|
utils_1.expectTextExists(wrapper, `Der er gået mere end 15 minutter siden udregningen blev startet.`);
|
|
838
857
|
const returnToDashboard = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.FirstOption);
|
|
@@ -853,25 +872,25 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
853
872
|
addEventListener: getMockAppStateListener,
|
|
854
873
|
removeEventListener: jest.fn(),
|
|
855
874
|
}));
|
|
856
|
-
const wrapper = react_native_testing_library_1.render(
|
|
875
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
857
876
|
// @ts-ignore
|
|
858
877
|
appStateListener?.(`active`);
|
|
859
878
|
// Run twice to test else path
|
|
860
879
|
global.Date.now = () => new Date().getTime() + types_1.Milliseconds.Minute * 14;
|
|
861
880
|
// @ts-ignore
|
|
862
881
|
appStateListener?.(`active`);
|
|
863
|
-
wrapper.rerender(
|
|
882
|
+
wrapper.rerender(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
864
883
|
expect(props.showBolusBar).not.toBeCalledWith(false);
|
|
865
884
|
utils_1.expectTextNotExists(wrapper, `No, return to dashboard`);
|
|
866
885
|
global.Date.now = () => new Date().getTime() + types_1.Milliseconds.Minute * 15;
|
|
867
886
|
// @ts-ignore
|
|
868
887
|
appStateListener(`active`);
|
|
869
|
-
wrapper.rerender(
|
|
888
|
+
wrapper.rerender(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
870
889
|
expect(props.showBolusBar).toBeCalledWith(false);
|
|
871
890
|
utils_1.expectTextExists(wrapper, `No, return to dashboard`);
|
|
872
891
|
const closeModalButton = wrapper.getByTestId(enum_1.TwoOptionModalTestIds.SecondOption);
|
|
873
892
|
react_native_testing_library_1.fireEvent(closeModalButton, `secondOption`);
|
|
874
|
-
wrapper.rerender(
|
|
893
|
+
wrapper.rerender(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
875
894
|
utils_1.expectTextNotExists(wrapper, `No, return to dashboard`);
|
|
876
895
|
expect(props.showBolusBar).toBeCalledWith(true);
|
|
877
896
|
});
|
|
@@ -888,10 +907,10 @@ describe(`Recommendation Screen - TwoOptionModal related tests`, () => {
|
|
|
888
907
|
addEventListener: getMockAppStateListener,
|
|
889
908
|
removeEventListener: jest.fn(),
|
|
890
909
|
}));
|
|
891
|
-
const rendered = react_native_testing_library_1.render(
|
|
910
|
+
const rendered = react_native_testing_library_1.render(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
892
911
|
// @ts-ignore
|
|
893
912
|
appStateListener(`NotAnAppStateStatus`);
|
|
894
|
-
rendered.rerender(
|
|
913
|
+
rendered.rerender(react_1.default.createElement(RecommendationScreen_1.default, Object.assign({}, props)));
|
|
895
914
|
expect(props.showBolusBar).not.toBeCalled();
|
|
896
915
|
utils_1.expectTextNotExists(rendered, `No, return to dashboard`);
|
|
897
916
|
});
|
|
@@ -60,10 +60,28 @@ describe(`Test validations functions for the recommendation props`, () => {
|
|
|
60
60
|
`(`Validation checking on invalid blood glucose unit types $invalidUnit throws error`, ({ invalidUnit }) => {
|
|
61
61
|
expect(() => Validations.checkBGLUnit(invalidUnit)).toThrowError(Errors.BloodGlucoseUnitError());
|
|
62
62
|
});
|
|
63
|
+
test.each `
|
|
64
|
+
validKetoneProps
|
|
65
|
+
${{ bloodKetoneUnit: types_1.BloodKetonesUnit.MG_DL, currentBKL: 0 }}
|
|
66
|
+
${{ bloodKetoneUnit: types_1.BloodKetonesUnit.MMOL_L, currentBKL: null }}
|
|
67
|
+
${{ bloodKetoneUnit: null, currentBKL: null }}
|
|
68
|
+
`(`Validation checking on valid blood ketones props $validKetoneProps`, ({ validKetoneProps }) => {
|
|
69
|
+
const { bloodKetoneUnit, currentBKL } = validKetoneProps;
|
|
70
|
+
expect(() => Validations.checkBKProps(bloodKetoneUnit, currentBKL)).not.toThrowError(Errors.BloodKetonePropsError());
|
|
71
|
+
});
|
|
72
|
+
test.each `
|
|
73
|
+
invalidKetoneProps
|
|
74
|
+
${{ bloodKetoneUnit: null, currentBKL: 0 }}
|
|
75
|
+
${{ bloodKetoneUnit: null, currentBKL: 8 }}
|
|
76
|
+
`(`Validation checking on invalid blood ketones props $invalidKetoneProps`, ({ invalidKetoneProps }) => {
|
|
77
|
+
const { bloodKetoneUnit, currentBKL } = invalidKetoneProps;
|
|
78
|
+
expect(() => Validations.checkBKProps(bloodKetoneUnit, currentBKL)).toThrowError(Errors.BloodKetonePropsError());
|
|
79
|
+
});
|
|
63
80
|
test.each `
|
|
64
81
|
validUnit
|
|
65
82
|
${types_1.BloodKetonesUnit.MG_DL}
|
|
66
83
|
${types_1.BloodKetonesUnit.MMOL_L}
|
|
84
|
+
${null}
|
|
67
85
|
`(`Validation checking on blood ketones unit types $validUnit`, ({ validUnit }) => {
|
|
68
86
|
expect(() => Validations.checkBKLUnit(validUnit)).not.toThrowError(Errors.BloodKetoneUnitError());
|
|
69
87
|
});
|
|
@@ -27,7 +27,7 @@ describe(`Activity - Component`, () => {
|
|
|
27
27
|
`(`Renders $activityIntensity`, ({ activityIntensity }) => {
|
|
28
28
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
29
29
|
const activity = utils_1.generateActivityProps();
|
|
30
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(
|
|
30
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(react_2.default.createElement(Activity_1.default, { activity: { ...activity, activityIntensity }, activityType: activityDisplayProps?.activityType ?? null, activityTitle: activityDisplayProps?.activityTitle ?? null, activityReduction: 0 })));
|
|
31
31
|
utils_1.expectTextExists(wrapper, `Activity`);
|
|
32
32
|
utils_1.expectTextExists(wrapper, `30`);
|
|
33
33
|
utils_1.expectTextExists(wrapper, `min`);
|
|
@@ -44,21 +44,21 @@ describe(`Activity - Component`, () => {
|
|
|
44
44
|
`(`Renders activity reduction from decimal: $reduction to percentage`, ({ reduction }) => {
|
|
45
45
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
46
46
|
const activity = utils_1.generateActivityProps();
|
|
47
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(
|
|
47
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(react_2.default.createElement(Activity_1.default, { activity: activity, activityType: activityDisplayProps?.activityType ?? null, activityReduction: reduction, activityTitle: activityDisplayProps?.activityTitle ?? null })));
|
|
48
48
|
utils_1.expectTextExists(wrapper, `${reduction * 100}%`);
|
|
49
49
|
});
|
|
50
50
|
test(`Renders activity reduction as 0 when null is passed`, () => {
|
|
51
51
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
52
52
|
const activity = utils_1.generateActivityProps();
|
|
53
53
|
const reduction = null;
|
|
54
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(
|
|
54
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(react_2.default.createElement(Activity_1.default, { activity: activity, activityType: activityDisplayProps?.activityType ?? null, activityReduction: reduction, activityTitle: activityDisplayProps?.activityTitle ?? null })));
|
|
55
55
|
const text = utils_1.queryTextFromComponent(wrapper, enum_1.ActivityTestIds.ActivityReduction);
|
|
56
56
|
expect(text).toBe(`0%`);
|
|
57
57
|
});
|
|
58
58
|
test(`Can render activity title`, () => {
|
|
59
59
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
60
60
|
const activity = utils_1.generateActivityProps();
|
|
61
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(
|
|
61
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(react_2.default.createElement(Activity_1.default, { activity: { ...activity }, activityType: activityDisplayProps?.activityType ?? null, activityTitle: activityDisplayProps?.activityTitle ?? null, activityReduction: 0 })));
|
|
62
62
|
utils_1.expectTextExists(wrapper, activityDisplayProps?.activityTitle);
|
|
63
63
|
});
|
|
64
64
|
test.each `
|
|
@@ -73,15 +73,14 @@ describe(`Activity - Component`, () => {
|
|
|
73
73
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
74
74
|
const activity = utils_1.generateActivityProps();
|
|
75
75
|
i18nUtils_1.i18n.activate(locale);
|
|
76
|
-
const wrapper = react_native_testing_library_1.render(
|
|
77
|
-
|
|
78
|
-
</react_1.I18nProvider>);
|
|
76
|
+
const wrapper = react_native_testing_library_1.render(react_2.default.createElement(react_1.I18nProvider, { language: locale, i18n: i18nUtils_1.i18n },
|
|
77
|
+
react_2.default.createElement(Activity_1.default, { activity: activity, activityType: activityDisplayProps?.activityType ?? null, activityTitle: activityDisplayProps?.activityTitle ?? null, activityReduction: 0 })));
|
|
79
78
|
utils_1.expectTextExists(wrapper, message);
|
|
80
79
|
});
|
|
81
80
|
test(`ActivityIcon defaults to other if activityType is null`, () => {
|
|
82
81
|
const { activityDisplayProps } = utils_1.getRecommendationProps();
|
|
83
82
|
const activity = utils_1.generateActivityProps();
|
|
84
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(
|
|
83
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(react_2.default.createElement(Activity_1.default, { activity: { ...activity }, activityType: null, activityTitle: activityDisplayProps?.activityTitle ?? null, activityReduction: 0 })));
|
|
85
84
|
utils_1.expectTextExists(wrapper, activityDisplayProps?.activityTitle);
|
|
86
85
|
const existingLabel = `${types_1.Activity.Enums.ActivityEnum[types_1.Activity.Enums.ActivityEnum.Other]}_activity`;
|
|
87
86
|
const nonExistingLabel = `${types_1.Activity.Enums.ActivityEnum[types_1.Activity.Enums.ActivityEnum.Run]}_activity`;
|
|
@@ -17,7 +17,7 @@ describe(`Emotion - Component`, () => {
|
|
|
17
17
|
});
|
|
18
18
|
test(`Can mount component in `, () => {
|
|
19
19
|
const mockSelected = jest.fn();
|
|
20
|
-
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(
|
|
20
|
+
const wrapper = react_native_testing_library_1.render(utils_1.i18nProvided(react_1.default.createElement(Emotion_1.default, { moodSelected: mockSelected, currentMood: null })));
|
|
21
21
|
utils_1.expectTextExists(wrapper, `How are you feeling?`);
|
|
22
22
|
});
|
|
23
23
|
test.each `
|
|
@@ -30,7 +30,7 @@ describe(`Emotion - Component`, () => {
|
|
|
30
30
|
`(`Pressing on $moodName icon deselects others`, ({ mood, moodName, preselected, preselectedName, }) => {
|
|
31
31
|
let mockedStateMood = preselected;
|
|
32
32
|
const mockSelected = jest.fn((selectedMood) => (mockedStateMood = selectedMood));
|
|
33
|
-
const wrapper = react_native_testing_library_1.render(
|
|
33
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(Emotion_1.default, { moodSelected: mockSelected, currentMood: mockedStateMood }));
|
|
34
34
|
const preIcon = utils_1.getIcon(wrapper, preselectedName, true);
|
|
35
35
|
if (preIcon === null) {
|
|
36
36
|
return fail(`No icon found for queryByA11yLabel: ${preselectedName}_${true}`);
|
|
@@ -42,7 +42,7 @@ describe(`Emotion - Component`, () => {
|
|
|
42
42
|
// Select a different mood
|
|
43
43
|
react_native_testing_library_1.fireEvent(newIcon, `onPress`);
|
|
44
44
|
expect(mockedStateMood).toBe(mood);
|
|
45
|
-
wrapper.update(
|
|
45
|
+
wrapper.update(react_1.default.createElement(Emotion_1.default, { moodSelected: mockSelected, currentMood: mockedStateMood }));
|
|
46
46
|
const moodValues = Object.values(MoodEnum).filter((value) => typeof value === `string`);
|
|
47
47
|
moodValues.forEach((value) => {
|
|
48
48
|
if (moodName === value) {
|
|
@@ -59,7 +59,7 @@ describe(`Emotion - Component`, () => {
|
|
|
59
59
|
let mockedStateMood = MoodEnum.Happy;
|
|
60
60
|
const mockSelected = jest.fn((newMood) => (mockedStateMood = newMood));
|
|
61
61
|
const mood = MoodEnum[mockedStateMood];
|
|
62
|
-
const wrapper = react_native_testing_library_1.render(
|
|
62
|
+
const wrapper = react_native_testing_library_1.render(react_1.default.createElement(Emotion_1.default, { moodSelected: mockSelected, currentMood: mockedStateMood }));
|
|
63
63
|
// current mood has already been selected: Happy
|
|
64
64
|
expect(utils_1.getIcon(wrapper, mood, true)).not.toBeNull();
|
|
65
65
|
expect(utils_1.getIcon(wrapper, mood, false)).toBeNull();
|
|
@@ -68,7 +68,7 @@ describe(`Emotion - Component`, () => {
|
|
|
68
68
|
return fail(`No icon found for queryByA11yLabel: ${mood}_${true}`);
|
|
69
69
|
}
|
|
70
70
|
react_native_testing_library_1.fireEvent(icon, `onPress`);
|
|
71
|
-
wrapper.update(
|
|
71
|
+
wrapper.update(react_1.default.createElement(Emotion_1.default, { moodSelected: mockSelected, currentMood: mockedStateMood }));
|
|
72
72
|
expect(utils_1.getIcon(wrapper, mood, true)).toBeNull();
|
|
73
73
|
expect(utils_1.getIcon(wrapper, mood, false)).not.toBeNull();
|
|
74
74
|
});
|