itemengine-cypress-automation 1.0.180-essayResponseLazyLoadingFix-3170a00.0 → 1.0.182-repoUpdate22April-92d01da.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (103) hide show
  1. package/cypress/e2e/ILC/AudioPlayerNew/previewContents.smoke.js +162 -0
  2. package/cypress/e2e/ILC/DragAndDropIntoCategoriesNew/clickAndDrop.js +1 -1
  3. package/cypress/e2e/ILC/DrawingResponse/drawingResponseGradingViewAndCorrectAnswerViewContents.smoke.js +4 -5
  4. package/cypress/e2e/ILC/EditTabSettingPage/itemPreviewSettingsTabFunctionality.js +64 -3
  5. package/cypress/e2e/ILC/EssayResponse/editCategoryFlyout.js +1 -1
  6. package/cypress/e2e/ILC/FeedbackScaleNew/headerSection.js +29 -1
  7. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/previewContentsForAllViews.smoke.js +2 -2
  8. package/cypress/e2e/ILC/FillInTheGapsDragAndDropNew/studentViewSettings.js +1 -1
  9. package/cypress/e2e/ILC/FillInTheGapsDropdownNew/studentViewSettings.js +1 -1
  10. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/editTabScoring.js +1 -0
  11. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/previewContentsForAllViews.smoke.js +2 -2
  12. package/cypress/e2e/ILC/FillInTheGapsOverImageDragAndDrop/studentViewSettings.js +1 -1
  13. package/cypress/e2e/ILC/FillInTheGapsOverImageDropdownNew/studentViewSettings.js +1 -1
  14. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +4 -4
  15. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  16. package/cypress/e2e/ILC/FillInTheGapsOverImageTextNew/studentViewSettings.js +1 -1
  17. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +5 -5
  18. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialDifferentWeightsWithCorrectPointsEqualToAlternativePoints.js +3 -4
  19. package/cypress/e2e/ILC/FillInTheGapsTextNew/Scoring/partialEqualWeightsWithAlternativePointsGreaterThanCorrectPoints.js +1 -1
  20. package/cypress/e2e/ILC/FillInTheGapsTextNew/headerSection.js +1 -0
  21. package/cypress/e2e/ILC/FillInTheGapsTextNew/studentViewSettings.js +1 -1
  22. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithAlternativePointsGreaterThanCorrectPoints.js +2 -2
  23. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +2 -2
  24. package/cypress/e2e/ILC/Graphing/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +2 -2
  25. package/cypress/e2e/ILC/Graphing/addBackgroundShapesSection.js +2 -2
  26. package/cypress/e2e/ILC/Graphing/studentViewSettings.js +1 -1
  27. package/cypress/e2e/ILC/GridFill/previewContentsForAllViews.smoke.js +3 -3
  28. package/cypress/e2e/ILC/GridFill/studentViewSettingsSection.js +1 -1
  29. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +216 -0
  30. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +214 -0
  31. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +251 -0
  32. package/cypress/e2e/ILC/ListOrderingNew/Scoring/allOrNothingPenaltyScoring.js +52 -0
  33. package/cypress/e2e/ILC/ListOrderingNew/allOrNothingForAllViews.smoke.js +243 -0
  34. package/cypress/e2e/ILC/ListOrderingNew/checkAnswerFunctionalityForAllViews.smoke.js +128 -0
  35. package/cypress/e2e/ILC/ListOrderingNew/previewContentsForAllViews.smoke.js +176 -0
  36. package/cypress/e2e/ILC/Matching/studentViewSettings.js +1 -1
  37. package/cypress/e2e/ILC/MultipleSelection/allOrNothingWithAlternativeAnswer.js +1 -0
  38. package/cypress/e2e/ILC/MultipleSelectionGridNew/studentViewSettings.js +1 -1
  39. package/cypress/e2e/ILC/NumberLine/LayoutSection.js +530 -0
  40. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +3 -3
  41. package/cypress/e2e/ILC/NumberLine/lineSettingsSection.js +119 -0
  42. package/cypress/e2e/ILC/NumberLine/numberLineSection.js +263 -0
  43. package/cypress/e2e/ILC/NumberLine/previewTabContentsForAllViews.smoke.js +1 -1
  44. package/cypress/e2e/ILC/NumberLine/studentViewSettings.js +1 -1
  45. package/cypress/e2e/ILC/NumberLine/toolSettings.js +2 -1
  46. package/cypress/e2e/ILC/Protractor/protractorPreviewContents.smoke.js +1 -1
  47. package/cypress/e2e/ILC/ReadingRuler/readingRulerEditTabBasicsSection.js +49 -1
  48. package/cypress/e2e/ILC/ShortTextResponseNew/studentViewSettings.js +1 -1
  49. package/cypress/e2e/ILC/SingleSelectionGridNew/studentViewSettings.js +1 -1
  50. package/cypress/e2e/ILC/TextEntryMath/responseEvaluationMethodsAndCustomSettings.js +2 -2
  51. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingAlternatePointsMoreThanCorrectPoints.js +0 -1
  52. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsEqualToAlternatePoints.js +0 -1
  53. package/cypress/e2e/ILC/TextSelection/Scoring/allOrNothingCorrectPointsMoreThanAlternatePoints.js +0 -1
  54. package/cypress/e2e/ILC/TextSelection/Scoring/basicScoringForAllTextSelectionTypes.smoke.js +0 -1
  55. package/cypress/e2e/ILC/TextSelection/additionalSettings.js +125 -0
  56. package/cypress/e2e/ILC/TextSelection/allOrNothingScoringForAllViews.smoke.js +0 -1
  57. package/cypress/e2e/ILC/TextSelection/checkAnswerFunctionalityForAllViews.smoke.js +0 -1
  58. package/cypress/e2e/ILC/TextSelection/editTabScoringSection.js +5 -4
  59. package/cypress/e2e/ILC/TextSelection/headerSection.js +73 -0
  60. package/cypress/e2e/ILC/TextSelection/previewContentsForAllViews.smoke.js +2 -2
  61. package/cypress/e2e/ILC/TextSelection/questionInstructionsAndQuestion.smoke.js +179 -0
  62. package/cypress/e2e/ILC/TextSelection/specifyCorrectAnswerSection.js +89 -0
  63. package/cypress/e2e/ILC/TextSelection/studentViewSettings.js +436 -0
  64. package/cypress/e2e/ILC/TextSelection/styleAndLayoutCustomizationAccordion.js +277 -0
  65. package/cypress/e2e/ILC/TextSelection/textSelectionModesInPreviewTab.js +222 -0
  66. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyCorrectAnswerSection.js +260 -0
  67. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +380 -0
  68. package/cypress/e2e/ILC/ToolSettings/toolSettingsContent.js +5 -5
  69. package/cypress/fixtures/constants.js +1 -1
  70. package/cypress/fixtures/equationEditorCategoriesAndSymbols .js +20 -20
  71. package/cypress/fixtures/theme/ilc.json +16 -16
  72. package/cypress/pages/audioPlayerPage.js +55 -543
  73. package/cypress/pages/brainingCampManipulativePage.js +1 -1
  74. package/cypress/pages/components/autoScoredSpecifyCorrectAnswerSection.js +3 -3
  75. package/cypress/pages/components/autoScoredStudentViewSettings.js +4 -4
  76. package/cypress/pages/components/commonComponents.js +1 -0
  77. package/cypress/pages/components/draggableOptionContainer.js +1 -0
  78. package/cypress/pages/components/equationEditorFlyout.js +3 -2
  79. package/cypress/pages/components/essayResponseCommonComponents.js +8 -2
  80. package/cypress/pages/components/fillInTheGapsDropdownCommonComponent.js +1 -0
  81. package/cypress/pages/components/imageCanvasComponent.js +2 -1
  82. package/cypress/pages/components/index.js +1 -0
  83. package/cypress/pages/components/optionsWrapperComponent.js +11 -0
  84. package/cypress/pages/components/styleAndLayoutCustomizationAccordionComponent.js +46 -0
  85. package/cypress/pages/components/toolSettingsComponent.js +6 -0
  86. package/cypress/pages/contentBlocksPage.js +2 -2
  87. package/cypress/pages/createItemPage.js +29 -0
  88. package/cypress/pages/dialogBoxBase.js +2 -2
  89. package/cypress/pages/drawingResponsePage.js +23 -4
  90. package/cypress/pages/feedbackScalePage.js +3 -0
  91. package/cypress/pages/graphingPage.js +18 -0
  92. package/cypress/pages/gridFillPage.js +18 -2
  93. package/cypress/pages/index.js +1 -1
  94. package/cypress/pages/itemPreviewSettingsPage.js +4 -0
  95. package/cypress/pages/listOrderingPage.js +122 -647
  96. package/cypress/pages/matchingPage.js +1 -1
  97. package/cypress/pages/multipleSelectionPage.js +23 -1
  98. package/cypress/pages/numberLinePage.js +1196 -59
  99. package/cypress/pages/rulerPage.js +6 -2
  100. package/cypress/pages/textSelectionPage.js +460 -22
  101. package/package.json +1 -1
  102. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettings.js +0 -432
  103. package/cypress/e2e/ILC/EssayResponse/essayResponseAdditionalSettingsBasic.js +0 -134
@@ -0,0 +1,119 @@
1
+ import { numberLinePage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ const css = Cypress.env('css');
5
+ const lineSettingsOptions = ['Whole numbers', 'Decimals', 'Fractions', 'Mixed fractions'];
6
+ const numbers = ['-10', '-10.00', "−\n10\n1", "−\n10\n0\n1"]
7
+
8
+ describe('Create item - Number line : Line settings and Display specific annotation (use semicolons to separate) section', () => {
9
+
10
+ before(() => {
11
+ cy.loginAs('admin');
12
+ });
13
+
14
+ describe('Line settings and Display specific annotation (use semicolons to separate) - Contents and Edit tab', () => {
15
+ abortEarlySetup();
16
+ before(() => {
17
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
18
+ cy.barsPreLoaderWait();
19
+ numberLinePage.steps.enterTextInIntervalInputField(2);
20
+ });
21
+
22
+ it(`Line settings label and 4 options ${lineSettingsOptions} should be displayed and by default ${lineSettingsOptions[0]} should be selected`, () => {
23
+ utilities.verifyInnerText(numberLinePage.lineSettingsLabel(), 'Line settings');
24
+ utilities.verifyElementVisibilityState(numberLinePage.lineSettingsLabel(), 'visible');
25
+ utilities.verifyElementVisibilityState(numberLinePage.lineSettingsToggleButton(), 'visible');
26
+ utilities.verifyElementCount(numberLinePage.lineSettingsToggleButton(), 4);
27
+ lineSettingsOptions.forEach((label) => {
28
+ utilities.verifyInnerText(numberLinePage.lineSettingsToggleButton(label), label);
29
+ utilities.verifyElementVisibilityState(numberLinePage.lineSettingsToggleButton(label), 'visible');
30
+ });
31
+ numberLinePage.steps.verifyLineSettingsToggleButtonSelected(lineSettingsOptions[0]);
32
+ });
33
+
34
+ lineSettingsOptions.forEach((option, index) => {
35
+ it(`When user selects ${option} in line settings section, then number displayed on number line should be ${option} in number line section and specify correct answer section`, () => {
36
+ numberLinePage.steps.selectLineSettingsToggleButton(option);
37
+ numberLinePage.steps.verifyLineSettingsToggleButtonSelected(option);
38
+ numberLinePage.steps.verifyLabelOnNumberLineNumberLineSection([{ value: numbers[index], index: 0 }]);
39
+ });
40
+ });
41
+
42
+ it('Display specific annotation (use semicolons to separate) label and input field should be displayed and by default input field should be empty', () => {
43
+ utilities.verifyInnerText(numberLinePage.displaySpecificAnnotationLabel(), 'Display specific annotation (use semicolons to separate)');
44
+ utilities.verifyElementVisibilityState(numberLinePage.displaySpecificAnnotationLabel(), 'visible');
45
+ utilities.verifyElementVisibilityState(numberLinePage.displaySpecificAnnotationInputField(), 'visible');
46
+ numberLinePage.steps.verifyTextInDisplaySpecificAnnotationInputField('');
47
+ });
48
+
49
+ it('When user enters value in Display specific annotation (use semicolons to separate) input field then it should be displayed on number line in Number line section and Specify correct answer section', () => {
50
+ numberLinePage.steps.selectLineSettingsToggleButton(lineSettingsOptions[0]);
51
+ numberLinePage.steps.enterTextInDisplaySpecificAnnotationInputField('-9;');
52
+ numberLinePage.steps.verifyTextInDisplaySpecificAnnotationInputField('-9;');
53
+ numberLinePage.steps.verifyLabelOnNumberLineSpecifyCorrectAnswerSection([{ value: -9, index: 1 }]);
54
+ numberLinePage.steps.verifyLabelOnNumberLineNumberLineSection([{ value: -9, index: 1 }]);
55
+ });
56
+
57
+ it('CSS of number line section', { tags: 'css' }, () => {
58
+ utilities.verifyCSS(numberLinePage.displaySpecificAnnotationLabel(), {
59
+ 'color': css.color.labels,
60
+ 'font-size': css.fontSize.normal,
61
+ 'font-weight': css.fontWeight.semibold
62
+ });
63
+ utilities.verifyCSS(numberLinePage.displaySpecificAnnotationInputField(), {
64
+ 'color': css.color.text,
65
+ 'font-size': css.fontSize.default,
66
+ 'font-weight': css.fontWeight.regular
67
+ });
68
+ utilities.verifyCSS(numberLinePage.lineSettingsLabel(), {
69
+ 'color': css.color.labels,
70
+ 'font-size': css.fontSize.normal,
71
+ 'font-weight': css.fontWeight.semibold
72
+ });
73
+ utilities.verifyCSS(numberLinePage.lineSettingsToggleButton(lineSettingsOptions[1]), {
74
+ 'background-color': css.color.transparent,
75
+ 'color': css.color.closeIcon,
76
+ 'font-size': css.fontSize.normal,
77
+ 'font-weight': css.fontWeight.bold
78
+ });
79
+ utilities.verifyCSS(numberLinePage.lineSettingsToggleButton(lineSettingsOptions[0]), {
80
+ 'color': css.color.primaryBtn,
81
+ 'font-size': css.fontSize.normal,
82
+ 'font-weight': css.fontWeight.bold,
83
+ 'background-color': css.color.activeButtons
84
+ });
85
+ });
86
+
87
+ it('Accessibility of number line section contents', { tags: 'a11y' }, () => {
88
+ cy.checkAccessibility(numberLinePage.numberLineNumberLineSection().parents('.number-line-grid-setting'));
89
+ });
90
+ });
91
+
92
+ describe('Line settings and Display specific annotation (use semicolons to separate) - Preview tab', () => {
93
+ abortEarlySetup();
94
+ before(() => {
95
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
96
+ cy.barsPreLoaderWait();
97
+ numberLinePage.steps.enterTextInIntervalInputField(2);
98
+ });
99
+
100
+ lineSettingsOptions.forEach((option, index) => {
101
+ it(`When user selects ${option} in line settings section, then number displayed on number line should be ${option} in preview tab`, () => {
102
+ numberLinePage.steps.switchToEditTab();
103
+ numberLinePage.steps.selectLineSettingsToggleButton(option);
104
+ numberLinePage.steps.verifyLineSettingsToggleButtonSelected(option);
105
+ numberLinePage.steps.switchToPreviewTab();
106
+ numberLinePage.steps.verifyLabelOnNumberLinePreviewTab([{ value: numbers[index], index: 0 }]);
107
+ });
108
+ });
109
+
110
+ it('When user enters value in Display specific annotation (use semicolons to separate) input field then it should be displayed on number line in preview tab', () => {
111
+ numberLinePage.steps.switchToEditTab();
112
+ numberLinePage.steps.selectLineSettingsToggleButton(lineSettingsOptions[0]);
113
+ numberLinePage.steps.enterTextInDisplaySpecificAnnotationInputField('-9;');
114
+ numberLinePage.steps.verifyTextInDisplaySpecificAnnotationInputField('-9;');
115
+ numberLinePage.steps.switchToPreviewTab();
116
+ numberLinePage.steps.verifyLabelOnNumberLinePreviewTab([{ value: -9, index: 1 }]);
117
+ });
118
+ });
119
+ });
@@ -0,0 +1,263 @@
1
+ import { numberLinePage } from "../../../pages";
2
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
3
+ import utilities from "../../../support/helpers/utilities";
4
+ const css = Cypress.env('css');
5
+ const displayNumbersOptions = ["Below line", "Above line"];
6
+
7
+ describe('Number line: Number line section', () => {
8
+ before(() => {
9
+ cy.loginAs('admin');
10
+ });
11
+
12
+ describe('Number line section - Contents', () => {
13
+ abortEarlySetup();
14
+ before(() => {
15
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
16
+ cy.barsPreLoaderWait();
17
+ });
18
+
19
+ it('Number line title and number line should be displayed', () => {
20
+ utilities.verifyInnerText(numberLinePage.numberLineTitleNumberLineSection(), 'Number line title');
21
+ utilities.verifyElementVisibilityState(numberLinePage.numberLineTitleNumberLineSection(), 'visible');
22
+ utilities.verifyElementVisibilityState(numberLinePage.numberLineNumberLineSection(), 'visible');
23
+ });
24
+
25
+ it('Min label and input field should be displayed and by default, input field should have \'-10\' pre-filled in it', () => {
26
+ utilities.verifyInnerText(numberLinePage.minLabel(), 'Min');
27
+ utilities.verifyElementVisibilityState(numberLinePage.minLabel(), 'visible');
28
+ utilities.verifyElementVisibilityState(numberLinePage.minInputField(), 'visible');
29
+ numberLinePage.steps.verifyTextInMinInputField(-10);
30
+ });
31
+
32
+ it('Max label and input field should be displayed and by default, input field should have \'10\' pre-filled in it', () => {
33
+ utilities.verifyInnerText(numberLinePage.maxLabel(), 'Max');
34
+ utilities.verifyElementVisibilityState(numberLinePage.maxLabel(), 'visible');
35
+ utilities.verifyElementVisibilityState(numberLinePage.maxInputField(), 'visible');
36
+ numberLinePage.steps.verifyTextInMaxInputField(10);
37
+ });
38
+
39
+ it('Interval label and input field should be displayed and by default, input field should have \'1\' pre-filled in it', () => {
40
+ utilities.verifyInnerText(numberLinePage.intervalLabel(), 'Interval');
41
+ utilities.verifyElementVisibilityState(numberLinePage.intervalLabel(), 'visible');
42
+ utilities.verifyElementVisibilityState(numberLinePage.intervalInputField(), 'visible');
43
+ numberLinePage.steps.verifyTextInIntervalInputField(1);
44
+ });
45
+
46
+ it('Annotate every label and input field should be displayed and by default, input field should have \'1\' pre-filled in it', () => {
47
+ utilities.verifyInnerText(numberLinePage.annotateEveryLabel(), 'Annotate every');
48
+ utilities.verifyElementVisibilityState(numberLinePage.annotateEveryLabel(), 'visible');
49
+ utilities.verifyElementVisibilityState(numberLinePage.annotateEveryInputField(), 'visible');
50
+ numberLinePage.steps.verifyTextInAnnotateEveryInputField(1);
51
+ });
52
+
53
+ it(`Display numbers label and 2 options ${displayNumbersOptions} should be displayed and by default, ${displayNumbersOptions[0]} should be selected`, () => {
54
+ utilities.verifyInnerText(numberLinePage.displayNumbersLabel(), 'Display numbers');
55
+ utilities.verifyElementVisibilityState(numberLinePage.displayNumbersLabel(), 'visible');
56
+ utilities.verifyElementVisibilityState(numberLinePage.displayNumbersToggleButton(), 'visible');
57
+ utilities.verifyElementCount(numberLinePage.displayNumbersToggleButton(), 2);
58
+ displayNumbersOptions.forEach((label, index) => {
59
+ utilities.verifyInnerText(numberLinePage.displayNumbersToggleButton(label), label);
60
+ utilities.verifyElementVisibilityState(numberLinePage.displayNumbersToggleButton(label), 'visible');
61
+ });
62
+ numberLinePage.steps.verifyDisplayNumbersToggleButtonSelected(displayNumbersOptions[0]);
63
+ });
64
+
65
+ it('CSS of number line section', { tags: 'css' }, () => {
66
+ utilities.verifyCSS(numberLinePage.numberLineTitleNumberLineSection(), {
67
+ 'color': css.color.activeButtons,
68
+ 'font-size': css.fontSize.heading,
69
+ 'font-weight': css.fontWeight.bold
70
+ });
71
+ utilities.verifyCSS(numberLinePage.intervalLabel(), {
72
+ 'color': css.color.labels,
73
+ 'font-size': css.fontSize.normal,
74
+ 'font-weight': css.fontWeight.semibold
75
+ });
76
+ utilities.verifyCSS(numberLinePage.intervalInputField(), {
77
+ 'color': css.color.text,
78
+ 'font-size': css.fontSize.default,
79
+ 'font-weight': css.fontWeight.regular
80
+ });
81
+ utilities.verifyCSS(numberLinePage.displayNumbersLabel(), {
82
+ 'color': css.color.labels,
83
+ 'font-size': css.fontSize.normal,
84
+ 'font-weight': css.fontWeight.semibold
85
+ });
86
+ utilities.verifyCSS(numberLinePage.displayNumbersToggleButton(displayNumbersOptions[0]), {
87
+ 'background-color': css.color.activeButtons,
88
+ 'color':css.color.primaryBtn,
89
+ 'font-size': css.fontSize.normal,
90
+ 'font-weight': css.fontWeight.bold
91
+ });
92
+ utilities.verifyCSS(numberLinePage.displayNumbersToggleButton(displayNumbersOptions[1]), {
93
+ 'background-color': css.color.transparent,
94
+ 'color':css.color.closeIcon,
95
+ 'font-size': css.fontSize.normal,
96
+ 'font-weight': css.fontWeight.bold
97
+ });
98
+ });
99
+
100
+ it('Accessibility of number line section contents', { tags: 'a11y' }, () => {
101
+ cy.checkAccessibility(numberLinePage.numberLineNumberLineSection().parents('.number-line-grid-setting'));
102
+ });
103
+ });
104
+
105
+ describe('Number line section - Edit tab', () => {
106
+ abortEarlySetup();
107
+ before(() => {
108
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
109
+ cy.barsPreLoaderWait();
110
+ });
111
+
112
+ it('When the user clicks on the \'Number line title\' a popup with title \'Number line title\' and \'Add label\' label with input field should be displayed along with \'Save\' and \'Cancel\' button', () => {
113
+ numberLinePage.steps.clickOnNumberLineTitle();
114
+ utilities.verifyInnerText(numberLinePage.dialogBoxTitle(), 'Number line title');
115
+ utilities.verifyInnerText(numberLinePage.titlePopupAddLabelLabel(), 'Add title');
116
+ utilities.verifyElementVisibilityState(numberLinePage.titlePopupAddLabelInputField(), 'visible');
117
+ utilities.verifyInnerText(numberLinePage.titlePopupSaveButton(), 'Save');
118
+ utilities.verifyInnerText(numberLinePage.titlePopupCancelButton(), 'Cancel');
119
+ });
120
+
121
+ it('The input field should be prefilled with \'Number line title\' and the user should be able to edit it', () => {
122
+ numberLinePage.steps.verifyTextInTitlePopupAddLabelInputField('Number line title');
123
+ });
124
+
125
+ it('When the user edits the Number line title and clicks on \'Cancel\' button then the changes should not be displayed in the Number line section and \'Specify correct answer\' section Number line', () => {
126
+ numberLinePage.steps.enterTextInTitlePopupAddLabelInputField('Linear number scale');
127
+ numberLinePage.steps.clickOnTitlePopupCancelButton();
128
+ utilities.verifyInnerText(numberLinePage.numberLineTitleNumberLineSection(), 'Number line title');
129
+ utilities.verifyInnerText(numberLinePage.numberLineTitleSpecifyCorrectAnswerSection(), 'Number line title');
130
+ });
131
+
132
+ it('When the user clicks on the \'Number line title\' then the original text should be displayed in the popup', () => {
133
+ numberLinePage.steps.clickOnNumberLineTitle();
134
+ numberLinePage.steps.verifyTextInTitlePopupAddLabelInputField('Number line title');
135
+ });
136
+
137
+ it('When the user clicks on \'Save\' after updating the input field the updated label should be displayed in the Number line section and \'Specify correct answer\' section Number line', () => {
138
+ numberLinePage.steps.enterTextInTitlePopupAddLabelInputField('Linear number scale');
139
+ numberLinePage.steps.clickOnTitlePopupSaveButton();
140
+ utilities.verifyInnerText(numberLinePage.numberLineTitleNumberLineSection(), 'Linear number scale');
141
+ utilities.verifyInnerText(numberLinePage.numberLineTitleSpecifyCorrectAnswerSection(), 'Linear number scale');
142
+ });
143
+
144
+ it('When user updates value in Min input field then it should be updated in Specify correct answer section', () => {
145
+ numberLinePage.steps.enterTextInMinInputField(-12);
146
+ numberLinePage.steps.verifyTextInMinInputField(-12);
147
+ numberLinePage.steps.verifyLabelOnNumberLineNumberLineSection([{ value: -12, index: 0 }]);
148
+ numberLinePage.steps.verifyLabelOnNumberLineSpecifyCorrectAnswerSection([{ value: -12, index: 0 }]);
149
+ });
150
+
151
+ it('When user updates value in Max input field then it should be updated in Specify correct answer section', () => {
152
+ numberLinePage.steps.enterTextInMaxInputField(12);
153
+ numberLinePage.steps.verifyTextInMaxInputField(12);
154
+ numberLinePage.steps.verifyLabelOnNumberLineNumberLineSection([{ value: 12, index: 24 }]);
155
+ numberLinePage.steps.verifyLabelOnNumberLineSpecifyCorrectAnswerSection([{ value: 12, index: 24 }]);
156
+ });
157
+
158
+ //Note- Can't check ticks are not annotated so adding it to manual sheet
159
+ it('When user updates value in Interval input field then interval of labels and ticks should be updated in number line section and specify correct answer section', () => {
160
+ numberLinePage.steps.enterTextInIntervalInputField(2);
161
+ numberLinePage.steps.verifyTextInIntervalInputField(2);
162
+ numberLinePage.steps.verifyLabelsVisibleOnNumberLineNumberLineSection(-12, 2);
163
+ numberLinePage.steps.verifyLabelsVisibleOnNumberLineSpecifyCorrectAnswerSection(-12, 2);
164
+ });
165
+
166
+ //Note- Can't check ticks are not annotated so adding it to manual sheet
167
+ it('When user updates value in Annotate every input field then labels should be annotated appropriately and ticks should not get annotated for the number line in the number line section and the specify correct answer section.', () => {
168
+ cy.log('Changing interval input fields value to its default value');
169
+ numberLinePage.steps.enterTextInIntervalInputField(1);
170
+ numberLinePage.steps.enterTextInAnnotateEveryInputField(2);
171
+ numberLinePage.steps.verifyTextInAnnotateEveryInputField(2);
172
+ numberLinePage.steps.verifyAnnotatedLabelsOnNumberLineNumberLineSection(-12, 2);
173
+ numberLinePage.steps.verifyAnnotatedLabelsOnNumberLineSpecifyCorrectAnswerSection(-12, 2);
174
+ });
175
+
176
+ it(`When ${displayNumbersOptions[0]} is selected then labels should be displayed below number line in the number line section and the specify correct answer section.`, () => {
177
+ numberLinePage.steps.verifyDisplayNumbersToggleButtonSelected(displayNumbersOptions[0]);
178
+ numberLinePage.steps.verifyDisplayNumbersOrientationNumberLineSection('Horizontal', 'Below');
179
+ numberLinePage.steps.verifyDisplayNumbersOrientationSpecifyCorrectAnswerSection('Horizontal', 'Below');
180
+ });
181
+
182
+ it(`When user selects ${displayNumbersOptions[1]} then labels should labels should be displayed above number line in the number line section and the specify correct answer section.`, () => {
183
+ numberLinePage.steps.selectDisplayNumbersToggleButton(displayNumbersOptions[1]);
184
+ numberLinePage.steps.verifyDisplayNumbersOrientationNumberLineSection('Horizontal', 'Above');
185
+ numberLinePage.steps.verifyDisplayNumbersOrientationSpecifyCorrectAnswerSection('Horizontal', 'Above');
186
+ });
187
+ });
188
+
189
+ describe('Number line section - Preview tab', () => {
190
+ abortEarlySetup();
191
+ before(() => {
192
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
193
+ cy.barsPreLoaderWait();
194
+ });
195
+
196
+ it('When the user edits the number line title and clicks on \'Cancel\' button then the changes should not be displayed in the preview tab', () => {
197
+ numberLinePage.steps.clickOnNumberLineTitle();
198
+ numberLinePage.steps.enterTextInTitlePopupAddLabelInputField('Linear number scale');
199
+ numberLinePage.steps.clickOnTitlePopupCancelButton();
200
+ numberLinePage.steps.switchToPreviewTab();
201
+ utilities.verifyInnerText(numberLinePage.numberLineTitlePreviewTab(), 'Number line title');
202
+ });
203
+
204
+ it('When the user clicks on \'Save\' after updating the input field the updated label should be displayed in the preview tab', () => {
205
+ numberLinePage.steps.switchToEditTab();
206
+ numberLinePage.steps.clickOnNumberLineTitle();
207
+ numberLinePage.steps.enterTextInTitlePopupAddLabelInputField('Linear number scale');
208
+ numberLinePage.steps.clickOnTitlePopupSaveButton();
209
+ numberLinePage.steps.switchToPreviewTab();
210
+ utilities.verifyInnerText(numberLinePage.numberLineTitlePreviewTab(), 'Linear number scale');
211
+ });
212
+
213
+ it('When user updates value in Min input field then it should be updated in preview tab', () => {
214
+ numberLinePage.steps.switchToEditTab();
215
+ numberLinePage.steps.enterTextInMinInputField(-12);
216
+ numberLinePage.steps.verifyTextInMinInputField(-12);
217
+ numberLinePage.steps.switchToPreviewTab();
218
+ numberLinePage.steps.verifyLabelOnNumberLinePreviewTab([{ value: -12, index: 0 }]);
219
+ });
220
+
221
+ it('When user updates value in Max input field then it should be updated in preview tab', () => {
222
+ numberLinePage.steps.switchToEditTab();
223
+ numberLinePage.steps.enterTextInMaxInputField(12);
224
+ numberLinePage.steps.verifyTextInMaxInputField(12);
225
+ numberLinePage.steps.switchToPreviewTab();
226
+ numberLinePage.steps.verifyLabelOnNumberLinePreviewTab([{ value: 12, index: 24 }]);
227
+ });
228
+
229
+ //Note- Can't check ticks are not annotated so adding it to manual sheet
230
+ it('When user updates value in Interval input field then interval of labels and ticks should be updated in preview tab', () => {
231
+ numberLinePage.steps.switchToEditTab();
232
+ numberLinePage.steps.enterTextInIntervalInputField(2);
233
+ numberLinePage.steps.verifyTextInIntervalInputField(2);
234
+ numberLinePage.steps.switchToPreviewTab();
235
+ numberLinePage.steps.verifyLabelsVisibleOnNumberLinePreviewTab(-12, 2);
236
+ });
237
+
238
+ //Note- Can't check ticks are not annotated so adding it to manual sheet
239
+ it('When user updates value in Annotate every input field then labels should be annotated appropriately for the number line and ticks should not get annotated in the preview tab.', () => {
240
+ numberLinePage.steps.switchToEditTab();
241
+ cy.log('Changing interval input fields value to its default value');
242
+ numberLinePage.steps.enterTextInIntervalInputField(1);
243
+ numberLinePage.steps.enterTextInAnnotateEveryInputField(2);
244
+ numberLinePage.steps.verifyTextInAnnotateEveryInputField(2);
245
+ numberLinePage.steps.switchToPreviewTab();
246
+ numberLinePage.steps.verifyAnnotatedLabelsOnNumberLinePreviewTab(-12, 2);
247
+ });
248
+
249
+ it(`When ${displayNumbersOptions[0]} is selected then labels should be displayed below number line in the preview tab.`, () => {
250
+ numberLinePage.steps.switchToEditTab();
251
+ numberLinePage.steps.verifyDisplayNumbersToggleButtonSelected(displayNumbersOptions[0]);
252
+ numberLinePage.steps.switchToPreviewTab();
253
+ numberLinePage.steps.verifyDisplayNumbersOrientationPreviewTab('Horizontal', 'Below');
254
+ });
255
+
256
+ it(`When user selects ${displayNumbersOptions[1]} then labels should labels should be displayed above number line in the preview tab.`, () => {
257
+ numberLinePage.steps.switchToEditTab();
258
+ numberLinePage.steps.selectDisplayNumbersToggleButton(displayNumbersOptions[1]);
259
+ numberLinePage.steps.switchToPreviewTab();
260
+ numberLinePage.steps.verifyDisplayNumbersOrientationPreviewTab('Horizontal', 'Above');
261
+ });
262
+ });
263
+ });
@@ -38,7 +38,7 @@ describe('Create item page: Number line - Preview contents in all views', () =>
38
38
  numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("horizontal", range, -4);
39
39
  numberLinePage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-4, -3]);
40
40
  numberLinePage.steps.verifyLineSegmentOnNumberLineSpecifyCorrectAnswer(range, [{ x1: -4, x2: -3 }]);
41
- numberLinePage.steps.enterValueInLimitNumberOfResponsesInputField(10);
41
+ numberLinePage.steps.enterTextInLimitNumberOfResponsesInputField(10);
42
42
  numberLinePage.steps.switchToPreviewTab();
43
43
  break;
44
44
  case 'Item view':
@@ -121,7 +121,7 @@ describe('Create Item page - Number line : Student view settings', () => {
121
121
  it('When the user selects \'No limit\' option from the dropdown then user should be able to check answer multiple times', () => {
122
122
  numberLinePage.steps.switchToEditTab();
123
123
  numberLinePage.steps.expandMaxCheckAnswerAttemptsDropdown();
124
- numberLinePage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('no limit');
124
+ numberLinePage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('0');
125
125
  numberLinePage.steps.switchToPreviewTab();
126
126
  numberLinePage.steps.verifyCheckAnswerButtonEnabled();
127
127
  numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 1);
@@ -19,6 +19,7 @@ describe('Create Item page: Tool settings', () => {
19
19
  numberLinePage.tests.verifyToolSettingsContent();
20
20
  });
21
21
 
22
+ //Failing due to https://redmine.zeuslearning.com/issues/568938
22
23
  describe('Tool settings: Edit tool settings', () => {
23
24
  abortEarlySetup();
24
25
  before(() => {
@@ -40,7 +41,7 @@ describe('Create Item page: Tool settings', () => {
40
41
  rulerPage.steps.selectOptionFromRotationDropdown('Allow rotation and display angle');
41
42
  rulerPage.steps.enterInputToOpacityInputField(60);
42
43
  rulerPage.steps.checkAddShowHideButtonCheckbox();
43
- dialogBoxBase.steps.clickOnAcceptButtonInDialogBox();
44
+ toolSettingsComponent.steps.clickOnOkButton();
44
45
  utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'notExist');
45
46
  toolSettingsComponent.steps.verifyToolSelectedState(0);
46
47
  });
@@ -54,7 +54,7 @@ describe('Preview tab contents for all views', () => {
54
54
  }
55
55
  if (view === 'Student view') {
56
56
  studentViewPage.steps.submitResponse();
57
- utilities.verifyElementVisibilityState(studentViewPage.buttonGoToGradingView(), 'visible');
57
+ utilities.verifyElementVisibilityState(studentViewPage.buttonGoToGradingView(), 'exist');
58
58
  }
59
59
  });
60
60
 
@@ -195,7 +195,55 @@ describe('Create Item page - Reading ruler: Edit Tab', () => {
195
195
  readingRulerPage.steps.verifyColorPopupIsDisplayed();
196
196
  });
197
197
 
198
- readingRulerPage.tests.verifyColorPopupSelectColorTitle();
198
+ it('A title \'Select color\' should be displayed on the color popup', () => {
199
+ readingRulerPage.steps.verifyColorPopupSelectColorTitle();
200
+ });
201
+
202
+ it('A \'Selected color\' label and color block displaying the selected color should be displayed', () => {
203
+ readingRulerPage.steps.verifySelectedColorLabelAndSelectedColorBlock();
204
+ });
205
+
206
+ it('\'Cancel\' and \'Ok\' buttons should be displayed', () => {
207
+ utilities.verifyInnerText(readingRulerPage.cancelButton(), 'Cancel');
208
+ utilities.verifyElementVisibilityState(readingRulerPage.cancelButton(), 'visible');
209
+ utilities.verifyInnerText(readingRulerPage.okButton(), 'OK');
210
+ utilities.verifyElementVisibilityState(readingRulerPage.okButton(), 'visible');
211
+ });
212
+
213
+ it('CSS of color popup contents', { tags: 'css' }, () => {
214
+ const labels = [readingRulerPage.selectedColorLabel, readingRulerPage.hexLabel]
215
+ const inputFields = [readingRulerPage.hexInputField];
216
+ labels.forEach(label => {
217
+ utilities.verifyCSS(label(), {
218
+ 'color': css.color.labels,
219
+ 'font-size': css.fontSize.normal,
220
+ 'font-weight': css.fontWeight.semibold
221
+ });
222
+ });
223
+ inputFields.forEach(inputField => {
224
+ utilities.verifyCSS(inputField(), {
225
+ 'color': css.color.text,
226
+ 'font-size': css.fontSize.default,
227
+ 'font-weight': css.fontWeight.regular
228
+ });
229
+ });
230
+ utilities.verifyCSS(readingRulerPage.okButton(), {
231
+ 'color': css.color.primaryBtn,
232
+ 'font-size': css.fontSize.default,
233
+ 'font-weight': css.fontWeight.semibold,
234
+ 'background-color': css.color.primaryBtnBg
235
+ });
236
+ utilities.verifyCSS(readingRulerPage.cancelButton(), {
237
+ 'color': css.color.secondaryBtn,
238
+ 'font-size': css.fontSize.default,
239
+ 'font-weight': css.fontWeight.semibold,
240
+ 'background-color': css.color.transparent
241
+ });
242
+ });
243
+
244
+ it('Accessibility of color popup contents', { tags: 'a11y' }, () => {
245
+ cy.checkAccessibility(readingRulerPage.dialogBoxContent());
246
+ });
199
247
 
200
248
  readingRulerPage.tests.verifySaturationAndOpacityGradientPalette('rgb(255, 255, 255)');
201
249
 
@@ -318,7 +318,7 @@ describe('Create Item page - Short text response : Student view settings', () =>
318
318
  it('When the user selects \'No limit\' option from the dropdown then user should be able to check answer multiple times', () => {
319
319
  shortTextResponsePage.steps.switchToEditTab();
320
320
  shortTextResponsePage.steps.expandMaxCheckAnswerAttemptsDropdown();
321
- shortTextResponsePage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('no limit');
321
+ shortTextResponsePage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('0');
322
322
  shortTextResponsePage.steps.switchToPreviewTab();
323
323
  shortTextResponsePage.steps.verifyCheckAnswerButtonEnabled();
324
324
  shortTextResponsePage.steps.enterTextInAnswerInputFieldPreviewTab('Flower');
@@ -172,7 +172,7 @@ describe('Create item page - single selection grid: Student view settings', () =
172
172
  it('When the user selects \'No limit\' option from the dropdown then user should be able to check answer single times', () => {
173
173
  singleSelectionGridPage.steps.switchToEditTab();
174
174
  singleSelectionGridPage.steps.expandMaxCheckAnswerAttemptsDropdown();
175
- singleSelectionGridPage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('no limit');
175
+ singleSelectionGridPage.steps.selectMaxCheckAnswerAttemptsDropdownListOption('0');
176
176
  singleSelectionGridPage.steps.switchToPreviewTab();
177
177
  singleSelectionGridPage.steps.verifyCheckAnswerButtonEnabled();
178
178
  singleSelectionGridPage.steps.selectOptionsInPreviewTab({ row: 1, column: 0 });
@@ -353,10 +353,10 @@ describe('Create Item page - Text entry math: Response evaluation methods and cu
353
353
  } else {
354
354
  utilities.verifyElementVisibilityState(textEntryMathPage.customSettingsCheckboxContainer(customSettingsIds.ignoreUnitCoefficient), 'notExist');
355
355
  }
356
- if (evaluationMethod.customSettings.includes('Check for parenthesis grouping')) {
356
+ if (evaluationMethod.customSettings.includes('Check for parenthesis groups')) {
357
357
  utilities.verifyElementVisibilityState(textEntryMathPage.customSettingsCheckboxContainer(customSettingsIds.checkForParenthesisGrouping), 'visible');
358
358
  textEntryMathPage.steps.verifyCustomSettingsCheckboxIsUnchecked(customSettingsIds.checkForParenthesisGrouping);
359
- textEntryMathPage.steps.verifyCustomSettingsCheckboxLabel(customSettingsIds.checkForParenthesisGrouping, 'Check for parenthesis grouping');
359
+ textEntryMathPage.steps.verifyCustomSettingsCheckboxLabel(customSettingsIds.checkForParenthesisGrouping, 'Check for parenthesis groups');
360
360
  } else {
361
361
  utilities.verifyElementVisibilityState(textEntryMathPage.customSettingsCheckboxContainer(customSettingsIds.checkForParenthesisGrouping), 'notExist');
362
362
  }
@@ -10,7 +10,6 @@ describe('Create Item page - Text selection: Preview tab Scoring Section - All o
10
10
  describe('Question Preview: AutoScored - All or Nothing with alternate answer: When Alternate Answer points are more than Correct Answer points', () => {
11
11
  abortEarlySetup();
12
12
  before(() => {
13
- cy.log('Navigating to Text selection question type');
14
13
  textSelectionPage.steps.navigateToCreateQuestion('text selection');
15
14
  cy.barsPreLoaderWait();
16
15
  textSelectionPage.steps.setQuestionAndOptionsInEditTab();
@@ -10,7 +10,6 @@ describe('Create Item page - Text selection: Preview tab Scoring Section - All o
10
10
  describe('Question Preview: AutoScored - All or Nothing with alternate answer: When Correct Answer points are equal to Alternate Answer points', () => {
11
11
  abortEarlySetup();
12
12
  before(() => {
13
- cy.log('Navigating to Text selection question type');
14
13
  textSelectionPage.steps.navigateToCreateQuestion('text selection');
15
14
  cy.barsPreLoaderWait();
16
15
  textSelectionPage.steps.setQuestionAndOptionsInEditTab();
@@ -10,7 +10,6 @@ describe('Create Item page - Text selection: Preview tab Scoring Section - All o
10
10
  describe('Question Preview: AutoScored - All or Nothing with alternate answer: When Correct Answer points are more than Alternate Answer points', () => {
11
11
  abortEarlySetup();
12
12
  before(() => {
13
- cy.log('Navigating to Text selection question type');
14
13
  textSelectionPage.steps.navigateToCreateQuestion('text selection');
15
14
  cy.barsPreLoaderWait();
16
15
  textSelectionPage.steps.setQuestionAndOptionsInEditTab();
@@ -16,7 +16,6 @@ describe('Create Item page - Text selection - Basic scoring for all text selecti
16
16
  describe('Question Preview: Custom text selection type with All or nothing scoring', () => {
17
17
  abortEarlySetup();
18
18
  before(() => {
19
- cy.log('Navigate to question, add input to stems and options, set correct answer and allot points and switch to preview tab');
20
19
  textSelectionPage.steps.navigateToCreateQuestion('text selection');
21
20
  cy.barsPreLoaderWait();
22
21
  textSelectionPage.steps.addQuestionInstructions();