11import React from "react" ;
22import { RmeTen } from "../../src/index" ;
33
4- const surveyJsonPath = "surveys/rmeTen/rmeTen.json" ;
5-
6- // Initialize an empty answers object
7- const answers = { } ;
8-
94const dummy = {
105 set ( response ) { } ,
116} ;
@@ -16,57 +11,106 @@ describe("RMETTen", () => {
1611 cy . mount ( < RmeTen onComplete = { dummy . set } /> ) ;
1712 cy . viewport ( "macbook-11" ) ;
1813
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 } ) ;
2831
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 } ) ;
4340
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 } ) ;
4749
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 } ) ;
5358
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+ } ) ;
57102
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 } ) ;
62105
63- cy . get ( ".sv-body" ) . should ( "not.exist" ) ;
106+ cy . get ( ".sv-body" ) . should ( "not.exist" ) ;
64107
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" ) ;
70114 } ) ;
71115 } ) ;
72116} ) ;
0 commit comments