itemengine-cypress-automation 1.0.381-regressionFixes10June-8dc1710.0 → 1.0.382-FixesPR3-b746986.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 (25) hide show
  1. package/cypress/e2e/ILC/ListOrderingDropdown/editTabBasicSection.js +2 -0
  2. package/cypress/e2e/ILC/Matching/studentViewSettings.js +1 -1
  3. package/cypress/e2e/ILC/MatchingDropdown/Scoring/blankResponseScoring.js +1 -0
  4. package/cypress/e2e/ILC/MatchingDropdown/Scoring/partialDifferentWeightsScoringBasic.js +6 -6
  5. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +213 -0
  6. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +249 -0
  7. package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +266 -0
  8. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/allOrNothingForAllViews.smoke.js +268 -0
  9. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/allOrNothingCorrectPointsGreaterThanAlternatePoints.js +5 -5
  10. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +3 -3
  11. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialDifferentWeightsScoringBasic.js +1 -1
  12. package/cypress/e2e/ILC/TextEntryMath/MathTemplateScoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +2 -2
  13. package/cypress/e2e/ILC/TextEntryMath/Scoring/blankResponseScoring.js +2 -2
  14. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViews.smoke.js +263 -0
  15. package/cypress/e2e/ILC/TextEntryMath/allOrNothingBasicForAllViewsFormulaTemplate.smoke.js +217 -0
  16. package/cypress/e2e/ILC/TextEntryMath/equationEditor.smoke.js +1 -1
  17. package/cypress/e2e/ILC/TextEntryMath/evaluationMethodEquivalentStructures.smoke.js +3 -3
  18. package/cypress/e2e/ILC/TextEntryMathWithImage/allOrNothingScoringForAllViews.smoke.js +263 -0
  19. package/cypress/e2e/ILC/TextEntryMathWithImage/backgroundImageAndCanvasProperties.js +0 -1
  20. package/cypress/e2e/ILC/TextEntryMathWithImage/styleAndLayoutCustomization.js +1 -1
  21. package/cypress/e2e/ILC/TextSelection/textSelectionModesInSpecifyPossibleOptionsSection.js +1 -0
  22. package/cypress/pages/components/equationEditorSectionCommonComponent.js +4 -4
  23. package/cypress/pages/listOrderingPage.js +6 -1
  24. package/cypress/pages/textEntryMathPage.js +3 -7
  25. package/package.json +1 -1
@@ -85,6 +85,8 @@ describe('Create Item page - List ordering: Dropdown menu ordering layout: Edit
85
85
  before(() => {
86
86
  cy.log('Navigating to list ordering question type');
87
87
  listOrderingPage.steps.navigateToCreateQuestion('list ordering');
88
+ listOrderingPage.steps.addTextInQuestionInstructionsInputField('Arrange the following options in the correct order');
89
+ cy.barsPreLoaderWait();
88
90
  listOrderingPage.steps.selectOrderingLayoutOption('Dropdown menu');
89
91
  listOrderingPage.steps.addInputToOptionsInputField(options);
90
92
  });
@@ -451,7 +451,7 @@ describe('Create Item page - Matching : Student view settings', () => {
451
451
  matchingPage.steps.expandMaxCapacityPerDropzoneDropdown();
452
452
  matchingPage.steps.selectOptionFromMaxCapacityPerDropzoneDropdown('No limit');
453
453
  matchingPage.steps.switchToPreviewTab();
454
- utilities.verifyInnerText(matchingPage.maxLimitInEachDropzoneHelpText(), 'Maximum answers in each dropzone:');
454
+ utilities.verifyInnerText(matchingPage.maxLimitInEachDropzoneHelpText(), 'Maximum answers in each dropzone:\nNo limit');
455
455
  });
456
456
  });
457
457
  });
@@ -9,6 +9,7 @@ describe('Create item page - Matching-Dropdown: Scoring for blank responses', ()
9
9
  cy.loginAs('admin');
10
10
  });
11
11
 
12
+ //Failing due to https://weldnorthed.atlassian.net/browse/IEI-6160
12
13
  describe(`Auto scored - All or nothing scoring`, () => {
13
14
  abortEarlySetup();
14
15
  before(() => {
@@ -300,19 +300,19 @@ describe('Create item page - Matching: Partial different weights', () => {
300
300
  matchingPage.steps.allotTotalPenaltyPoints(4);
301
301
  matchingPage.steps.switchToPreviewTab();
302
302
  matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[4] }]);
303
- matchingPage.steps.verifyPreviewScore(-2.01, 20);
303
+ matchingPage.steps.verifyPreviewScore(-4, 20);
304
304
  });
305
305
 
306
306
  it('When the user attempts the question correctly along with an incorrect option, then penalty points should get deducted from the awarded points', () => {
307
307
  matchingPage.steps.resetQuestionPreview();
308
308
  matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[1] }, { dropdownIndex: 1, dropdownOption: optionsArray[2] }, { dropdownIndex: 2, dropdownOption: optionsArray[4] }]);
309
- matchingPage.steps.verifyPreviewScore(14.33, 20);
309
+ matchingPage.steps.verifyPreviewScore(13.6667, 20);
310
310
  });
311
311
 
312
312
  it('When the user attempts the question correctly along with multiple incorrect options, then penalty points for each incorrect dropdown should get deducted from the awarded points', () => {
313
313
  matchingPage.steps.resetQuestionPreview();
314
314
  matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[1] }, { dropdownIndex: 1, dropdownOption: optionsArray[3] }, { dropdownIndex: 2, dropdownOption: optionsArray[4] }]);
315
- matchingPage.steps.verifyPreviewScore(7.66, 20);
315
+ matchingPage.steps.verifyPreviewScore(6.3333, 20);
316
316
  });
317
317
 
318
318
  it('When the user has defined penalty points and also sets minimum scoring to \'Award minimum score only if attempted\' and allots minimum points, then on attempting the question incorrectly, minimum points should be awarded', () => {
@@ -369,19 +369,19 @@ describe('Create item page - Matching: Partial different weights', () => {
369
369
  matchingPage.steps.checkAutomaticallySetPenaltyPointsCheckbox();
370
370
  matchingPage.steps.switchToPreviewTab();
371
371
  matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[4] }]);
372
- matchingPage.steps.verifyPreviewScore(-9.99, 20);
372
+ matchingPage.steps.verifyPreviewScore(-9.9999, 20);
373
373
  });
374
374
 
375
375
  it('When the user attempts the question correctly along with an incorrect option, then penalty points should get deducted from the awarded points', () => {
376
376
  matchingPage.steps.resetQuestionPreview();
377
377
  matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[4] }, { dropdownIndex: 1, dropdownOption: optionsArray[2] }, { dropdownIndex: 2, dropdownOption: optionsArray[0] }]);
378
- matchingPage.steps.verifyPreviewScore(7.67, 20);
378
+ matchingPage.steps.verifyPreviewScore(7.6667, 20);
379
379
  });
380
380
 
381
381
  it('When the user attempts the question correctly along with multiple incorrect options, then penalty points for each incorrect option should get deducted from the awarded points', () => {
382
382
  matchingPage.steps.resetQuestionPreview();
383
383
  matchingPage.steps.selectResponseFromDropdownInPreviewTab([{ dropdownIndex: 0, dropdownOption: optionsArray[3] }, { dropdownIndex: 1, dropdownOption: optionsArray[2] }, { dropdownIndex: 2, dropdownOption: optionsArray[4] }]);
384
- matchingPage.steps.verifyPreviewScore(-0.66, 20);
384
+ matchingPage.steps.verifyPreviewScore(-0.6667, 20);
385
385
  });
386
386
 
387
387
  it('When the user has defined penalty points and also sets minimum scoring to \'Award minimum score only if attempted\' and allots minimum points, then on attempting the question incorrectly, minimum points should be awarded', () => {
@@ -693,6 +693,219 @@ describe('Create Item page - Number line: All or nothing ', () => {
693
693
  });
694
694
  });
695
695
 
696
+ views.forEach((view) => {
697
+ describe(`Number line: Manually scored - ${view}`, { tags: 'smoke' }, () => {
698
+ abortEarlySetup();
699
+ before(() => {
700
+ switch (view) {
701
+ case 'Question preview':
702
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
703
+ cy.barsPreLoaderWait();
704
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
705
+ numberLinePage.steps.expandScoringTypeDropdown();
706
+ numberLinePage.steps.selectOptionFromScoringTypeDropdown('Manually scored');
707
+ numberLinePage.steps.allotPoints(20);
708
+ numberLinePage.steps.switchToPreviewTab();
709
+ break;
710
+ case 'Item preview':
711
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
712
+ itemPreviewPage.steps.switchToPreviewTab();
713
+ break;
714
+ case 'Grading view':
715
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
716
+ break;
717
+ }
718
+ });
719
+
720
+ beforeEach(() => {
721
+ switch (view) {
722
+ case 'Question preview':
723
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
724
+ numberLinePage.steps.resetQuestionPreview();
725
+ break;
726
+ case 'Item preview':
727
+ itemPreviewPage.steps.switchToStudentView();
728
+ itemPreviewPage.steps.resetQuestionPreview();
729
+ break;
730
+ case 'Grading view':
731
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
732
+ break;
733
+ }
734
+ });
735
+
736
+ if (view === 'Question preview') {
737
+ after(() => {
738
+ numberLinePage.steps.clickOnSaveQuestionButton();
739
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
740
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
741
+ });
742
+ }
743
+
744
+ it('Question instructions should be visible', () => {
745
+ numberLinePage.steps.verifyQuestionInstructionsTextPreviewTab('Plot points on the number line');
746
+ numberLinePage.steps.verifyVisibityOfQuestionInstructionsText();
747
+ });
748
+
749
+ it('User should be able to attempt the question in student view and correct/incorrect icons, Your answer is correct/incorrect label, and correct answer section should not be displayed in grading view', () => {
750
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
751
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 2);
752
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right open segment');
753
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, -4);
754
+ if (view === 'Grading view') {
755
+ studentViewPage.steps.submitResponse();
756
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
757
+ studentViewPage.steps.clickOnGoToGradingViewButton();
758
+ gradingViewPage.steps.verifyGradingViewScore('', 20);
759
+ }
760
+ if (view === 'Question preview' || view === 'Item preview') {
761
+ numberLinePage.steps.checkManuallyScoredScoringLabel();
762
+ }
763
+ numberLinePage.steps.verifyCorrectIncorrectIconsNotExist();
764
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
765
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
766
+ });
767
+ });
768
+ });
769
+
770
+ views.forEach((view) => {
771
+ describe(`Number line: Non scored - ${view}`, { tags: 'smoke' }, () => {
772
+ abortEarlySetup();
773
+ before(() => {
774
+ switch (view) {
775
+ case 'Question preview':
776
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
777
+ cy.barsPreLoaderWait();
778
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
779
+ numberLinePage.steps.expandScoringTypeDropdown();
780
+ numberLinePage.steps.selectOptionFromScoringTypeDropdown('Non scored');
781
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
782
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("horizontal", range, 2);
783
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Right open segment');
784
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("horizontal", range, -4);
785
+ numberLinePage.steps.switchToPreviewTab();
786
+ break;
787
+ case 'Item preview':
788
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
789
+ itemPreviewPage.steps.switchToPreviewTab();
790
+ break;
791
+ case 'Grading view':
792
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
793
+ break;
794
+ }
795
+ });
796
+
797
+ beforeEach(() => {
798
+ switch (view) {
799
+ case 'Question preview':
800
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
801
+ numberLinePage.steps.resetQuestionPreview();
802
+ break;
803
+ case 'Item preview':
804
+ itemPreviewPage.steps.switchToStudentView();
805
+ itemPreviewPage.steps.resetQuestionPreview();
806
+ break;
807
+ case 'Grading view':
808
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
809
+ break;
810
+ }
811
+ });
812
+
813
+ if (view === 'Question preview') {
814
+ after(() => {
815
+ numberLinePage.steps.clickOnSaveQuestionButton();
816
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
817
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
818
+ });
819
+ }
820
+
821
+ it('When the user selects "Grading" view without attempting the question, non scoring label should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label "Correct answers" should be displayed with correct answers and correct/incorrect icons should not be displayed', () => {
822
+ if (view === 'Grading view') {
823
+ studentViewPage.steps.submitResponse();
824
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
825
+ studentViewPage.steps.clickOnGoToGradingViewButton();
826
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
827
+ }
828
+ if (view === 'Question preview' || view === 'Item preview') {
829
+ numberLinePage.steps.checkNonScoredScoringLabel();
830
+ numberLinePage.steps.switchToGradingView();
831
+ }
832
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
833
+ numberLinePage.steps.verifyCorrectIncorrectIconsNotExist();
834
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection(range, [2]);
835
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection(range, [{ x1: -5, x2: -4 }]);
836
+ });
837
+
838
+ it('When the user attempts the question incorrectly, non scoring label should be displayed, incorrect icon should be displayed beside incorrect response, a status message with text "Your answer is incorrect" and correct answer section with correct answer should be displayed', () => {
839
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment');
840
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 8);
841
+ if (view === 'Grading view') {
842
+ studentViewPage.steps.submitResponse();
843
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
844
+ studentViewPage.steps.clickOnGoToGradingViewButton();
845
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
846
+ }
847
+ if (view === 'Question preview' || view === 'Item preview') {
848
+ numberLinePage.steps.checkNonScoredScoringLabel();
849
+ numberLinePage.steps.switchToGradingView();
850
+ }
851
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab(range, [8]);
852
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
853
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection(range, [2]);
854
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection(range, [{ x1: -5, x2: -4 }]);
855
+ });
856
+
857
+ it('When the user attempts the question partially correct, non scoring label should be displayed, correct icon should be displayed beside the correct response, incorrect icon should be displayed beside incorrect response, a status message with text "Your answer is incorrect" and correct answer section with all correct answers should be displayed', () => {
858
+ if (view === 'Grading view') {
859
+ studentViewPage.steps.clearResponses();
860
+ }
861
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
862
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 2);
863
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment');
864
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 8);
865
+ if (view === 'Grading view') {
866
+ studentViewPage.steps.submitResponse();
867
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
868
+ studentViewPage.steps.clickOnGoToGradingViewButton();
869
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
870
+ }
871
+ if (view === 'Question preview' || view === 'Item preview') {
872
+ numberLinePage.steps.checkNonScoredScoringLabel();
873
+ numberLinePage.steps.switchToGradingView();
874
+ }
875
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab(range, [2]);
876
+ numberLinePage.steps.verifyIncorrectPointsOnNumberLinePreviewTab(range, [8]);
877
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
878
+ numberLinePage.steps.verifyCorrectPointsOnNumberLineCorrectAnswerSection(range, [2]);
879
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLineCorrectAnswerSection(range, [{ x1: -5, x2: -4 }]);
880
+ });
881
+
882
+ it('When user attempts the question correctly, non scoring label should be displayed, correct icons should be displayed beside the correct response, a status message with text "Your answer is correct" should be displayed and correct answer section should not be displayed', () => {
883
+ if (view === 'Grading view') {
884
+ studentViewPage.steps.clearResponses();
885
+ }
886
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
887
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, 2);
888
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right open segment');
889
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("horizontal", range, -4);
890
+ if (view === 'Grading view') {
891
+ studentViewPage.steps.submitResponse();
892
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
893
+ studentViewPage.steps.clickOnGoToGradingViewButton();
894
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
895
+ }
896
+ if (view === 'Question preview' || view === 'Item preview') {
897
+ numberLinePage.steps.checkNonScoredScoringLabel();
898
+ numberLinePage.steps.switchToGradingView();
899
+ }
900
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab(range, [2]);
901
+ numberLinePage.steps.verifyCorrectPointsOnNumberLinePreviewTab(range, [-4, -5]);
902
+ numberLinePage.steps.verifyCorrectLineSegmentOnNumberLinePreviewTab(range, [{ x1: -5, x2: -4 }]);
903
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('correct');
904
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
905
+ });
906
+ });
907
+ });
908
+
696
909
  if (!grepTags || !grepTags.includes('smoke')) {
697
910
  describe('Question preview: Auto scored - All or nothing: Minimum scoring', () => {
698
911
  abortEarlySetup();
@@ -696,4 +696,253 @@ describe('Create Item page - Number line: All or nothing ', () => {
696
696
  numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
697
697
  });
698
698
  });
699
+
700
+ views.forEach((view) => {
701
+ describe(`Number line Vertical: Manually scored - ${view}`, { tags: 'smoke' }, () => {
702
+ abortEarlySetup();
703
+ before(() => {
704
+ switch (view) {
705
+ case 'Question preview':
706
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
707
+ cy.barsPreLoaderWait();
708
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
709
+ numberLinePage.steps.selectOrientationToggleButton('Upright');
710
+ numberLinePage.steps.expandScoringTypeDropdown();
711
+ numberLinePage.steps.selectOptionFromScoringTypeDropdown('Manually scored');
712
+ numberLinePage.steps.allotPoints(20);
713
+ numberLinePage.steps.switchToPreviewTab();
714
+ break;
715
+ case 'Item preview':
716
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
717
+ itemPreviewPage.steps.switchToPreviewTab();
718
+ break;
719
+ case 'Grading view':
720
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
721
+ break;
722
+ }
723
+ });
724
+
725
+ beforeEach(() => {
726
+ switch (view) {
727
+ case 'Question preview':
728
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
729
+ numberLinePage.steps.resetQuestionPreview();
730
+ break;
731
+ case 'Item preview':
732
+ itemPreviewPage.steps.switchToStudentView();
733
+ itemPreviewPage.steps.resetQuestionPreview();
734
+ break;
735
+ case 'Grading view':
736
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
737
+ break;
738
+ }
739
+ });
740
+
741
+ if (view === 'Question preview') {
742
+ after(() => {
743
+ numberLinePage.steps.clickOnSaveQuestionButton();
744
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
745
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
746
+ });
747
+ }
748
+
749
+ it('Question instructions should be visible', () => {
750
+ numberLinePage.steps.verifyQuestionInstructionsTextPreviewTab('Plot points on the number line');
751
+ numberLinePage.steps.verifyVisibityOfQuestionInstructionsText();
752
+ });
753
+
754
+ it('User should be able to attempt the question in student view and correct/incorrect icons, Your answer is correct/incorrect label, and correct answer section should not be displayed in grading view', () => {
755
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
756
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("vertical", range, 2);
757
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right open segment');
758
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("vertical", range, -4);
759
+ if (view === 'Grading view') {
760
+ studentViewPage.steps.submitResponse();
761
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
762
+ studentViewPage.steps.clickOnGoToGradingViewButton();
763
+ gradingViewPage.steps.verifyGradingViewScore('', 20);
764
+ }
765
+ if (view === 'Question preview' || view === 'Item preview') {
766
+ numberLinePage.steps.checkManuallyScoredScoringLabel();
767
+ }
768
+ numberLinePage.steps.verifyCorrectIncorrectIconsNotExist();
769
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
770
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
771
+ });
772
+ });
773
+ });
774
+
775
+ views.forEach((view) => {
776
+ describe(`Number line Vertical: Non scored - ${view}`, { tags: 'smoke' }, () => {
777
+ abortEarlySetup();
778
+ before(() => {
779
+ switch (view) {
780
+ case 'Question preview':
781
+ numberLinePage.steps.navigateToCreateQuestion('Number line');
782
+ cy.barsPreLoaderWait();
783
+ numberLinePage.steps.addTextInQuestionInstructionsInputField('Plot points on the number line');
784
+ numberLinePage.steps.selectOrientationToggleButton('Upright');
785
+ numberLinePage.steps.expandScoringTypeDropdown();
786
+ numberLinePage.steps.selectOptionFromScoringTypeDropdown('Non scored');
787
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Point');
788
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("vertical", range, 2);
789
+ numberLinePage.steps.verifyPointsPlottedOnVerticalNumberLineSpecifyCorrectAnswer(range, [2]);
790
+ numberLinePage.steps.selectNumberLineToolOptionSpecifyCorrectAnswer('Right open segment');
791
+ numberLinePage.steps.plotPointOnNumberLineSpecifyCorrectAnswer("vertical", range, -4);
792
+ numberLinePage.steps.verifyPointsPlottedOnVerticalNumberLineSpecifyCorrectAnswer(range, [-4, -5]);
793
+ numberLinePage.steps.verifyLineSegmentOnVerticalNumberLineSpecifyCorrectAnswer(range, [{ y1: -5, y2: -4 }]);
794
+ numberLinePage.steps.switchToPreviewTab();
795
+ break;
796
+ case 'Item preview':
797
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
798
+ itemPreviewPage.steps.switchToPreviewTab();
799
+ break;
800
+ case 'Grading view':
801
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
802
+ break;
803
+ }
804
+ });
805
+
806
+ beforeEach(() => {
807
+ switch (view) {
808
+ case 'Question preview':
809
+ numberLinePage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
810
+ numberLinePage.steps.resetQuestionPreview();
811
+ break;
812
+ case 'Item preview':
813
+ itemPreviewPage.steps.switchToStudentView();
814
+ itemPreviewPage.steps.resetQuestionPreview();
815
+ break;
816
+ case 'Grading view':
817
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
818
+ break;
819
+ }
820
+ });
821
+
822
+ if (view === 'Question preview') {
823
+ after(() => {
824
+ numberLinePage.steps.clickOnSaveQuestionButton();
825
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
826
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
827
+ });
828
+ }
829
+
830
+ it('When the user selects "Grading" view without attempting the question, non scoring label should be displayed, correct/incorrect status message should not be displayed, correct answers section with a label "Correct answers" should be displayed with correct answers and correct/incorrect icons should not be displayed', () => {
831
+ if (view === 'Grading view') {
832
+ studentViewPage.steps.submitResponse();
833
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
834
+ studentViewPage.steps.clickOnGoToGradingViewButton();
835
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
836
+ }
837
+ if (view === 'Question preview' || view === 'Item preview') {
838
+ numberLinePage.steps.checkNonScoredScoringLabel();
839
+ numberLinePage.steps.switchToGradingView();
840
+ }
841
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
842
+ numberLinePage.steps.verifyCorrectIncorrectIconsNotExist();
843
+ numberLinePage.steps.verifyCorrectAnswerSectionExist();
844
+ });
845
+
846
+ it('When the user attempts the question incorrectly, non scoring label should be displayed, incorrect icon should be displayed beside incorrect response, a status message with text "Your answer is incorrect" and correct answer section with correct answer should be displayed', () => {
847
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Segment');
848
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("vertical", range, 8);
849
+ numberLinePage.steps.verifyPointsPlottedOnVerticalNumberLinePreviewTab(range, [8, 7]);
850
+ numberLinePage.steps.verifyLineSegmentOnVerticalNumberLinePreviewTab(range, [{ y1: 7, y2: 8 }]);
851
+ if (view === 'Grading view') {
852
+ studentViewPage.steps.submitResponse();
853
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
854
+ studentViewPage.steps.clickOnGoToGradingViewButton();
855
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
856
+ }
857
+ if (view === 'Question preview' || view === 'Item preview') {
858
+ numberLinePage.steps.checkNonScoredScoringLabel();
859
+ numberLinePage.steps.switchToGradingView();
860
+ }
861
+ numberLinePage.steps.verifyIncorrectPointsOnVerticalNumberLinePreviewTab(range, [8, 7]);
862
+ numberLinePage.steps.verifyIncorrectLineSegmentOnVerticalNumberLinePreviewTab(range, [{ y1: 7, y2: 8 }]);
863
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
864
+ numberLinePage.steps.verifyCorrectAnswerSectionExist();
865
+ });
866
+
867
+ it('When the user attempts the question partially correct, non scoring label should be displayed, correct icon should be displayed beside the correct response, incorrect icon should be displayed beside incorrect response, a status message with text "Your answer is incorrect" and correct answer section with all correct answers should be displayed', () => {
868
+ if (view === 'Grading view') {
869
+ studentViewPage.steps.clearResponses();
870
+ }
871
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
872
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("vertical", range, 2);
873
+ numberLinePage.steps.verifyPointsPlottedOnVerticalNumberLinePreviewTab(range, [2]);
874
+ if (view === 'Grading view') {
875
+ studentViewPage.steps.submitResponse();
876
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
877
+ studentViewPage.steps.clickOnGoToGradingViewButton();
878
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
879
+ }
880
+ if (view === 'Question preview' || view === 'Item preview') {
881
+ numberLinePage.steps.checkNonScoredScoringLabel();
882
+ numberLinePage.steps.switchToGradingView();
883
+ }
884
+ numberLinePage.steps.verifyCorrectPointsOnVerticalNumberLinePreviewTab(range, [2]);
885
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
886
+ numberLinePage.steps.verifyCorrectAnswerSectionExist();
887
+ });
888
+
889
+ it('When the user attempts the question partially correct with an incorrect response, non scoring label should be displayed, correct icon should be displayed beside the correct response, incorrect icon should be displayed beside incorrect response, a status message with text "Your answer is incorrect" and correct answer section with all correct answers should be displayed', () => {
890
+ if (view === 'Grading view') {
891
+ studentViewPage.steps.clearResponses();
892
+ }
893
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right open segment');
894
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("vertical", range, -4);
895
+ numberLinePage.steps.verifyPointsPlottedOnVerticalNumberLinePreviewTab(range, [-4, -5]);
896
+ numberLinePage.steps.verifyLineSegmentOnVerticalNumberLinePreviewTab(range, [{ y1: -5, y2: -4 }]);
897
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Left open segment');
898
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("vertical", range, 6);
899
+ numberLinePage.steps.verifyPointsPlottedOnVerticalNumberLinePreviewTab(range, [6, 5]);
900
+ numberLinePage.steps.verifyLineSegmentOnVerticalNumberLinePreviewTab(range, [{ y1: 5, y2: 6 }]);
901
+ if (view === 'Grading view') {
902
+ studentViewPage.steps.submitResponse();
903
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
904
+ studentViewPage.steps.clickOnGoToGradingViewButton();
905
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
906
+ }
907
+ if (view === 'Question preview' || view === 'Item preview') {
908
+ numberLinePage.steps.checkNonScoredScoringLabel();
909
+ numberLinePage.steps.switchToGradingView();
910
+ }
911
+ numberLinePage.steps.verifyCorrectPointsOnVerticalNumberLinePreviewTab(range, [-4, -5]);
912
+ numberLinePage.steps.verifyCorrectLineSegmentOnVerticalNumberLinePreviewTab(range, [{ y1: -5, y2: -4 }]);
913
+ numberLinePage.steps.verifyIncorrectPointsOnVerticalNumberLinePreviewTab(range, [6, 5]);
914
+ numberLinePage.steps.verifyIncorrectLineSegmentOnVerticalNumberLinePreviewTab(range, [{ y1: 5, y2: 6 }]);
915
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
916
+ numberLinePage.steps.verifyCorrectAnswerSectionExist();
917
+ });
918
+
919
+ it('When the user attempts the question correctly, non scoring label should be displayed, correct icons should be displayed beside the correct response, a status message with text "Your answer is correct" should be displayed and correct answer section should not be displayed', () => {
920
+ if (view === 'Grading view') {
921
+ studentViewPage.steps.clearResponses();
922
+ }
923
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Point');
924
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("vertical", range, 2);
925
+ numberLinePage.steps.verifyPointsPlottedOnVerticalNumberLinePreviewTab(range, [2]);
926
+ numberLinePage.steps.selectNumberLineToolOptionPreviewTab('Right open segment');
927
+ numberLinePage.steps.plotPointOnNumberLinePreviewTab("vertical", range, -4);
928
+ numberLinePage.steps.verifyPointsPlottedOnVerticalNumberLinePreviewTab(range, [-4, -5]);
929
+ numberLinePage.steps.verifyLineSegmentOnVerticalNumberLinePreviewTab(range, [{ y1: -5, y2: -4 }]);
930
+ if (view === 'Grading view') {
931
+ studentViewPage.steps.submitResponse();
932
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
933
+ studentViewPage.steps.clickOnGoToGradingViewButton();
934
+ gradingViewPage.steps.verifyScoresNotVisibleForNonScoredQuestions();
935
+ }
936
+ if (view === 'Question preview' || view === 'Item preview') {
937
+ numberLinePage.steps.checkNonScoredScoringLabel();
938
+ numberLinePage.steps.switchToGradingView();
939
+ }
940
+ numberLinePage.steps.verifyCorrectPointsOnVerticalNumberLinePreviewTab(range, [2]);
941
+ numberLinePage.steps.verifyCorrectPointsOnVerticalNumberLinePreviewTab(range, [-4, -5]);
942
+ numberLinePage.steps.verifyCorrectLineSegmentOnVerticalNumberLinePreviewTab(range, [{ y1: -5, y2: -4 }]);
943
+ numberLinePage.steps.verifyCorrectIncorrectAnswerLabel('correct');
944
+ numberLinePage.steps.verifyCorrectAnswerSectionNotExist();
945
+ });
946
+ });
947
+ });
699
948
  });