• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

akvo / nmis-mobile / 5455658348

04 Jul 2023 02:07PM UTC coverage: 64.636%. First build
5455658348

Pull #34

github

web-flow
Merge 048d34aab into 9af4fcefc
Pull Request #34: Feature/31 geolocation question type

250 of 400 branches covered (62.5%)

Branch coverage included in aggregate %.

84 of 84 new or added lines in 6 files covered. (100.0%)

514 of 782 relevant lines covered (65.73%)

10.22 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

67.86
/app/src/form/components/QuestionField.js
1
import React from 'react';
2
import {
3
  TypeDate,
4
  TypeImage,
5
  TypeInput,
6
  TypeMultipleOption,
7
  TypeOption,
8
  TypeText,
9
  TypeNumber,
10
  TypeGeo,
11
} from '../fields';
12
import { useField } from 'formik';
13
import { View, Text } from 'react-native';
14
import { styles } from '../styles';
15

16
const QuestionField = ({ keyform, field: questionField, setFieldValue, values, validate }) => {
3✔
17
  const [field, meta, helpers] = useField({ name: questionField.id, validate });
124✔
18

19
  const handleOnChangeField = (id, value) => {
124✔
20
    helpers.setTouched({ [field.name]: true });
×
21
    setFieldValue(id, value);
×
22
  };
23

24
  const renderField = () => {
124✔
25
    switch (questionField?.type) {
124!
26
      case 'date':
27
        return (
14✔
28
          <TypeDate
29
            keyform={keyform}
30
            onChange={handleOnChangeField}
31
            values={values}
32
            {...questionField}
33
          />
34
        );
35
      case 'image':
36
        return (
×
37
          <TypeImage
38
            keyform={keyform}
39
            onChange={handleOnChangeField}
40
            values={values}
41
            {...questionField}
42
          />
43
        );
44
      case 'multiple_option':
45
        return (
×
46
          <TypeMultipleOption
47
            keyform={keyform}
48
            onChange={handleOnChangeField}
49
            values={values}
50
            {...questionField}
51
          />
52
        );
53
      case 'option':
54
        return (
57✔
55
          <TypeOption
56
            keyform={keyform}
57
            onChange={handleOnChangeField}
58
            values={values}
59
            {...questionField}
60
          />
61
        );
62
      case 'text':
63
        return (
16✔
64
          <TypeText
65
            keyform={keyform}
66
            onChange={handleOnChangeField}
67
            values={values}
68
            {...questionField}
69
          />
70
        );
71
      case 'number':
72
        return (
22✔
73
          <TypeNumber
74
            keyform={keyform}
75
            onChange={handleOnChangeField}
76
            values={values}
77
            {...questionField}
78
          />
79
        );
80
      case 'geo':
81
        return (
×
82
          <TypeGeo
83
            keyform={keyform}
84
            onChange={handleOnChangeField}
85
            values={values}
86
            {...questionField}
87
          />
88
        );
89
      default:
90
        return (
15✔
91
          <TypeInput
92
            keyform={keyform}
93
            onChange={handleOnChangeField}
94
            values={values}
95
            {...questionField}
96
          />
97
        );
98
    }
99
  };
100

101
  return (
124✔
102
    <View>
103
      {renderField()}
104
      {meta.touched && meta.error ? (
350!
105
        <Text style={styles.validationErrorText}>{meta.error}</Text>
106
      ) : null}
107
    </View>
108
  );
109
};
110

111
export default QuestionField;
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc