itemengine-cypress-automation 1.0.178-figDndMigration-78c8415.0 → 1.0.178

Sign up to get free protection for your applications and to get access to all the features.
@@ -155,13 +155,13 @@ Cypress.Commands.add('learnosityLoaderWait', () => {
155
155
  });
156
156
 
157
157
  Cypress.Commands.add('lazyLoadPreviewQuestions', (count, retries = 5) => {
158
- iePage.questionWrapper()
158
+ iePage.questionAndResourceWrapper()
159
159
  .then((elements) => {
160
160
  if (retries <= 0) {
161
161
  throw new Error('Itemengine questions did not lazy load in time');
162
162
  };
163
163
  if (elements.length < count) {
164
- iePage.questionWrapper()
164
+ iePage.questionAndResourceWrapper()
165
165
  .last()
166
166
  .scrollIntoView()
167
167
  .wait(1000);
@@ -32,6 +32,7 @@ export const lrnPage = {
32
32
  uploadResponseSupportedFileTypes: () => cy.get('.lrn-fileupload-support-copy'),
33
33
  uploadResponseFileLimit: () => cy.get('.lrn-limit-status'),
34
34
  uploadResponseToolbar: () => cy.get('[data-lrn-component="toolbar"]'),
35
+ contentBlocksQuestion: () => cy.get('.lrn_sharedpassage'),
35
36
  steps: {
36
37
  checkShowAnswersToggle: () => {
37
38
  lrnPage.showAnswersToggle()
@@ -630,6 +631,20 @@ export const extractLrnQuestionData = {
630
631
  lrnQuestionDataArr.push(obj);
631
632
  },
632
633
 
634
+ contentBlocks: (lrnQuestionDataArr, index) => {
635
+ let obj = {};
636
+ cy.log(`Extracting the passage from question ${index}`);
637
+ obj.questionIndex = index;
638
+ obj.questionType = 'contentBlocks';
639
+ lrnPage.contentBlocksQuestion()
640
+ .eq(index)
641
+ .then(($question) => {
642
+ let text = $question[0].innerText;
643
+ obj.passageText = text;
644
+ });
645
+ lrnQuestionDataArr.push(obj);
646
+ },
647
+
633
648
  figDragAndDrop: (lrnQuestionDataArr, index) => {
634
649
  let obj = {};
635
650
  cy.log(`Extracting the question instructions, question, response areas count, draggable option container position, drag handle visibility, draggable options from question ${index}`);
@@ -13,6 +13,7 @@ const lrnQuestionTypesENUM = {
13
13
  shortTextResponse: 'Short text',
14
14
  uploadResponse: 'File upload',
15
15
  figDragAndDrop: 'Cloze with drag & drop',
16
+ contentBlocks: 'Passage'
16
17
  }
17
18
 
18
19
  export default lrnQuestionTypesENUM;
@@ -27,6 +27,7 @@ const extractLrnPreviewData = (currQuestionType, lrnQuestionDataArr, index) => {
27
27
  case lrnQuestionTypesENUM.shortTextResponse: return extractLrnQuestionData.shortTextResponse(lrnQuestionDataArr, index);
28
28
  case lrnQuestionTypesENUM.uploadResponse: return extractLrnQuestionData.uploadResponse(lrnQuestionDataArr, index);
29
29
  case lrnQuestionTypesENUM.figDragAndDrop: return extractLrnQuestionData.figDragAndDrop(lrnQuestionDataArr, index);
30
+ case lrnQuestionTypesENUM.contentBlocks: return extractLrnQuestionData.contentBlocks(lrnQuestionDataArr, index);
30
31
  default: throw new Error('Invalid lrn question type');
31
32
  }
32
33
  }
@@ -44,6 +45,7 @@ const verifyIePreviewData = (questionType, questionData, index) => {
44
45
  case 'shortTextResponse': return verifyIeQuestionData.shortTextResponse(questionData, index);
45
46
  case 'uploadResponse': return verifyIeQuestionData.uploadResponse(questionData, index);
46
47
  case 'figDragAndDrop': return verifyIeQuestionData.figDragAndDrop(questionData, index);
48
+ case 'contentBlocks': return verifyIeQuestionData.contentBlocks(questionData, index);
47
49
  default: throw new Error('Invalid ngie question type');
48
50
  }
49
51
  }
@@ -58,6 +60,7 @@ const extractLrnGradingData = (currQuestionType, lrnGradingDataArr, index) => {
58
60
  case lrnQuestionTypesENUM.shortTextResponse: return extractLrnQuestionData.shortTextResponseGrading(lrnGradingDataArr, index);
59
61
  case lrnQuestionTypesENUM.uploadResponse: return cy.log('Manually Graded Question Type');
60
62
  case lrnQuestionTypesENUM.figDragAndDrop: return extractLrnQuestionData.figDragAndDropGrading(lrnGradingDataArr, index);
63
+ case lrnQuestionTypesENUM.contentBlocks: return cy.log('Resource and tool');
61
64
  default: throw new Error('Invalid lrn question type');
62
65
  }
63
66
  }
@@ -72,6 +75,7 @@ const verifyIeGradingData = (questionType, questionData, index) => {
72
75
  case 'shortTextResponse': return verifyIeQuestionData.shortTextResponseGrading(questionData, index);
73
76
  case 'uploadResponse': return cy.log('Manually Graded Question Type');
74
77
  case 'figDragAndDrop': return verifyIeQuestionData.figDragAndDropGrading(questionData, index);
78
+ case 'contentBlocks': return cy.log('Resource and tool');
75
79
  default: throw new Error('Invalid ngie question type');
76
80
  }
77
81
  }
@@ -92,7 +96,7 @@ export const migrationScript = (referenceIds) => {
92
96
  cy.visit(`/items-list/item/${utilities.base64Encoding(referenceId)}`);
93
97
  cy.pageLoadWait('getItemPreview');
94
98
  cy.get('@getItemPreview').then((req) => {
95
- let questionCount = req.response.body.data.getItemPreview.item.questionParts.length;
99
+ let questionCount = req.response.body.data.getItemPreview.item.questionParts.length + req.response.body.data.getItemPreview.item.resources.length;
96
100
  cy.lazyLoadPreviewQuestions(questionCount);
97
101
  });
98
102
  });
@@ -1,4 +1,4 @@
1
- import { essayResponsePage, fillInTheGapsDragAndDropPage, fillInTheGapsTextPage, multipleSelectionPage, textEntryMathPage, uploadResponsePage } from "../../pages";
1
+ import { essayResponsePage, fillInTheGapsDragAndDropPage, contentBlocksPage, fillInTheGapsTextPage, multipleSelectionPage, textEntryMathPage, uploadResponsePage } from "../../pages";
2
2
  import { draggableOptionContainer, fillInTheGapsDragAndDropCommonComponents } from "../../pages/components";
3
3
  import { singleSelectionPage } from "../../pages/singleSelectionPage"
4
4
  import utilities from "../helpers/utilities";
@@ -9,6 +9,7 @@ export const iePage = {
9
9
  mcqOption: () => cy.get('.mcq_Label'),
10
10
  mcqOptionWrapper: () => cy.get('div[class*="option-wrapper"]'),
11
11
  questionWrapper: () => cy.get('.ngie-question-wrapper'),
12
+ questionAndResourceWrapper: () => cy.get('.item_Widget'),
12
13
  barsPreloader: () => cy.get('[id="question-item-instruction-loader"]'),
13
14
  previewQuestionTextWrapper: () => cy.get('.preview-question-text-wrapper'),
14
15
  //textEntryMathResponseWrapper: () => cy.get('.cloze-math-preview-wrapper .cloze-math-response-input-field'),
@@ -19,6 +20,7 @@ export const iePage = {
19
20
  essayResponseWordLimit: () => cy.get('.input-limit-label'),
20
21
  essayResponseWordCount: () => cy.get('[class*="indexstyle__WordCharCountWrapper"]'),
21
22
  essayResponseFooter: () => cy.get('.essay-character-view-wrapper'),
23
+ essayResponseLoader: () => cy.get('[class*="InlineLoaderstyles__LoaderDiv"] img'),
22
24
  drawingResponseToolbarButton: () => cy.get('[class*="DrawingToolButtonstyled__Container"] svg'),
23
25
  drawingResponseLowerCanvas: () => cy.get('.lower-canvas'),
24
26
  figCorrectAnswerBlock: () => cy.get('[class*="AnswerCell"]'),
@@ -244,6 +246,9 @@ export const verifyIeQuestionData = {
244
246
  cy.get('[class*="ngie-essay-response"]')
245
247
  .eq(index)
246
248
  .within(() => {
249
+ iePage.essayResponseLoader()
250
+ .scrollIntoView()
251
+ .should('not.be.visible');
247
252
  iePage.steps.verifyQuestionInstructions(expectedQuestionData);
248
253
  essayResponsePage.responseField()
249
254
  .then(($element) => {
@@ -289,6 +294,9 @@ export const verifyIeQuestionData = {
289
294
  cy.get('[class*="ngie-essay-response"]')
290
295
  .eq(index)
291
296
  .within(() => {
297
+ iePage.essayResponseLoader()
298
+ .scrollIntoView()
299
+ .should('not.be.visible');
292
300
  iePage.steps.verifyQuestionInstructions(expectedQuestionData);
293
301
  essayResponsePage.responseField()
294
302
  .then(($element) => {
@@ -595,6 +603,15 @@ export const verifyIeQuestionData = {
595
603
  });
596
604
  },
597
605
 
606
+ contentBlocks: (expectedQuestionData, index) => {
607
+ cy.get('[class*="ContentBlocksPreviewstyles__ContentBlocksPreviewWrapper"]')
608
+ .eq(index)
609
+ .then(($element) => {
610
+ let passageText = $element[0].innerText
611
+ expect(passageText).to.be.eq(expectedQuestionData.passageText)
612
+ });
613
+ },
614
+
598
615
  figDragAndDrop: (expectedQuestionData, index) => {
599
616
  cy.get('.ngie-cloze-with-drag-and-drop')
600
617
  .eq(index)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itemengine-cypress-automation",
3
- "version": "1.0.178-figDndMigration-78c8415.0",
3
+ "version": "1.0.178",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -35,4 +35,4 @@
35
35
  "node-fetch": "^3.3.2",
36
36
  "react-uuid": "^2.0.0"
37
37
  }
38
- }
38
+ }