itemengine-cypress-automation 1.0.170-fixes10April-45deaac.0 → 1.0.171-shortTextResponseMigration-d31a252.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.
@@ -27,6 +27,8 @@ export const lrnPage = {
27
27
  draggableResponseMathMl: () => cy.get('[aria-label="Possible responses"] .lrn_btn_drag math'),
28
28
  questionContainerPreviewTab: () => cy.get('.lrn_response_input'),
29
29
  specialCharactersButton: () => cy.get('.lrn_charactermapbutton'),
30
+ shortTextAnswerInputField: () => cy.get('.lrn_textinput input'),
31
+ shortTextCorrectAnswerText: () => cy.get('.lrn_correctAnswerList .lrn_responseText'),
30
32
  steps: {
31
33
  checkShowAnswersToggle: () => {
32
34
  lrnPage.showAnswersToggle()
@@ -496,7 +498,7 @@ export const extractLrnQuestionData = {
496
498
  .parent()
497
499
  .then(($responseField) => {
498
500
  obj.isMultiline = $responseField[0].type === 'textarea' ? true : false;
499
- if($responseField[0].innerHTML.includes('lrn_charactermapbutton')) {
501
+ if ($responseField[0].innerHTML.includes('lrn_charactermapbutton')) {
500
502
  obj.specialCharactersEnabled = true;
501
503
  }
502
504
  });
@@ -550,6 +552,51 @@ export const extractLrnQuestionData = {
550
552
  lrnQuestionDataArr.push(obj);
551
553
  },
552
554
 
555
+ shortTextResponse: (lrnQuestionDataArr, index) => {
556
+ let obj = {};
557
+ cy.log(`Extracting the question instructions and answer input field attributes from question ${index}`);
558
+ obj.questionIndex = index;
559
+ obj.questionType = 'shortTextResponse'
560
+ lrnPage.steps.extractQuestionInstructions(obj, index);
561
+ lrnPage.questionWrapper()
562
+ .eq(index)
563
+ .within(() => {
564
+ lrnPage.shortTextAnswerInputField()
565
+ .then(($answerField) => {
566
+ let responseObj = {}
567
+ responseObj.placeholder = $answerField[0].placeholder;
568
+ responseObj.maxLength = $answerField[0].maxLength;
569
+ responseObj.type = $answerField[0].type;
570
+ responseObj.spellcheck = $answerField[0].spellcheck;
571
+ responseObj.ariaLabel = $answerField[0].ariaLabel;
572
+ obj.answerInputField = [responseObj];
573
+ if ($answerField.parent()[0].innerHTML.includes('lrn_charactermapbutton')) {
574
+ obj.specialCharactersEnabled = true;
575
+ }
576
+ });
577
+ })
578
+ lrnQuestionDataArr.push(obj);
579
+ },
580
+
581
+ shortTextResponseGrading: (lrnQuestionDataArr, index) => {
582
+ let obj = {};
583
+ cy.log(`Extracting the question instructions and correct answers from question ${index}`);
584
+ obj.questionIndex = index;
585
+ obj.questionType = 'shortTextResponse';
586
+ lrnPage.steps.extractQuestionInstructions(obj, index);
587
+ lrnPage.questionWrapper()
588
+ .eq(index)
589
+ .then(($responseWrapper) => {
590
+ if ($responseWrapper[0].innerHTML.includes('lrn_correctAnswers')) {
591
+ lrnPage.shortTextCorrectAnswerText().then(($element) => {
592
+ let innerText = $element[0].innerText;
593
+ obj.correctAnswersText = innerText;
594
+ });
595
+ };
596
+ });
597
+ lrnQuestionDataArr.push(obj);
598
+ }
599
+
553
600
  /* singleSelection: (lrnQuestionDataArr, index) => {
554
601
  let obj = {};
555
602
  cy.log(`Extracting the question instructions and options from question ${index}`);
@@ -10,6 +10,7 @@ const lrnQuestionTypesENUM = {
10
10
  multipleSelection: 'Multiple choice – multiple response',
11
11
  trueOrFalse: 'True or false',
12
12
  figText: 'Cloze with text',
13
+ shortTextResponse: 'Short text'
13
14
  }
14
15
 
15
16
  export default lrnQuestionTypesENUM;
@@ -24,6 +24,7 @@ const extractLrnPreviewData = (currQuestionType, lrnQuestionDataArr, index) => {
24
24
  case lrnQuestionTypesENUM.drawingResponse: return extractLrnQuestionData.drawingResponse(lrnQuestionDataArr, index);
25
25
  case lrnQuestionTypesENUM.dndIntoCategories: return extractLrnQuestionData.dndIntoCategories(lrnQuestionDataArr, index);
26
26
  case lrnQuestionTypesENUM.figText: return extractLrnQuestionData.figText(lrnQuestionDataArr, index);
27
+ case lrnQuestionTypesENUM.shortTextResponse: return extractLrnQuestionData.shortTextResponse(lrnQuestionDataArr, index);
27
28
  default: throw new Error('Invalid lrn question type');
28
29
  }
29
30
  }
@@ -38,6 +39,7 @@ const verifyIePreviewData = (questionType, questionData, index) => {
38
39
  case 'drawingResponse': return verifyIeQuestionData.drawingResponse(questionData, index);
39
40
  case 'dndIntoCategories': return verifyIeQuestionData.dndIntoCategories(questionData, index);
40
41
  case 'figText': return verifyIeQuestionData.figText(questionData, index);
42
+ case 'shortTextResponse': return verifyIeQuestionData.shortTextResponse(questionData, index);
41
43
  default: throw new Error('Invalid ngie question type');
42
44
  }
43
45
  }
@@ -49,6 +51,7 @@ const extractLrnGradingData = (currQuestionType, lrnGradingDataArr, index) => {
49
51
  case lrnQuestionTypesENUM.textEntryMathImage: return extractLrnQuestionData.textEntryMathImageGrading(lrnGradingDataArr, index);
50
52
  case lrnQuestionTypesENUM.dndIntoCategories: return extractLrnQuestionData.dndIntoCategoriesGrading(lrnGradingDataArr, index);
51
53
  case lrnQuestionTypesENUM.figText: return extractLrnQuestionData.figTextGrading(lrnGradingDataArr, index);
54
+ case lrnQuestionTypesENUM.shortTextResponse: return extractLrnQuestionData.shortTextResponseGrading(lrnGradingDataArr, index);
52
55
  default: throw new Error('Invalid lrn question type');
53
56
  }
54
57
  }
@@ -60,6 +63,7 @@ const verifyIeGradingData = (questionType, questionData, index) => {
60
63
  case 'textEntryMathImage': return verifyIeQuestionData.textEntryMathImageGrading(questionData, index);
61
64
  case 'dndIntoCategories': return verifyIeQuestionData.dndIntoCategoriesGrading(questionData, index);
62
65
  case 'figText': return verifyIeQuestionData.figTextGrading(questionData, index);
66
+ case 'shortTextResponse': return verifyIeQuestionData.shortTextResponseGrading(questionData, index);
63
67
  default: throw new Error('Invalid ngie question type');
64
68
  }
65
69
  }
@@ -1,4 +1,4 @@
1
- import { essayResponsePage, fillInTheGapsTextPage, multipleSelectionPage, textEntryMathPage } from "../../pages";
1
+ import { essayResponsePage, fillInTheGapsTextPage, multipleSelectionPage, shortTextResponsePage, textEntryMathPage } from "../../pages";
2
2
  import { draggableOptionContainer } from "../../pages/components";
3
3
  import { singleSelectionPage } from "../../pages/singleSelectionPage"
4
4
  import utilities from "../helpers/utilities";
@@ -23,7 +23,9 @@ export const iePage = {
23
23
  drawingResponseLowerCanvas: () => cy.get('.lower-canvas'),
24
24
  figCorrectAnswerBlock: () => cy.get('[class*="AnswerCell"]'),
25
25
  figTextResponseField: () => cy.get('[class*="response"][class*="-input"] .MuiInputBase-input'),
26
-
26
+ shortTextResponseAnswerInputField: () => cy.get('[class*="response"][class*="-input"] .MuiInputBase-input'),
27
+ shortTextResponseCorrectAnswerText: () => cy.get('[class*="CorrectAnswerValueWrapper"]'),
28
+ specialCharactersButtonPreviewTab: () => cy.get('.custon-special-character-button'),
27
29
  steps: {
28
30
  verifyQuestionInstructions: (expectedQuestionData) => {
29
31
  if (expectedQuestionData.previewQuestionInstructions) {
@@ -476,7 +478,7 @@ export const verifyIeQuestionData = {
476
478
  .eq(0)
477
479
  .click()
478
480
  .then(() => {
479
- if(expectedQuestionData.specialCharactersEnabled) {
481
+ if (expectedQuestionData.specialCharactersEnabled) {
480
482
  utilities.verifyElementVisibilityState(fillInTheGapsTextPage.specialCharactersButtonPreviewTab(), 'visible');
481
483
  } else {
482
484
  utilities.verifyElementVisibilityState(fillInTheGapsTextPage.specialCharactersButtonPreviewTab(), 'notExist');
@@ -510,6 +512,53 @@ export const verifyIeQuestionData = {
510
512
  });
511
513
  },
512
514
 
515
+ shortTextResponse: (expectedQuestionData, index) => {
516
+ cy.get('.ngie-short-text-response')
517
+ .eq(index)
518
+ .within(() => {
519
+ iePage.steps.verifyQuestionInstructions(expectedQuestionData);
520
+ iePage.shortTextResponseAnswerInputField()
521
+ .then(($answerField) => {
522
+ expect($answerField[0].placeholder).to.be.eq(expectedQuestionData.answerInputField[0].placeholder);
523
+ expect($answerField[0].maxLength).to.be.eq(expectedQuestionData.answerInputField[0].maxLength);
524
+ expect($answerField[0].type).to.be.eq(expectedQuestionData.answerInputField[0].type);
525
+ expect($answerField[0].spellcheck).to.be.eq(expectedQuestionData.answerInputField[0].spellcheck);
526
+ const ariaLabel = $answerField[0].ariaLabel;
527
+ const ariaLabelParts = ariaLabel.split('Maximum');
528
+ const trimmedAriaLabel = ariaLabelParts[0].trim();
529
+ expect(trimmedAriaLabel).to.be.eq(expectedQuestionData.answerInputField[0].ariaLabel);
530
+ });
531
+ iePage.shortTextResponseAnswerInputField()
532
+ .click()
533
+ .then(() => {
534
+ if (expectedQuestionData.specialCharactersEnabled) {
535
+ utilities.verifyElementVisibilityState(iePage.specialCharactersButtonPreviewTab(), 'visible');
536
+ } else {
537
+ utilities.verifyElementVisibilityState(iePage.specialCharactersButtonPreviewTab(), 'notExist');
538
+ }
539
+ });
540
+ });
541
+ },
542
+
543
+ shortTextResponseGrading: (expectedQuestionData, index) => {
544
+ cy.get('.ngie-short-text-response')
545
+ .eq(index)
546
+ .within(() => {
547
+ iePage.steps.verifyQuestionInstructions(expectedQuestionData);
548
+ });
549
+ cy.get('.ngie-short-text-response')
550
+ .eq(index)
551
+ .then(($previewWrapper) => {
552
+ if ($previewWrapper[0].innerHTML.includes('CorrectAnswerWrapper')) {
553
+ iePage.shortTextResponseCorrectAnswerText().then(($element) => {
554
+ utilities.verifyInnerText(cy.wrap($element), expectedQuestionData.correctAnswersText);
555
+ });
556
+ } else {
557
+ utilities.verifyElementVisibilityState(iePage.shortTextResponseCorrectAnswerText(), 'notExist');
558
+ }
559
+ });
560
+ }
561
+
513
562
  /* singleSelection: (expectedQuestionData, index) => {
514
563
  cy.get('.ngie-single-select')
515
564
  .eq(index)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itemengine-cypress-automation",
3
- "version": "1.0.170-fixes10April-45deaac.0",
3
+ "version": "1.0.171-shortTextResponseMigration-d31a252.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {