itemengine-cypress-automation 1.0.175-15thAprilRepoUpdate-cb0f7d0.0 → 1.0.176
Sign up to get free protection for your applications and to get access to all the features.
- package/cypress/support/commands.js +2 -2
- package/cypress/support/migrationHelpers/extractLrnQuestionData.js +15 -0
- package/cypress/support/migrationHelpers/lrnQestionTypesENUM.js +2 -1
- package/cypress/support/migrationHelpers/migrationScript.js +5 -1
- package/cypress/support/migrationHelpers/verifyIeQuestionData.js +18 -1
- package/package.json +2 -2
@@ -155,13 +155,13 @@ Cypress.Commands.add('learnosityLoaderWait', () => {
|
|
155
155
|
});
|
156
156
|
|
157
157
|
Cypress.Commands.add('lazyLoadPreviewQuestions', (count, retries = 5) => {
|
158
|
-
iePage.
|
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.
|
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
|
/* singleSelection: (lrnQuestionDataArr, index) => {
|
634
649
|
let obj = {};
|
635
650
|
cy.log(`Extracting the question instructions and options from question ${index}`);
|
@@ -11,7 +11,8 @@ const lrnQuestionTypesENUM = {
|
|
11
11
|
trueOrFalse: 'True or false',
|
12
12
|
figText: 'Cloze with text',
|
13
13
|
shortTextResponse: 'Short text',
|
14
|
-
uploadResponse: 'File upload'
|
14
|
+
uploadResponse: 'File upload',
|
15
|
+
contentBlocks: 'Passage'
|
15
16
|
}
|
16
17
|
|
17
18
|
export default lrnQuestionTypesENUM;
|
@@ -26,6 +26,7 @@ const extractLrnPreviewData = (currQuestionType, lrnQuestionDataArr, index) => {
|
|
26
26
|
case lrnQuestionTypesENUM.figText: return extractLrnQuestionData.figText(lrnQuestionDataArr, index);
|
27
27
|
case lrnQuestionTypesENUM.shortTextResponse: return extractLrnQuestionData.shortTextResponse(lrnQuestionDataArr, index);
|
28
28
|
case lrnQuestionTypesENUM.uploadResponse: return extractLrnQuestionData.uploadResponse(lrnQuestionDataArr, index);
|
29
|
+
case lrnQuestionTypesENUM.contentBlocks: return extractLrnQuestionData.contentBlocks(lrnQuestionDataArr, index);
|
29
30
|
default: throw new Error('Invalid lrn question type');
|
30
31
|
}
|
31
32
|
}
|
@@ -42,6 +43,7 @@ const verifyIePreviewData = (questionType, questionData, index) => {
|
|
42
43
|
case 'figText': return verifyIeQuestionData.figText(questionData, index);
|
43
44
|
case 'shortTextResponse': return verifyIeQuestionData.shortTextResponse(questionData, index);
|
44
45
|
case 'uploadResponse': return verifyIeQuestionData.uploadResponse(questionData, index);
|
46
|
+
case 'contentBlocks': return verifyIeQuestionData.contentBlocks(questionData, index);
|
45
47
|
default: throw new Error('Invalid ngie question type');
|
46
48
|
}
|
47
49
|
}
|
@@ -55,6 +57,7 @@ const extractLrnGradingData = (currQuestionType, lrnGradingDataArr, index) => {
|
|
55
57
|
case lrnQuestionTypesENUM.figText: return extractLrnQuestionData.figTextGrading(lrnGradingDataArr, index);
|
56
58
|
case lrnQuestionTypesENUM.shortTextResponse: return extractLrnQuestionData.shortTextResponseGrading(lrnGradingDataArr, index);
|
57
59
|
case lrnQuestionTypesENUM.uploadResponse: return cy.log('Manually Graded Question Type');
|
60
|
+
case lrnQuestionTypesENUM.contentBlocks: return cy.log('Resource and tool');
|
58
61
|
default: throw new Error('Invalid lrn question type');
|
59
62
|
}
|
60
63
|
}
|
@@ -68,6 +71,7 @@ const verifyIeGradingData = (questionType, questionData, index) => {
|
|
68
71
|
case 'figText': return verifyIeQuestionData.figTextGrading(questionData, index);
|
69
72
|
case 'shortTextResponse': return verifyIeQuestionData.shortTextResponseGrading(questionData, index);
|
70
73
|
case 'uploadResponse': return cy.log('Manually Graded Question Type');
|
74
|
+
case 'contentBlocks': return cy.log('Resource and tool');
|
71
75
|
default: throw new Error('Invalid ngie question type');
|
72
76
|
}
|
73
77
|
}
|
@@ -88,7 +92,7 @@ export const migrationScript = (referenceIds) => {
|
|
88
92
|
cy.visit(`/items-list/item/${utilities.base64Encoding(referenceId)}`);
|
89
93
|
cy.pageLoadWait('getItemPreview');
|
90
94
|
cy.get('@getItemPreview').then((req) => {
|
91
|
-
let questionCount = req.response.body.data.getItemPreview.item.questionParts.length;
|
95
|
+
let questionCount = req.response.body.data.getItemPreview.item.questionParts.length + req.response.body.data.getItemPreview.item.resources.length;
|
92
96
|
cy.lazyLoadPreviewQuestions(questionCount);
|
93
97
|
});
|
94
98
|
});
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { essayResponsePage, fillInTheGapsTextPage, multipleSelectionPage, textEntryMathPage, uploadResponsePage } from "../../pages";
|
1
|
+
import { contentBlocksPage, essayResponsePage, fillInTheGapsTextPage, multipleSelectionPage, textEntryMathPage, uploadResponsePage } from "../../pages";
|
2
2
|
import { draggableOptionContainer } 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) => {
|
@@ -593,6 +601,15 @@ export const verifyIeQuestionData = {
|
|
593
601
|
});
|
594
602
|
}
|
595
603
|
});
|
604
|
+
},
|
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
|
+
});
|
596
613
|
}
|
597
614
|
|
598
615
|
/* singleSelection: (expectedQuestionData, index) => {
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "itemengine-cypress-automation",
|
3
|
-
"version": "1.0.
|
3
|
+
"version": "1.0.176",
|
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
|
+
}
|