itemengine-cypress-automation 1.0.342-save-as-you-go-updates-184015f.0 → 1.0.343-IEI-5600-IEI-5708-9440b5e.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.
Files changed (138) hide show
  1. package/cypress/e2e/ILC/AudioResponseNew/editTabBasicSection.js +16 -4
  2. package/cypress/e2e/ILC/BrainingCampManipulative/editTabBasicSection.js +1 -1
  3. package/cypress/e2e/ILC/ChartsBar/HorizontalOrientationBarChart/gradingViewAndCorrectAnswerView.smoke.js +1 -1
  4. package/cypress/e2e/ILC/ChartsBar/headerSection.js +2 -50
  5. package/cypress/e2e/ILC/ChartsLine/editQuestion.smoke.js +1 -3
  6. package/cypress/e2e/ILC/ChartsLine/headerSection.js +1 -18
  7. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/backgroundImageAndCanvasProperties.js +0 -1
  8. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/supportedFileTypes.js +2 -4
  9. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +0 -72
  10. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +0 -38
  11. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +0 -38
  12. package/cypress/e2e/ILC/Graphing/headerSection.js +4 -37
  13. package/cypress/e2e/ILC/GridFill/headerSection.js +3 -3
  14. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +0 -39
  15. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +0 -39
  16. package/cypress/e2e/ILC/GridFill/scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +0 -39
  17. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountAllOrNothingCorrectPointsGreaterThanAlternativePoints.js +0 -37
  18. package/cypress/e2e/ILC/GridFill/scoring/cellShadeCountallOrNothingCorrectPointsEqualToAlternativePoints.js +0 -39
  19. package/cypress/e2e/ILC/GridFill/scoring/cellshadeCountAllOrNothingAlternativePointsGreaterThanCorrectPoints.js +0 -36
  20. package/cypress/e2e/ILC/GridFill/scoring/partialEqualWeightsWithCorrectPointsEqualToAlternativePoints.js +1 -2
  21. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +0 -24
  22. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +0 -24
  23. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +0 -24
  24. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/partialEqualWeightsBasic.js +1 -1
  25. package/cypress/e2e/ILC/ListOrderingDropdown/allOrNothingForAllViews.smoke.js +1 -1
  26. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +0 -24
  27. package/cypress/e2e/ILC/ListOrderingDropdown/specifyCorrectAnswerSection.js +10 -6
  28. package/cypress/e2e/ILC/ListOrderingNew/HorizontalOrientation/specifyCorrectAnswerSection.js +1 -2
  29. package/cypress/e2e/ILC/ListOrderingNew/editTabBasicSection.js +0 -23
  30. package/cypress/e2e/ILC/ListOrderingNew/headerSection.js +9 -35
  31. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +0 -41
  32. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +0 -30
  33. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +0 -50
  34. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabBasicSection.js +0 -24
  35. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/editTabScoring.js +1 -4
  36. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/headerSection.js +1 -35
  37. package/cypress/e2e/ILC/Matching/clickAndDrop.js +5 -3
  38. package/cypress/e2e/ILC/Matching/draggableOptions.js +0 -4
  39. package/cypress/e2e/ILC/Matching/headerSection.js +11 -36
  40. package/cypress/e2e/ILC/Matching/questionInstructionsAndPromptSection.js +15 -2
  41. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +0 -79
  42. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +0 -42
  43. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +0 -42
  44. package/cypress/e2e/ILC/NumberLine/headerSection.js +4 -34
  45. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +0 -81
  46. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +0 -43
  47. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +0 -43
  48. package/cypress/e2e/ILC/NumberLineLabel/headerSection.js +4 -37
  49. package/cypress/e2e/ILC/NumberLineLabel/manuallyAndNonScoredEditTab.js +1 -2
  50. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/editQuestion.smoke.js +1 -1
  51. package/cypress/e2e/ILC/ShortTextResponseNew/headerSection.js +4 -2
  52. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -86
  53. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -86
  54. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -65
  55. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +1 -3
  56. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  57. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  58. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +3 -10
  59. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +2 -4
  60. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +3 -5
  61. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  62. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsScoringBasic.js +0 -4
  63. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingAlternatePointsGreaterThanCorrectPoints.js +0 -64
  64. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAddEvaluation.js +0 -2
  65. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingBasicForAlternateAnswer.js +0 -2
  66. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -64
  67. package/cypress/e2e/ILC/TextEntryMath/Scoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +0 -65
  68. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -2
  69. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  70. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  71. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialDifferentWeightsScoringBasic.js +0 -8
  72. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +0 -2
  73. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +0 -2
  74. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +0 -2
  75. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasic.js +0 -1
  76. package/cypress/e2e/ILC/TextEntryMath/Scoring/partialEqualWeightsScoringBasicForAlternateAnswer.js +0 -2
  77. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +0 -2
  78. package/cypress/e2e/ILC/TextEntryMath/editTabBasicSection.js +3 -27
  79. package/cypress/e2e/ILC/ThinkSphere/createReviewItem.js +1 -1
  80. package/cypress/e2e/ILC/ThinkSphere/editTabBasicSection.js +1 -1
  81. package/cypress/e2e/ILC/ThinkSphere/editThinkSphereQuestion.smoke.js +145 -54
  82. package/cypress/e2e/ILC/ThinkSphere/equationEditorEditCategoryFlyOut.js +2 -0
  83. package/cypress/e2e/ILC/ThinkSphere/planPhase.js +45 -5
  84. package/cypress/e2e/ILC/ThinkSphere/previewTabPlanSection.js +8 -8
  85. package/cypress/e2e/ILC/ThinkSphere/previewTabReviewSection.js +97 -0
  86. package/cypress/e2e/ILC/ThinkSphere/solvePhase.js +3 -3
  87. package/cypress/e2e/ILC/ThinkSphere/studentViewPlanTabSection.js +393 -0
  88. package/cypress/e2e/ILC/ThinkSphere/studentViewReviewTabSection.js +141 -0
  89. package/cypress/e2e/ILC/ToolAudioPlayerNew/headerSection.js +1 -1
  90. package/cypress/e2e/ILC/UploadResponse/editTabBasicSection.js +0 -34
  91. package/cypress/e2e/ILC/UploadResponse/headerSection.js +1 -38
  92. package/cypress/e2e/ILC/VideoResponseNew/editTabBasicSection.js +29 -14
  93. package/cypress/e2e/ILC/chartsDotsPlot/headerSection.js +1 -16
  94. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  95. package/cypress/pages/chartsBarPage.js +0 -20
  96. package/cypress/pages/components/createQuestionBasePage.js +0 -7
  97. package/cypress/pages/components/defaultToolDropdown.js +1 -1
  98. package/cypress/pages/components/desmosToolComponent.js +1 -1
  99. package/cypress/pages/components/scoringSectionBaseEditTab.js +0 -3
  100. package/cypress/pages/desmos3DGraphingPage.js +4 -149
  101. package/cypress/pages/desmosGeometryPage.js +4 -184
  102. package/cypress/pages/graphingPage.js +4 -26
  103. package/cypress/pages/gridFillPage.js +6 -16
  104. package/cypress/pages/listOrderingPage.js +1 -32
  105. package/cypress/pages/matchingPage.js +7 -26
  106. package/cypress/pages/numberLineLabelPage.js +0 -26
  107. package/cypress/pages/numberLinePage.js +0 -15
  108. package/cypress/pages/textEntryMathPage.js +0 -21
  109. package/cypress/pages/thinkSpherePage.js +316 -5
  110. package/cypress/pages/uploadResponsePage.js +1 -2
  111. package/cypress/pages/videoResponsePage.js +0 -3
  112. package/cypress/support/helpers/createItem.js +22 -3
  113. package/cypress/support/helpers/utilities.js +13 -0
  114. package/package.json +1 -1
  115. package/cypress/e2e/ILC/ChartsBar/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -33
  116. package/cypress/e2e/ILC/ChartsBar/editTabBasicSection.js +0 -37
  117. package/cypress/e2e/ILC/Graphing/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -86
  118. package/cypress/e2e/ILC/Graphing/checkAddAlternativeButton.js +0 -35
  119. package/cypress/e2e/ILC/Graphing/editQuestion.smoke.js +0 -28
  120. package/cypress/e2e/ILC/Graphing/editTabBasicSection.js +0 -38
  121. package/cypress/e2e/ILC/GridFill/addAlternateButton.js +0 -40
  122. package/cypress/e2e/ILC/GridFill/scoring/checkLabelSaveAsYouGo.js +0 -75
  123. package/cypress/e2e/ILC/ListOrderingDropdown/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -86
  124. package/cypress/e2e/ILC/ListOrderingDropdown/checkAddAlternativeButton.js +0 -35
  125. package/cypress/e2e/ILC/ListOrderingDropdown/headerSection.js +0 -108
  126. package/cypress/e2e/ILC/ListOrderingNew/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -52
  127. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -101
  128. package/cypress/e2e/ILC/ListOrderingReorderAsASeperateList/checkAddAlternativeButton.js +0 -38
  129. package/cypress/e2e/ILC/Matching/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -98
  130. package/cypress/e2e/ILC/Matching/checkAlternativeButton.js +0 -38
  131. package/cypress/e2e/ILC/Matching/editTabBasicSection.js +0 -41
  132. package/cypress/e2e/ILC/NumberLine/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -73
  133. package/cypress/e2e/ILC/NumberLine/checkAddAlternativeButton.js +0 -32
  134. package/cypress/e2e/ILC/NumberLine/editTabSection.js +0 -38
  135. package/cypress/e2e/ILC/NumberLineLabel/Scoring/checkScoringLabelBannerAndCorrectAnswerSection.js +0 -76
  136. package/cypress/e2e/ILC/NumberLineLabel/checkAddAlternativeButton.js +0 -34
  137. package/cypress/e2e/ILC/NumberLineLabel/editTabSection.js +0 -38
  138. package/cypress/e2e/ILC/TextEntryMath/headerSection.js +0 -43
@@ -0,0 +1,141 @@
1
+ import uuid from 'react-uuid';
2
+ import { thinkSpherePage } from "../../../pages";
3
+ import { browseItemsPage } from "../../../pages/components/browseItemsPage";
4
+ import { commonComponents } from "../../../pages/components/commonComponents";
5
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
6
+ import utilities from "../../../support/helpers/utilities";
7
+ const css = Cypress.env('css');
8
+
9
+ describe('Student view : ThinkSphere Question - Review Section', () => {
10
+ const uuidString = uuid();
11
+
12
+ before(() => {
13
+ cy.loginAs('admin');
14
+ cy.createThinkSphereItem(uuidString, true);
15
+ thinkSpherePage.steps.visitThinksphereBrowseItemsPage();
16
+ browseItemsPage.steps.clickOnItemReferenceId(uuidString);
17
+ browseItemsPage.steps.clickOnAddReviewItem();
18
+ thinkSpherePage.steps.createReviewQuestion();
19
+ thinkSpherePage.steps.visitThinksphereBrowseItemsPage();
20
+ browseItemsPage.steps.clickOnActionButton();
21
+ browseItemsPage.steps.clickOnActionMenuItem(0);
22
+ thinkSpherePage.steps.clickOnReviewTab();
23
+ });
24
+
25
+ describe('\'Question instruction\' section', () => {
26
+ abortEarlySetup();
27
+ it('\'Question instruction\' section should be present', () => {
28
+ thinkSpherePage.steps.verifyQuestionInstructionPreviewTexWrapperVisibility('question instruction text');
29
+ });
30
+
31
+ it('CSS of \'Question instruction\' section', { tags: 'css' }, () => {
32
+ utilities.verifyCSS(thinkSpherePage.questionInstructionPreviewTexWrapper(), {
33
+ 'border-radius': '12px',
34
+ 'background-color': css.color.questionInstructionBG,
35
+ 'padding': '10px 170px 10px 27px',
36
+ 'font-size': css.fontSize.default,
37
+ 'font-weight': css.fontWeight.regular,
38
+ });
39
+ });
40
+
41
+ it('Question instruction image should visibile in the preview', () => {
42
+ thinkSpherePage.steps.verifyQuestionInstructionPreviewImageWrapperVisibility();
43
+ });
44
+
45
+ it('CSS of question instruction image section', { tags: 'css' }, () => {
46
+ utilities.verifyCSS(thinkSpherePage.questionInstructionPreviewImageWrapper(), {
47
+ 'width': '143px',
48
+ 'height': '110px',
49
+ 'border': `1px solid ${css.color.secondaryBtnBorder}`,
50
+ 'background-color': css.color.primaryBtn,
51
+ });
52
+ utilities.verifyCSS(thinkSpherePage.questionInstructionPreviewImageExpandButton(), {
53
+ 'width': '24px',
54
+ 'height': '24px',
55
+ 'box-shadow': `${css.color.boxShadow} 0px 2px 8px 0px`,
56
+ 'border': `1px solid ${css.color.figDefaultComponentBorder}`,
57
+ 'border-radius': '4px',
58
+ 'background-color': css.color.primaryBtn,
59
+ });
60
+ });
61
+
62
+ it('When user clicks on expand question instruction image then it should open in the popup', () => {
63
+ thinkSpherePage.steps.clickOnQuestionInstructionExpandImageButton();
64
+ utilities.verifyElementVisibilityState(thinkSpherePage.dialogBoxRoot(), 'visible');
65
+ thinkSpherePage.steps.verifyQuestionImagePopup();
66
+ });
67
+
68
+ it('CSS of question instruction image popup', { tags: 'css' }, () => {
69
+ utilities.verifyCSS(thinkSpherePage.dialogBoxRoot(), {
70
+ 'border-radius': '8px',
71
+ 'border': `1px solid ${css.color.secondaryBtnBorder}`,
72
+ 'box-shadow': `${css.color.dialogBoxBoxShadow} 0px 0px 10px 0px`,
73
+ });
74
+ utilities.verifyCSS(thinkSpherePage.closeExpandImagePopupButton(), {
75
+ 'background-color': css.color.primaryBtn,
76
+ 'font-size': css.fontSize.normal,
77
+ 'font-weight': css.fontWeight.semibold,
78
+ 'border': `1px solid ${css.color.secondaryBtnBorder}`,
79
+ 'color': css.color.primaryBtnBorder,
80
+ });
81
+ });
82
+
83
+ it('When user clicks on close expand image popup button then it should remove the popup', () => {
84
+ thinkSpherePage.steps.clickOnCloseExpandImagePopupButton();
85
+ utilities.verifyElementVisibilityState(thinkSpherePage.dialogBoxRoot(), 'notExist');
86
+ });
87
+ });
88
+
89
+ describe('\'Check your math\' section', () => {
90
+ abortEarlySetup();
91
+ it('\'Check your math\' section header should be present', () => {
92
+ utilities.verifyElementVisibilityState(thinkSpherePage.checkYourMathHeading(), 'visible');
93
+ utilities.verifyInnerText(thinkSpherePage.checkYourMathHeading(), 'Check your math');
94
+ });
95
+
96
+ it('CSS of \'Check your math\' section header', { tags: 'css' }, () => {
97
+ utilities.verifyCSS(thinkSpherePage.checkYourMathHeading(), {
98
+ 'color': css.color.primaryBtnBorder,
99
+ 'font-size': css.fontSize.heading,
100
+ 'font-weight': css.fontWeight.semibold,
101
+ });
102
+ });
103
+
104
+ it('\'The problem is asking me to\' section header should be present', () => {
105
+ utilities.verifyElementVisibilityState(thinkSpherePage.problemAskingToMeTextWrapper(), 'visible');
106
+ utilities.verifyInnerText(thinkSpherePage.problemAskingToMeTextWrapper(), 'The problem is asking me to...');
107
+ });
108
+
109
+ it('Review question should be present', () => {
110
+ utilities.verifyElementVisibilityState(thinkSpherePage.reviewQuestionWrapper(), 'visible');
111
+ });
112
+
113
+ it('CSS of \'The problem is asking me to\' section', { tags: 'css' }, () => {
114
+ utilities.verifyCSS(thinkSpherePage.problemAskingToMeTextWrapper(), {
115
+ 'color': css.color.primaryBtnBorder,
116
+ 'font-size': css.fontSize.normal,
117
+ 'font-weight': css.fontWeight.bold,
118
+ });
119
+ utilities.verifyCSS(thinkSpherePage.reviewComponentWrapper(), {
120
+ 'border': `1px solid ${css.color.secondaryBtnBorder}`,
121
+ 'border-radius': '12px'
122
+ });
123
+ });
124
+
125
+ it('When User type in the \'The problem is asking me to\' in the plan tab, then it should render in the \'The problem is asking me to\' in the review tab', () => {
126
+ thinkSpherePage.steps.clickOnPlanTab();
127
+ thinkSpherePage.steps.verifyProblemAskingTextAreaFunctionality('This is a test text for the problem.');
128
+ thinkSpherePage.steps.clickOnReviewTab();
129
+ utilities.verifyElementVisibilityState(thinkSpherePage.problemStatementWrapper(), 'visible');
130
+ utilities.verifyInnerText(thinkSpherePage.problemStatementWrapper(), 'This is a test text for the problem.');
131
+ });
132
+
133
+ it('CSS of \'The problem is asking me to\' section statement', { tags: 'css' }, () => {
134
+ utilities.verifyCSS(thinkSpherePage.problemStatementWrapper(), {
135
+ 'color': css.color.text,
136
+ 'font-size': css.fontSize.default,
137
+ 'font-weight': css.fontWeight.regular,
138
+ });
139
+ });
140
+ });
141
+ });
@@ -99,7 +99,7 @@ describe('Create question page - Audio player: Header section and saving resourc
99
99
  });
100
100
 
101
101
  describe('Validation error messages', () => {
102
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please upload a file']);
102
+ dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton();
103
103
 
104
104
  it('Validation error message(s) should be displayed below required input field(s)', () => {
105
105
  utilities.verifyElementVisibilityState(audioPlayerPage.errorMessage(), 'visible');
@@ -2,7 +2,6 @@ import abortEarlySetup from "../../../support/helpers/abortEarly";
2
2
  import { uploadResponsePage } from "../../../pages";
3
3
  import utilities from "../../../support/helpers/utilities";
4
4
  import { supportedFileType } from "../../../fixtures/uploadResponseFileType";
5
- import { commonComponents } from "../../../pages/components";
6
5
  const css = Cypress.env('css');
7
6
 
8
7
  const fileSizeLimitOptions = ['5', '10', '15', '20', '100'];
@@ -374,37 +373,4 @@ describe('Create question page - Upload Response: Question Instructions, Support
374
373
 
375
374
  uploadResponsePage.tests.verifyWarningMessageDisappear();
376
375
  });
377
-
378
- describe('User should be able to edit incomplete authored question', () => {
379
- abortEarlySetup();
380
- before(() => {
381
- uploadResponsePage.steps.navigateToCreateQuestion('upload response');
382
- cy.barsPreLoaderWait();
383
- uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
384
- uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
385
- uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
386
- uploadResponsePage.steps.editItem();
387
- });
388
-
389
- it('Warning icons should be displayed on the required fields', () => {
390
- uploadResponsePage.steps.verifyWarningIconOnRequiredFields(['Please select a file type']);
391
- });
392
-
393
- it('When file type is selected then warning icons should disappear', () => {
394
- uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
395
- uploadResponsePage.steps.selectSupportedFileTypeOption(0);
396
- uploadResponsePage.supportedFileTypesAccordionWrapper()
397
- .within(() => {
398
- utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'notExist');
399
- });
400
- });
401
-
402
- it('Clicking on Save Question button the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
403
- uploadResponsePage.steps.saveAQuestionAndVerifySnackbar();
404
- });
405
-
406
- it('Warning icon should not be visible', () => {
407
- utilities.verifyElementVisibilityState(uploadResponsePage.warningIcon(), 'notExist');
408
- });
409
- });
410
376
  });
@@ -1,9 +1,6 @@
1
1
  import abortEarlySetup from "../../../support/helpers/abortEarly";
2
- import { uploadResponsePage, dialogBoxBase, itemPreviewPage } from "../../../pages";
2
+ import { uploadResponsePage, dialogBoxBase } from "../../../pages";
3
3
  import utilities from "../../../support/helpers/utilities";
4
- import { browseItemsPage } from "../../../pages/components";
5
- var itemReferenceID = ""
6
-
7
4
 
8
5
  describe('Create question page - Upload Response: Header section and Saving question', () => {
9
6
  before(() => {
@@ -52,38 +49,4 @@ describe('Create question page - Upload Response: Header section and Saving ques
52
49
 
53
50
  uploadResponsePage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
54
51
  });
55
-
56
- describe('Saving a question with incomplete authoring', () => {
57
- abortEarlySetup();
58
- before(() => {
59
- uploadResponsePage.steps.navigateToCreateQuestion('upload response');
60
- cy.barsPreLoaderWait();
61
- uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
62
- uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
63
- });
64
-
65
- it('User should be able to save the question with incomplete authoring and display a snackbar with the text "Saved successfully!" when the Save Question button is clicked', () => {
66
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please select a file type']);
67
- uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
68
- });
69
- uploadResponsePage.tests.verifySavedSuccessfullySnackbarCSSAndA11y();
70
- });
71
-
72
- describe('Save as you go - Browse item page contents', () => {
73
- abortEarlySetup();
74
- before(() => {
75
- uploadResponsePage.steps.navigateToCreateQuestion('upload response');
76
- cy.barsPreLoaderWait();
77
- uploadResponsePage.steps.clickOnSupportedFilesTypesAccordion();
78
- uploadResponsePage.steps.uncheckDefaultSelectedFileTypes();
79
- uploadResponsePage.steps.saveAQuestionWithIncompleteAuthoring();
80
- utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
81
- itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
82
- browseItemsPage.steps.navigateToBrowseItemsPage();
83
- });
84
-
85
- it('When user saves an incompletely authored question then a warning icon should be visible in browse items page', () => {
86
- browseItemsPage.steps.verifyWarningIconInBrowseItemPage(`${itemReferenceID}`);
87
- });
88
- });
89
52
  });
@@ -159,21 +159,31 @@ describe('Create item page - Video response: Question instructions, Maximum reco
159
159
  });
160
160
  });
161
161
 
162
- it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, Validation error should not be displayed below the \'Maximum recording duration\' input field and it should take up default value i.e. 300', () => {
162
+ it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, \'Error: Maximum recording duration is required.\' validation error should be displayed below the \'Maximum recording duration\' input field', () => {
163
163
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
164
- videoResponsePage.steps.verifyMaximumRecordingDuration(300);
165
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
164
+ utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Maximum recording duration is required.');
165
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
166
166
  });
167
167
 
168
+ videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
169
+
168
170
  it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Maximum recording duration is required.\' should disappear.', () => {
169
171
  videoResponsePage.steps.setMaximumRecordingDuration(1000);
170
172
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
171
173
  });
172
174
 
173
- it('When the user has set \'Maximum recording duration\' to \'0\' (zero), error message should not be displayed and it should take default value i.e 300', () => {
175
+ it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message \'Error: Value must be greater than 0 secs.\' should be displayed', () => {
174
176
  videoResponsePage.steps.setMaximumRecordingDuration(0);
175
- videoResponsePage.steps.verifyMaximumRecordingDuration(300);
176
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
177
+ videoResponsePage.steps.verifyMaximumRecordingDuration(0);
178
+ utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Value must be greater than 0 secs.');
179
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
180
+ });
181
+
182
+ videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
183
+
184
+ it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Value must be greater than 0 secs.\' should disappear', () => {
185
+ videoResponsePage.steps.setMaximumRecordingDuration(1000);
186
+ videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
177
187
  });
178
188
 
179
189
  it('When user adds decimal values or alphanumeric values then only numeric values should be displayed in the maximum recording length input field', () => {
@@ -194,27 +204,32 @@ describe('Create item page - Video response: Question instructions, Maximum reco
194
204
  videoResponsePage.steps.verifyMaximumRecordingDuration(5);
195
205
  });
196
206
 
197
- it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, validation error should not be displayed below the \'Maximum recording duration\' input field', () => {
207
+ it('When the user focuses in and out of the empty \'Maximum recording duration\' input field, \'Error: Maximum recording duration is required.\' validation error should be displayed below the \'Maximum recording duration\' input field', () => {
198
208
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
199
209
  videoResponsePage.steps.toggleMaximumRecordingDurationInputField('Secs');
200
210
  videoResponsePage.steps.clearMaximumRecordingDurationInputField();
201
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
211
+ utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Maximum recording duration is required.');
212
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
202
213
  });
203
214
 
204
- it('When the user updates the \'Maximum recording duration\' value, then the validation message should not be displayed', () => {
215
+ videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
216
+
217
+ it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Maximum recording duration is required.\' should disappear.', () => {
205
218
  videoResponsePage.steps.setMaximumRecordingDuration(5);
206
219
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
207
220
  });
208
221
 
209
- it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message should not be displayed and it should take default value i.e. 300', () => {
210
- videoResponsePage.steps.setMaximumRecordingDuration(0);
211
- videoResponsePage.steps.verifyMaximumRecordingDuration(300);
222
+ it('When the user has set \'Maximum recording duration\' to \'0\' (zero), a validation message \'Error: Value must be greater than 0 mins.\' should be displayed', () => {
223
+ videoResponsePage.steps.setMaximumRecordingDurationNew(0);
224
+ videoResponsePage.steps.verifyMaximumRecordingDuration(0);
212
225
  // Uncomment once https://redmine.zeuslearning.com/issues/583618 is resolved
213
226
  // utilities.verifyInnerText(videoResponsePage.errorMessage(), 'Error: Value must be greater than 0 mins.');
214
- utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'notExist');
227
+ utilities.verifyElementVisibilityState(videoResponsePage.errorMessage(), 'visible');
215
228
  });
216
229
 
217
- it('When the user updates the \'Maximum recording duration\' value, then the validation message should not be displayed', () => {
230
+ videoResponsePage.tests.verifyErrorMessageCSSAndA11y();
231
+
232
+ it('When the user updates the \'Maximum recording duration\' value, then the validation message \'Error: Value must be greater than 0 mins.\' should disappear', () => {
218
233
  videoResponsePage.steps.setMaximumRecordingDuration(5);
219
234
  videoResponsePage.steps.verifyErrorMessageIsNotDisplayed();
220
235
  videoResponsePage.steps.toggleMaximumRecordingDurationInputField('Mins');
@@ -98,22 +98,7 @@ describe('Create item page - Charts - Dot plot: Header section and saving questi
98
98
  chartsDotPlotPage.steps.selectDotPlot();
99
99
  });
100
100
 
101
- describe('Validation error messages', () => {
102
- dialogBoxBase.tests.verifyRequiredFieldsWarningPopupOnClickingSaveButton(['Please set points']);
103
-
104
- it('Validation error messages should be displayed below required input fields', () => {
105
- chartsDotPlotPage.steps.verifyQuestionInstructionsErrorMessageIsNotDisplayed();
106
- chartsDotPlotPage.steps.verifyWarningIconOnRequiredFields(['Please set points']);
107
- chartsDotPlotPage.steps.verifySpecifyCorrectAnswerErrorIconNotExists();
108
- });
109
-
110
- it('Validation error messages should disappear when required input fields are filled', () => {
111
- chartsDotPlotPage.steps.allotPoints(10);
112
- chartsDotPlotPage.steps.verifyErrorMessageIsNotDisplayed();
113
- });
114
-
115
- chartsDotPlotPage.tests.verifyCreateItemWrapperContentsA11y();
116
- });
101
+ chartsDotPlotPage.tests.verifyCreateItemWrapperContentsA11y();
117
102
 
118
103
  describe('Saving a question', () => {
119
104
  it('When user clicks on "Save question" button, then the question should get saved and a snackbar with text \'Saved successfully!\' should be displayed', () => {
@@ -20,7 +20,7 @@ const selectors = {
20
20
  selectAManipulativeLabel: () => cy.get('[class*="SelectManipulativeWrapper"] [class*="BrainingcampManipulativestyle__WrapperSubHeader"]'),
21
21
  enterAShareCodeLabel: () => cy.get('[class*="EnterShareCodeWrapper"] [class*="BrainingcampManipulativestyle__WrapperSubHeader"]'),
22
22
  enterAShareCodeInputField: () => cy.get('[class*="EnterShareCodeWrapper"] input'),
23
- previewTabCanvas: () => cy.get('.canvas'),
23
+ previewTabCanvas: () => cy.get('.bcm-inner'),
24
24
  }
25
25
 
26
26
  const steps = {
@@ -1306,26 +1306,6 @@ const steps = {
1306
1306
  verifyPenaltyPointsForEachIncorrectBar: (penaltyPoints) => {
1307
1307
  utilities.verifyInnerText(autoScoredScoringSectionMultiResponseType.penaltyPointsDetailsSectionAllottedPointsLabel(), `Penalty points for each incorrect bar: ${penaltyPoints}`);
1308
1308
  },
1309
-
1310
- verifyAnswerStatusBannerNotExist: () => {
1311
- chartsBarPage.correctIncorrectAnswerTextWrapper()
1312
- .should('not.exist');
1313
- },
1314
-
1315
- verifyAnswerStatusBannerExist: () => {
1316
- chartsBarPage.correctIncorrectAnswerTextWrapper()
1317
- .should('be.visible');
1318
- },
1319
-
1320
- verifyCorrectAnswerSectionExist: () => {
1321
- chartsBarPage.correctAnswersLabel()
1322
- .should('be.visible');
1323
- },
1324
-
1325
- verifyCorrectAnswerSectionNotExist: () => {
1326
- chartsBarPage.correctAnswersLabel()
1327
- .should('not.exist');
1328
- },
1329
1309
  }
1330
1310
 
1331
1311
  const tests = {
@@ -146,13 +146,6 @@ const steps = {
146
146
  .within(() => {
147
147
  utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
148
148
  });
149
- }
150
- else if (field === 'Please select a file type') {
151
- // Upload Response Select File Type Accordion
152
- cy.get('.edit-question-edit-tab-wrapper .ngie-accordion-summary')
153
- .within(() => {
154
- utilities.verifyElementVisibilityState(commonComponents.warningIcon(), 'exist');
155
- });
156
149
  }
157
150
  })
158
151
  },
@@ -32,7 +32,7 @@ const steps = {
32
32
 
33
33
  const tests = {
34
34
  verifyDefaultToolDropdown:(toolOptionsArray, defaultTool)=>{
35
- const defaultSelectedTool = defaultTool || toolOptionsArray[0];
35
+ const defaultSelectedTool = defaultTool || toolOptionsArray[1];
36
36
  it(`\'Default tool\' label and dropdown should be displayed with \'${defaultSelectedTool}\' option selected by default`, () => {
37
37
  utilities.verifyInnerText(defaultToolDropdown.defaultToolDropdownLabel(), 'Default tool');
38
38
  utilities.verifyInnerText(defaultToolDropdown.defaultToolDropdown(), defaultSelectedTool);
@@ -21,7 +21,7 @@ const selectors = {
21
21
  previewTabDesmosToolKeypad: () => cy.get('[class*="DesmosToolstyles__DesmosToolViewWrapper"] .dcg-basic-keypad-container'),
22
22
  previewTabDesmosToolKeypadKeys: (ariaLabel = null) => {
23
23
  if (ariaLabel) {
24
- return cy.get(`.dcg-basic-keypad .dcg-keypad-btn[aria-label*="${ariaLabel}"]`)
24
+ return cy.get(`.dcg-basic-keypad .dcg-keypad-btn[aria-label*="${ariaLabel}"]:visible`)
25
25
  } else {
26
26
  return cy.get('.dcg-basic-keypad .dcg-keypad-btn')
27
27
  }
@@ -29,8 +29,6 @@ const selectors = {
29
29
  }
30
30
  },
31
31
  minimumPointsLabel: () => cy.get('[class*="min-score-points-label"]'),
32
- questionLabel: () => cy.get('[class*="addResponseCKEditorstyles__TitleWrapper"]'),
33
- questionWarningIcon: () => cy.get('[class*="addResponseCKEditorstyles__IconWrapper"]'),
34
32
  minimumPointsInputField: () => cy.get('.min-score-points-input-field input'),
35
33
  }
36
34
 
@@ -83,7 +81,6 @@ const steps = {
83
81
  scoringSectionBaseEditTab.scoringTypeDropdownListOptions(convertedString)
84
82
  .should('be.visible') // Ensure the dropdown option is visible
85
83
  .click();
86
- cy.wait(2000); // Wait for the dropdown to close
87
84
  utilities.verifyElementVisibilityState(commonComponents.dropdownList(), 'notExist');
88
85
  },
89
86
 
@@ -1,5 +1,5 @@
1
1
  import utilities from "../support/helpers/utilities";
2
- import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent, toolSettingsComponent } from "./components";
2
+ import { commonComponents, createQuestionBasePage, questionInstructionsComponent, additionalSettingsPanel, scoringSectionBaseEditTab, additionalSettingsAccessibilitySectionComponent, studentViewSettingsLabelComponent, hideExpressionListComponent } from "./components";
3
3
  import { desmosToolComponent } from "./components/desmosToolComponent";
4
4
  const css = Cypress.env('css');
5
5
 
@@ -10,13 +10,12 @@ const selectors = {
10
10
  ...additionalSettingsPanel,
11
11
  ...questionInstructionsComponent,
12
12
  desmosGraphingTool: () => cy.get('[id*="desmos-graph-tool"]'),
13
- desmosGraphingToolExpressionPanel: () => cy.get('.dcg-exppanel-container'),
13
+ desmosGraphingToolExpressionPanel: () => cy.get('[id*="desmos-graph-tool"] .dcg-exppanel-container.dcg-add-shadow'),
14
14
  studentViewSettingsLabel: () => cy.get('[class*="StudentViewWrapper"]'),
15
15
  hideExpressionListLabel: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] .MuiFormControlLabel-label'),
16
16
  hideExpressionListCheckbox: () => cy.get('[data-ngie-testid="hide-expression-list-checkbox"] input'),
17
17
  showHideListButton: () => cy.get('.dcg-show-expressions-tab[role="button"]'),
18
18
  desmosGraphingWidthLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(0),
19
- desmosComponentGradingView: () => cy.get('[class*="DesmosGraphingPreviewstyles__DesmosWrapper"]'),
20
19
  desmosGraphingWidthInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(0),
21
20
  desmosGraphingHeightLabel: () => cy.get('[class*="LabelInputWrapper"]').eq(1),
22
21
  desmosGraphingHeightInputField: () => cy.get('[class*="DimensionInputWrapper"] input').eq(1),
@@ -39,16 +38,6 @@ const selectors = {
39
38
  errorMessage: () => cy.get('.error-text-message'),
40
39
  resourceLinkPreviewTitle: () => cy.get('[class*="DesmosGraphingstyles__ResourceLinkPreviewLabel"]'),
41
40
  desmosComponent: () => cy.get('[class*="DesmosGraphingstyles__DesmosComponentWrapper"]'),
42
- widthLabel: () => cy.get('[class*="StudentViewSettingsstyles__LabelInputWrapper"]').eq(0),
43
- heightLabel: () => cy.get('[class*="StudentViewSettingsstyles__LabelInputWrapper"]').eq(1),
44
- lockUnlockAspectRatioButton: () => cy.get('[class*="StudentViewSettingsstyles__LockIconWrapper"] button'),
45
- resetButton: () => cy.get('[class*="StudentViewSettingsstyles__ResetIconWrapper"] button'),
46
- desmosResourceCanvasEditTab: () => cy.get('[id*="desmos-3d-graph-tool"]'),
47
- desmosResourceCanvasPreviewTab: () => cy.get('[class*="DesmosGraphingPreviewstyles__DesmosPreview"]'),
48
- addIconDesmos: () => cy.get('.dcg-add-expression-container .dcg-icon-plus'),
49
- expressionInputField: () => cy.get('.dcg-action-newmath'),
50
- editIconPencil: () => cy.get('.icon-pencil'),
51
- teacherGuidelinesInputField: () => cy.get('[class*="TeacherGuidelinesstyles__TextField"] input'),
52
41
  }
53
42
 
54
43
  const steps = {
@@ -58,7 +47,6 @@ const steps = {
58
47
  ...additionalSettingsPanel.steps,
59
48
  ...questionInstructionsComponent.steps,
60
49
  ...commonComponents.steps,
61
- ...toolSettingsComponent.steps,
62
50
  verifyHideExpressionListCheckboxUnchecked: () => {
63
51
  desmos3DGraphingPage.hideExpressionListCheckbox()
64
52
  .should('not.be.checked');
@@ -334,128 +322,10 @@ const steps = {
334
322
  },
335
323
  clearInputToInsertResourceLinkInputField: () => {
336
324
  desmos3DGraphingPage.insertResourceLinkInputField()
337
- .click()
338
- desmos3DGraphingPage.insertResourceLinkInputField()
339
- .type('{selectall}{backspace}')
325
+ .clear();
340
326
  cy.get('body')
341
327
  .click();
342
328
  },
343
- verifyLockedStateOfLockUnlockAspectRatioButton: () => {
344
- desmos3DGraphingPage.lockUnlockAspectRatioButton()
345
- .should('have.attr', 'aria-label', 'Locked aspect ratio');
346
- },
347
- verifyUnlockedStateOfLockUnlockAspectRatioButton: () => {
348
- desmos3DGraphingPage.lockUnlockAspectRatioButton()
349
- .should('have.attr', 'aria-label', 'Unlocked aspect ratio');
350
- },
351
- /**
352
- * @description add input to width input field
353
- * @param {number} width Width to be set for geoGebra resource
354
- */
355
- addInputToWidthInputField: (width) => {
356
- desmos3DGraphingPage.widthInputField()
357
- .clear()
358
- .type(width)
359
- .blur();
360
- utilities.verifyInputFieldValue(desmos3DGraphingPage.widthInputField(), width);
361
- },
362
- /**
363
- * @description add input to height input field
364
- * @param {number} height Height to be set for geoGebra resource
365
- */
366
- addInputToHeightInputField: (height) => {
367
- desmos3DGraphingPage.heightInputField()
368
- .clear()
369
- .type(height)
370
- .blur();
371
- utilities.verifyInputFieldValue(desmos3DGraphingPage.heightInputField(), height);
372
- },
373
- /**
374
- * Verify width of geoGebra resource canvas in edit tab
375
- * @param {number} width Width of geoGebra resource canvas in edit tab
376
- */
377
- verifyCanvasWidthEditTab: (width) => {
378
- utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasEditTab(), {
379
- 'width': `${width}px`
380
- });
381
- },
382
- /**
383
- * Verify height of geoGebra resource canvas in edit tab
384
- * @param {number} height Height of geoGebra resource canvas in edit tab
385
- */
386
- verifyCanvasHeightEditTab: (height) => {
387
- utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasEditTab(), {
388
- 'height': `${height}px`
389
- });
390
- },
391
- clickOnResetButton: () => {
392
- desmos3DGraphingPage.resetButton()
393
- .click();
394
- },
395
- clickOnLockUnlockAspectRatioButton: () => {
396
- desmos3DGraphingPage.lockUnlockAspectRatioButton()
397
- .click();
398
- },
399
- /**
400
- * Verify width of geoGebra resource canvas in preview tab
401
- * @param {number} width Width of geoGebra resource canvas in preview tab
402
- */
403
- verifyCanvasWidthPreviewTab: (width) => {
404
- utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasPreviewTab(), {
405
- 'width': `${width}px`
406
- });
407
- },
408
- /**
409
- * Verify height of geoGebra resource canvas in preview tab
410
- * @param {number} height Height of geoGebra resource canvas in preview tab
411
- */
412
- verifyCanvasHeightPreviewTab: (height) => {
413
- utilities.verifyCSS(desmos3DGraphingPage.desmosResourceCanvasPreviewTab(), {
414
- 'height': `${height}px`
415
- });
416
- },
417
- /**
418
- * @description Types a mathematical expression in the Desmos expression input field
419
- * @param {string} expression The mathematical expression to type
420
- */
421
- typeExpression: (expression) => {
422
- desmos3DGraphingPage.expressionInputField()
423
- .click();
424
- desmos3DGraphingPage.expressionInputField()
425
- .type(expression);
426
- },
427
- /**
428
- * @description Verifies that the specified expression is not present in the Desmos expression field
429
- * @param {string} expression The expression that should not be present
430
- */
431
- verifyExpressionNotPresent: (expression) => {
432
- desmos3DGraphingPage.expressionInputField()
433
- .should('not.contain', expression);
434
- },
435
- editQuestionItemView: () => {
436
- desmos3DGraphingPage.editIconPencil()
437
- .click();
438
- },
439
- verifyFontSizeDropdown: (fontSize) => {
440
- desmos3DGraphingPage.fontSizeDropdown()
441
- .should('have.text', fontSize);
442
- },
443
- verifyTeacherGuidelinesInputField: (text) => {
444
- desmos3DGraphingPage.additionalSettingsTeacherGuidelinesInputField()
445
- .should('have.text', text);
446
- },
447
- verifySampleAnswerInputField: (text) => {
448
- desmos3DGraphingPage.additionalSettingsSampleAnswerInputField()
449
- .should('have.text', text);
450
- },
451
- verifyAcknowledgementsInputField: (text) => {
452
- desmos3DGraphingPage.additionalSettingsAcknowledgementsInputField()
453
- .should('have.text', text);
454
- },
455
- verifyFlagThisItemNonAccessibleCheckboxIsChecked: () => {
456
- desmos3DGraphingPage.flagNonAccessibleCheckbox()
457
- .should('be.checked');
458
- },
459
329
  }
460
330
 
461
331
  const tests = {
@@ -467,7 +337,7 @@ const tests = {
467
337
  ...additionalSettingsAccessibilitySectionComponent.tests,
468
338
  ...studentViewSettingsLabelComponent.tests,
469
339
  ...hideExpressionListComponent.tests,
470
-
340
+
471
341
  verifyGraphingQuestionSpecifyPredefinedExpressionContent: () => {
472
342
  it('When user selects a scoring type the contents of the Specify predefined expression should be displayed', () => {
473
343
  utilities.verifyElementVisibilityState(desmos3DGraphingPage.desmosGraphingTool(), 'exist');
@@ -488,21 +358,6 @@ const tests = {
488
358
  it('Accessibility of error message', { tags: 'a11y' }, () => {
489
359
  cy.checkAccessibility(commonComponents.nextGenCreateItemWrapper());
490
360
  });
491
- },
492
-
493
- verifyQuestionInstructionsInputFieldPreviewTab: () => {
494
- it('When user has not entered any text in the Question instructions input field in the \'Edit\' tab then nothing should be displayed in the \'Preview\' tab', () => {
495
- createQuestionBasePage.steps.switchToPreviewTab();
496
- //Failing due to https://redmine.zeuslearning.com/issues/553382
497
- utilities.verifyTextContent(questionInstructionsComponent.questionInstructionsText(), '')
498
- });
499
-
500
- it('When the user specifies question instructions, then the added question instructions should be displayed in the \'Preview\' tab', () => {
501
- createQuestionBasePage.steps.switchToEditTab();
502
- questionInstructionsComponent.steps.addTextInQuestionInstructionsInputField('Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
503
- createQuestionBasePage.steps.switchToPreviewTab();
504
- utilities.verifyTextContent(questionInstructionsComponent.questionInstructionsTextPreviewTab(), 'Which of the following is the major contributor to increased carbon dioxide levels because of urbanization? Select your answer from the options below.');
505
- });
506
361
  }
507
362
  }
508
363