1
1
import React from "react" ;
2
2
import { RmeTen } from "../../src/index" ;
3
3
4
- const surveyJsonPath = "surveys/rmeTen/rmeTen.json" ;
5
-
6
- // Initialize an empty answers object
7
- const answers = { } ;
8
-
9
4
const dummy = {
10
5
set ( response ) { } ,
11
6
} ;
@@ -16,57 +11,106 @@ describe("RMETTen", () => {
16
11
cy . mount ( < RmeTen onComplete = { dummy . set } /> ) ;
17
12
cy . viewport ( "macbook-11" ) ;
18
13
19
- cy . readFile ( surveyJsonPath ) . then ( ( surveyJson ) => {
20
- // Build the answers object by assuming each question's answer is the first choice
21
- surveyJson . pages . forEach ( ( page ) => {
22
- page . elements . forEach ( ( element ) => {
23
- if ( element . type === "radiogroup" ) {
24
- answers [ element . name ] = element . choices [ 0 ] . value ;
25
- }
26
- } ) ;
27
- } ) ;
14
+ // incorrect
15
+ cy . get ( '[data-name="rme_item_4"] input[value="amused"]' ) . click ( {
16
+ force : true ,
17
+ } ) ;
18
+ cy . screenshot ( `rmeTen/screenshot_1` , {
19
+ overwrite : true ,
20
+ } ) ;
21
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
22
+
23
+ // correct
24
+ cy . get ( '[data-name="rme_item_6"] input[value="fantasizing"]' ) . click ( {
25
+ force : true ,
26
+ } ) ;
27
+ cy . screenshot ( `rmeTen/screenshot_2` , {
28
+ overwrite : true ,
29
+ } ) ;
30
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
28
31
29
- // Now iterate over pages to perform the survey
30
- surveyJson . pages . forEach ( ( page , pageIndex ) => {
31
- page . elements . forEach ( ( element ) => {
32
- if ( element . type === "image" ) {
33
- // Verify the image is present
34
- cy . get ( "img" ) . should ( "have.attr" , "src" , element . imageLink ) ;
35
- } else if ( element . type === "radiogroup" ) {
36
- // Click the radio button corresponding to the question
37
- const answerValue = answers [ element . name ] ;
38
- cy . get (
39
- `[data-name="${ element . name } "] input[value="${ answerValue } "]`
40
- ) . click ( { force : true } ) ;
41
- }
42
- } ) ;
32
+ // incorrect
33
+ cy . get ( '[data-name="rme_item_11"] input[value="terrified"]' ) . click ( {
34
+ force : true ,
35
+ } ) ;
36
+ cy . screenshot ( `rmeTen/screenshot_3` , {
37
+ overwrite : true ,
38
+ } ) ;
39
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
43
40
44
- cy . screenshot ( `rmeTen/screenshot_${ pageIndex } ` , {
45
- overwrite : true ,
46
- } ) ;
41
+ // correct
42
+ cy . get ( '[data-name="rme_item_15"] input[value="contemplative"]' ) . click ( {
43
+ force : true ,
44
+ } ) ;
45
+ cy . screenshot ( `rmeTen/screenshot_4` , {
46
+ overwrite : true ,
47
+ } ) ;
48
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
47
49
48
- // Click "Next" button if not on the last page
49
- if ( pageIndex < surveyJson . pages . length - 1 ) {
50
- cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
51
- }
52
- } ) ;
50
+ // incorrect
51
+ cy . get ( '[data-name="rme_item_17"] input[value="affectionate"]' ) . click ( {
52
+ force : true ,
53
+ } ) ;
54
+ cy . screenshot ( `rmeTen/screenshot_5` , {
55
+ overwrite : true ,
56
+ } ) ;
57
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
53
58
54
- cy . screenshot ( "rmetTen/screenshot" , {
55
- overwrite : true ,
56
- } ) ;
59
+ // correct
60
+ cy . get ( '[data-name="rme_item_22"] input[value="preoccupied"]' ) . click ( {
61
+ force : true ,
62
+ } ) ;
63
+ cy . screenshot ( `rmeTen/screenshot_6` , {
64
+ overwrite : true ,
65
+ } ) ;
66
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
67
+
68
+ // correct
69
+ cy . get ( '[data-name="rme_item_24"] input[value="pensive"]' ) . click ( {
70
+ force : true ,
71
+ } ) ;
72
+ cy . screenshot ( `rmeTen/screenshot_7` , {
73
+ overwrite : true ,
74
+ } ) ;
75
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
76
+
77
+ // incorrect
78
+ cy . get ( '[data-name="rme_item_27"] input[value="joking"]' ) . click ( {
79
+ force : true ,
80
+ } ) ;
81
+ cy . screenshot ( `rmeTen/screenshot_8` , {
82
+ overwrite : true ,
83
+ } ) ;
84
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
85
+
86
+ // correct
87
+ cy . get ( '[data-name="rme_item_28"] input[value="interested"]' ) . click ( {
88
+ force : true ,
89
+ } ) ;
90
+ cy . screenshot ( `rmeTen/screenshot_9` , {
91
+ overwrite : true ,
92
+ } ) ;
93
+ cy . get ( 'input[type="button"][value="Next"]' ) . click ( { force : true } ) ;
94
+
95
+ // correct
96
+ cy . get ( '[data-name="rme_item_29"] input[value="reflective"]' ) . click ( {
97
+ force : true ,
98
+ } ) ;
99
+ cy . screenshot ( `rmeTen/screenshot_10` , {
100
+ overwrite : true ,
101
+ } ) ;
57
102
58
- cy . get ( "form" ) // submit surveyJS form
59
- . then ( ( $form ) => {
60
- cy . wrap ( $form . find ( 'input[type="button"][value="Complete"]' ) ) . click ( ) ;
61
- } ) ;
103
+ // final button
104
+ cy . get ( 'input[type="button"][value="Complete"]' ) . click ( { force : true } ) ;
62
105
63
- cy . get ( ".sv-body" ) . should ( "not.exist" ) ;
106
+ cy . get ( ".sv-body" ) . should ( "not.exist" ) ;
64
107
65
- cy . get ( "@callback" ) . should ( "have.been.called" ) ;
66
- cy . get ( "@callback" ) . then ( ( spy ) => {
67
- const spyCall = spy . getCall ( - 1 ) . args [ 0 ] ;
68
- console . log ( spyCall ) ;
69
- } ) ;
108
+ cy . get ( "@callback" ) . should ( "have.been.called" ) ;
109
+ cy . get ( "@callback" ) . then ( ( spy ) => {
110
+ const spyCall = spy . getCall ( - 1 ) . args [ 0 ] ;
111
+ console . log ( spyCall ) ;
112
+ expect ( spyCall [ "result" ] [ "normScore" ] ) . to . eq ( ( 0.6 ) . toFixed ( 3 ) ) ;
113
+ expect ( spyCall [ "responses" ] [ "rme_item_24" ] ) . to . eq ( "pensive" ) ;
70
114
} ) ;
71
115
} ) ;
72
116
} ) ;
0 commit comments