itemengine-cypress-automation 1.0.590 → 1.0.591-IEI-7055-cypress-d2f8270.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 (22) hide show
  1. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithAlternatePointsGreaterThanCorrectPoints.js +69 -0
  2. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsEqualToAlternatePoints.js +69 -0
  3. package/cypress/e2e/ILC/NumberLine/Scoring/allOrNothingWithCorrectPointsGreaterThanAlternativePoints.js +69 -0
  4. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithAlternatePointsGreaterThanCorrectPoints.js +69 -1
  5. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeightsWithCorrectPointsGreaterThanAlternatePoints.js +81 -0
  6. package/cypress/e2e/ILC/NumberLine/Scoring/partialEqualWeigtsWithCorrectPointsEqualToAlternatePoints.js +69 -0
  7. package/cypress/e2e/ILC/NumberLine/allOrNothingScoringForAllViews.smoke.js +240 -0
  8. package/cypress/e2e/ILC/NumberLine/verticalNumberLine/allOrNothingScoringForAllViews.smoke.js +235 -0
  9. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingAlternativePointsGreaterThanCorrectPoints.js +87 -6
  10. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsEqualToAlternativePoints.js +80 -2
  11. package/cypress/e2e/ILC/NumberLineLabel/Scoring/allOrNothingCorrectPointsGreaterThanAlternativePoints.js +81 -2
  12. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsAlternativePointsGreaterThanCorrectPoints.js +98 -0
  13. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsCorrectPointsEqualToAlternativePoints.js +98 -0
  14. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialDifferentWeightsCorrectPointsGreaterThanAlternativePoints.js +98 -0
  15. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsAlternativePointsGreaterThanCorrectPoints.js +86 -0
  16. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsCorrectPointsEqualToAlternativePoints.js +74 -0
  17. package/cypress/e2e/ILC/NumberLineLabel/Scoring/partialEqualWeightsCorrectPointsGreaterThanAlternativePoints.js +86 -0
  18. package/cypress/e2e/ILC/NumberLineLabel/allOrNothingForAllViews.smoke.js +258 -0
  19. package/cypress/e2e/ILC/NumberLineLabel/verticalNumberLine/allOrNothingForAllViews.smoke.js +241 -0
  20. package/cypress/pages/numberLineLabelPage.js +12 -8
  21. package/cypress/pages/numberLinePage.js +15 -10
  22. package/package.json +1 -1
@@ -1,11 +1,13 @@
1
1
  import { numberLineLabelPage, gradingViewPage, itemPreviewPage, studentViewPage, dialogBoxBase } from "../../../pages";
2
2
  import abortEarlySetup from "../../../support/helpers/abortEarly";
3
3
  import utilities from "../../../support/helpers/utilities";
4
+ import { showAlternativeAnswersComponent } from "../../../pages/components";
4
5
  const grepTags = Cypress.env('grepTags');
5
6
  let correctAnswerViews = ['Question preview', 'Item preview', 'Grading view'];
6
7
  const views = utilities.getViews(correctAnswerViews);
7
8
  var itemReferenceID = "";
8
9
  const range = 22.2;
10
+ const alternativeAnswerCheck = Cypress.env('ENABLE_ALTERNATIVE_ANSWER_ENHANCEMENT') === 'true';
9
11
 
10
12
  describe('Create Item page - Number line label: All or nothing ', () => {
11
13
  before(() => {
@@ -251,6 +253,262 @@ describe('Create Item page - Number line label: All or nothing ', () => {
251
253
  });
252
254
  });
253
255
 
256
+ if (alternativeAnswerCheck) {
257
+ views.forEach((view) => {
258
+ describe(`Number line - label: All or nothing scoring with alternate answer - ${view}`, { tags: 'smoke' }, () => {
259
+ abortEarlySetup();
260
+ before(() => {
261
+ switch (view) {
262
+ case 'Question preview':
263
+ numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
264
+ cy.barsPreLoaderWait();
265
+ numberLineLabelPage.steps.navigateToLabelNumberLineTab();
266
+ numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
267
+ for (let i = 0; i < 2; i++) {
268
+ numberLineLabelPage.steps.addLabel();
269
+ }
270
+ numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4', 'Label 5']);
271
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
272
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
273
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'horizontal', range, 9);
274
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
275
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'horizontal', range, -9);
276
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
277
+ numberLineLabelPage.steps.allotPoints(20);
278
+ //Alternative answer
279
+ numberLineLabelPage.steps.addAlternativeAnswerAccordion(1);
280
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'horizontal', range, 0);
281
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
282
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 4', 'horizontal', range, 6);
283
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [6]);
284
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 5', 'horizontal', range, -6);
285
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-6]);
286
+ numberLineLabelPage.steps.allotPoints(12);
287
+ numberLineLabelPage.steps.switchToPreviewTab();
288
+ break;
289
+ case 'Item preview':
290
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
291
+ itemPreviewPage.steps.switchToPreviewTab();
292
+ break;
293
+ case 'Grading view':
294
+ cy.wait(5000);
295
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
296
+ break;
297
+ }
298
+ });
299
+
300
+ beforeEach(() => {
301
+ switch (view) {
302
+ case 'Question preview':
303
+ numberLineLabelPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
304
+ numberLineLabelPage.steps.resetQuestionPreview();
305
+ break;
306
+ case 'Item preview':
307
+ itemPreviewPage.steps.switchToStudentView();
308
+ itemPreviewPage.steps.resetQuestionPreview();
309
+ break;
310
+ case 'Grading view':
311
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
312
+ break;
313
+ }
314
+ });
315
+
316
+ if (view === 'Question preview') {
317
+ after(() => {
318
+ numberLineLabelPage.steps.clickOnSaveQuestionButton();
319
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
320
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
321
+ });
322
+ };
323
+
324
+ it('When the user selects \'Grading\' view without attempting the question, the correct answer should be displayed in the correct answer section graph and correct/incorrect status message should not be displayed', () => {
325
+ if (view === 'Grading view') {
326
+ studentViewPage.steps.submitResponse();
327
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
328
+ studentViewPage.steps.clickOnGoToGradingViewButton();
329
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
330
+ } else {
331
+ numberLineLabelPage.steps.switchToGradingView();
332
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
333
+ }
334
+ utilities.verifyElementVisibilityState(numberLineLabelPage.numberLinePointPreviewTab(), 'notExist');
335
+ numberLineLabelPage.steps.verifyCorrectIncorrectIconsNotExist();
336
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabelNotExist();
337
+ cy.wait(2000);
338
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, false, view === 'Grading view' ? true : false);
339
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
340
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
341
+ showAlternativeAnswersComponent.steps.verifyCorrectAnswersLabelAndPointVisible('(20 points)');
342
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleExists();
343
+ showAlternativeAnswersComponent.steps.disableShowAlternativeAnswersToggle();
344
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleUnchecked();
345
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersSectionNotExist();
346
+ showAlternativeAnswersComponent.steps.clickShowAlternativeAnswersToggle();
347
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(12 points)');
348
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, true);
349
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 4', range, 6, true);
350
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 5', range, -6, true);
351
+ cy.wait(2000);
352
+ });
353
+
354
+ it('When the user attempts the question incorrectly then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed incorrect and the the correct answers should be displayed in the correct answer section graph', () => {
355
+ cy.wait(2000);
356
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'horizontal', range, 0);
357
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
358
+ cy.wait(2000);
359
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, 4);
360
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [4]);
361
+ cy.wait(2000);
362
+ if (view === 'Grading view') {
363
+ studentViewPage.steps.submitResponse();
364
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
365
+ studentViewPage.steps.clickOnGoToGradingViewButton();
366
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
367
+ } else {
368
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
369
+ numberLineLabelPage.steps.switchToGradingView();
370
+ }
371
+ cy.wait(2000);
372
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 4', range, 0);
373
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 3', range, 4);
374
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
375
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
376
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
377
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
378
+ showAlternativeAnswersComponent.steps.verifyCorrectAnswersLabelAndPointVisible('(20 points)');
379
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleExists();
380
+ showAlternativeAnswersComponent.steps.disableShowAlternativeAnswersToggle();
381
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleUnchecked();
382
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersSectionNotExist();
383
+ showAlternativeAnswersComponent.steps.clickShowAlternativeAnswersToggle();
384
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(12 points)');
385
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, true);
386
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 4', range, 6, true);
387
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 5', range, -6, true);
388
+ cy.wait(2000);
389
+ });
390
+
391
+ it('When the user attempts the question partially correct then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed correct and the the correct answers should be displayed in the correct answer section graph', () => {
392
+ if (view === 'Grading view') {
393
+ studentViewPage.steps.clearResponses();
394
+ }
395
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
396
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
397
+ cy.wait(2000);
398
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
399
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
400
+ cy.wait(2000);
401
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -8);
402
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-8]);
403
+ if (view === 'Grading view') {
404
+ studentViewPage.steps.submitResponse();
405
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
406
+ studentViewPage.steps.clickOnGoToGradingViewButton();
407
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
408
+ } else {
409
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
410
+ numberLineLabelPage.steps.switchToGradingView();
411
+ }
412
+ cy.wait(2000);
413
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 3', range, -8);
414
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
415
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
416
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
417
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
418
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
419
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
420
+ showAlternativeAnswersComponent.steps.verifyCorrectAnswersLabelAndPointVisible('(20 points)');
421
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleExists();
422
+ showAlternativeAnswersComponent.steps.disableShowAlternativeAnswersToggle();
423
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleUnchecked();
424
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersSectionNotExist();
425
+ showAlternativeAnswersComponent.steps.clickShowAlternativeAnswersToggle();
426
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(12 points)');
427
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, true);
428
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 4', range, 6, true);
429
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 5', range, -6, true);
430
+ cy.wait(2000);
431
+ });
432
+
433
+ it('When the user attempts the question partially correct with an incorrect response then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed correct for the correct response and incorrect for the incorrect response and the the correct answers should be displayed in the correct answer section graph', () => {
434
+ if (view === 'Grading view') {
435
+ studentViewPage.steps.clearResponses();
436
+ }
437
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
438
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
439
+ cy.wait(2000);
440
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
441
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
442
+ cy.wait(2000);
443
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -9);
444
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
445
+ cy.wait(2000);
446
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'horizontal', range, 2);
447
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [2]);
448
+ cy.wait(2000);
449
+ if (view === 'Grading view') {
450
+ studentViewPage.steps.submitResponse();
451
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
452
+ studentViewPage.steps.clickOnGoToGradingViewButton();
453
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
454
+ } else {
455
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
456
+ numberLineLabelPage.steps.switchToGradingView();
457
+ }
458
+ cy.wait(2000);
459
+ numberLineLabelPage.steps.verifyIncorrectResponseOnNumberLinePreviewTab('Label 4', range, 2);
460
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
461
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
462
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
463
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
464
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
465
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
466
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
467
+ showAlternativeAnswersComponent.steps.verifyCorrectAnswersLabelAndPointVisible('(20 points)');
468
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleExists();
469
+ showAlternativeAnswersComponent.steps.disableShowAlternativeAnswersToggle();
470
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleUnchecked();
471
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersSectionNotExist();
472
+ showAlternativeAnswersComponent.steps.clickShowAlternativeAnswersToggle();
473
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(12 points)');
474
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, true);
475
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 4', range, 6, true);
476
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLineCorrectAnswerSection('Label 5', range, -6, true);
477
+ cy.wait(2000);
478
+ });
479
+
480
+ it('When the user attempts the question correctly then the user should be awarded with full points and on switching to grading view \'Your answer is correct\' should be displayed and the attempted graph should be displayed correct and the correct answer section graph should not be displayed', () => {
481
+ if (view === 'Grading view') {
482
+ studentViewPage.steps.clearResponses();
483
+ }
484
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'horizontal', range, 0);
485
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [0]);
486
+ cy.wait(2000);
487
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'horizontal', range, 9);
488
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [9]);
489
+ cy.wait(2000);
490
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'horizontal', range, -9);
491
+ numberLineLabelPage.steps.verifyPointsPlottedOnNumberLinePreviewTab(range, [-9]);
492
+ cy.wait(2000);
493
+ if (view === 'Grading view') {
494
+ studentViewPage.steps.submitResponse();
495
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
496
+ studentViewPage.steps.clickOnGoToGradingViewButton();
497
+ gradingViewPage.steps.verifyGradingViewScore(20, 20);
498
+ } else {
499
+ numberLineLabelPage.steps.verifyPreviewScore(20, 20);
500
+ numberLineLabelPage.steps.switchToGradingView();
501
+ }
502
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
503
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
504
+ numberLineLabelPage.steps.verifyCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
505
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
506
+ numberLineLabelPage.steps.verifyCorrectAnswerSectionNotExist();
507
+ });
508
+ });
509
+ });
510
+ }
511
+
254
512
  views.forEach((view) => {
255
513
  describe(`Number line - label: Manually scored - ${view}`, { tags: 'smoke' }, () => {
256
514
  abortEarlySetup();
@@ -1,11 +1,13 @@
1
1
  import { numberLineLabelPage, gradingViewPage, itemPreviewPage, studentViewPage, dialogBoxBase } from "../../../../pages";
2
2
  import abortEarlySetup from "../../../../support/helpers/abortEarly";
3
+ import { showAlternativeAnswersComponent } from "../../../../pages/components";
3
4
  import utilities from "../../../../support/helpers/utilities";
4
5
  const grepTags = Cypress.env('grepTags');
5
6
  let correctAnswerViews = ['Question preview', 'Item preview', 'Grading view'];
6
7
  const views = utilities.getViews(correctAnswerViews);
7
8
  var itemReferenceID = "";
8
9
  const range = 22.19;
10
+ const alternativeAnswerCheck = Cypress.env('ENABLE_ALTERNATIVE_ANSWER_ENHANCEMENT') === 'true';
9
11
 
10
12
  describe('Create Item page - Number line: All or nothing ', () => {
11
13
  before(() => {
@@ -234,6 +236,245 @@ describe('Create Item page - Number line: All or nothing ', () => {
234
236
  });
235
237
  });
236
238
 
239
+ if (alternativeAnswerCheck) {
240
+ views.forEach((view) => {
241
+ describe(`Number line - label: All or nothing scoring with alternate answer - ${view}`, { tags: 'smoke' }, () => {
242
+ abortEarlySetup();
243
+ before(() => {
244
+ switch (view) {
245
+ case 'Question preview':
246
+ numberLineLabelPage.steps.navigateToCreateQuestion('Number line');
247
+ cy.barsPreLoaderWait();
248
+ numberLineLabelPage.steps.navigateToLabelNumberLineTab();
249
+ numberLineLabelPage.steps.selectOrientationToggleButton('Upright');
250
+ numberLineLabelPage.steps.addTextInQuestionInstructionsInputField('Plot labels on the number line');
251
+ numberLineLabelPage.steps.allotPoints(20);
252
+ for (let i = 0; i < 2; i++) {
253
+ numberLineLabelPage.steps.addLabel();
254
+ }
255
+ numberLineLabelPage.steps.enterTextInMultipleLabelInputFields(['Label 1', 'Label 2', 'Label 3', 'Label 4', 'Label 5']);
256
+ cy.wait(2000);
257
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'vertical', range, 0);
258
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
259
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 2', 'vertical', range, 9);
260
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [9]);
261
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 3', 'vertical', range, -9);
262
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-9]);
263
+ //Alternative answer
264
+ numberLineLabelPage.steps.addAlternativeAnswerAccordion(1);
265
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 1', 'vertical', range, 0);
266
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [0]);
267
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 4', 'vertical', range, 6);
268
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [6]);
269
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLineSpecifyCorrectAnswer('Label 5', 'vertical', range, -6);
270
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLineSpecifyCorrectAnswer(range, [-6]);
271
+ numberLineLabelPage.steps.allotPoints(12);
272
+ numberLineLabelPage.steps.switchToPreviewTab();
273
+ break;
274
+ case 'Item preview':
275
+ cy.visit(`/item-engine/demo/edit-item/${utilities.base64Encoding(itemReferenceID)}`);
276
+ itemPreviewPage.steps.switchToPreviewTab();
277
+ break;
278
+ case 'Grading view':
279
+ cy.wait(5000);
280
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
281
+ break;
282
+ }
283
+ });
284
+
285
+ beforeEach(() => {
286
+ switch (view) {
287
+ case 'Question preview':
288
+ numberLineLabelPage.steps.verifyQuestionPreviewStateWhenSwitchingBackToStudentView();
289
+ numberLineLabelPage.steps.resetQuestionPreview();
290
+ break;
291
+ case 'Item preview':
292
+ itemPreviewPage.steps.switchToStudentView();
293
+ itemPreviewPage.steps.resetQuestionPreview();
294
+ break;
295
+ case 'Grading view':
296
+ cy.wait(5000);
297
+ cy.visit(`/item-engine/demo/render-item/student-view/${utilities.base64Encoding(itemReferenceID)}`);
298
+ break;
299
+ }
300
+ });
301
+
302
+ if (view === 'Question preview') {
303
+ after(() => {
304
+ numberLineLabelPage.steps.clickOnSaveQuestionButton();
305
+ utilities.verifyElementVisibilityState(itemPreviewPage.referenceID(), 'visible');
306
+ itemReferenceID = itemPreviewPage.steps.getItemReferenceID();
307
+ });
308
+ };
309
+
310
+ it('When the user selects \'Grading\' view without attempting the question, the correct answer should be displayed in the correct answer section graph and your answer is incorrect status message should be displayed', () => {
311
+ if (view === 'Grading view') {
312
+ studentViewPage.steps.submitResponse();
313
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
314
+ studentViewPage.steps.clickOnGoToGradingViewButton();
315
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
316
+ } else {
317
+ numberLineLabelPage.steps.switchToGradingView();
318
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
319
+ }
320
+ utilities.verifyElementVisibilityState(numberLineLabelPage.numberLinePointPreviewTab(), 'notExist');
321
+ //TODO: Remove comment after https://redmine.zeuslearning.com/issues/565569 is resolved
322
+ //numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
323
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
324
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
325
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
326
+ showAlternativeAnswersComponent.steps.verifyCorrectAnswersLabelAndPointVisible('(20 points)');
327
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleExists();
328
+ showAlternativeAnswersComponent.steps.disableShowAlternativeAnswersToggle();
329
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleUnchecked();
330
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersSectionNotExist();
331
+ showAlternativeAnswersComponent.steps.clickShowAlternativeAnswersToggle();
332
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(12 points)');
333
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, true);
334
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 4', range, 6, true);
335
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 5', range, -6, true);
336
+ });
337
+
338
+ it('When the user attempts the question incorrectly then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed incorrect and the the correct answers should be displayed in the correct answer section graph', () => {
339
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'vertical', range, 0);
340
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [0]);
341
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'vertical', range, 4);
342
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [4]);
343
+ if (view === 'Grading view') {
344
+ studentViewPage.steps.submitResponse();
345
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
346
+ studentViewPage.steps.clickOnGoToGradingViewButton();
347
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
348
+ } else {
349
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
350
+ numberLineLabelPage.steps.switchToGradingView();
351
+ }
352
+ numberLineLabelPage.steps.verifyVerticalIncorrectResponseOnNumberLinePreviewTab('Label 4', range, 0);
353
+ numberLineLabelPage.steps.verifyVerticalIncorrectResponseOnNumberLinePreviewTab('Label 3', range, 4);
354
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
355
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
356
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
357
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
358
+ showAlternativeAnswersComponent.steps.verifyCorrectAnswersLabelAndPointVisible('(20 points)');
359
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleExists();
360
+ showAlternativeAnswersComponent.steps.disableShowAlternativeAnswersToggle();
361
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleUnchecked();
362
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersSectionNotExist();
363
+ showAlternativeAnswersComponent.steps.clickShowAlternativeAnswersToggle();
364
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(12 points)');
365
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, true);
366
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 4', range, 6, true);
367
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 5', range, -6, true);
368
+ });
369
+
370
+ it('When the user attempts the question partially correct then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed correct and the the correct answers should be displayed in the correct answer section graph', () => {
371
+ if (view === 'Grading view') {
372
+ studentViewPage.steps.clearResponses();
373
+ }
374
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'vertical', range, 0);
375
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [0]);
376
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'vertical', range, 9);
377
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [9]);
378
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'vertical', range, -8);
379
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [-8]);
380
+ if (view === 'Grading view') {
381
+ studentViewPage.steps.submitResponse();
382
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
383
+ studentViewPage.steps.clickOnGoToGradingViewButton();
384
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
385
+ } else {
386
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
387
+ numberLineLabelPage.steps.switchToGradingView();
388
+ }
389
+ numberLineLabelPage.steps.verifyVerticalIncorrectResponseOnNumberLinePreviewTab('Label 3', range, -8);
390
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
391
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
392
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
393
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
394
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
395
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
396
+ showAlternativeAnswersComponent.steps.verifyCorrectAnswersLabelAndPointVisible('(20 points)');
397
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleExists();
398
+ showAlternativeAnswersComponent.steps.disableShowAlternativeAnswersToggle();
399
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleUnchecked();
400
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersSectionNotExist();
401
+ showAlternativeAnswersComponent.steps.clickShowAlternativeAnswersToggle();
402
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(12 points)');
403
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, true);
404
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 4', range, 6, true);
405
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 5', range, -6, true);
406
+ });
407
+
408
+ it('When the user attempts the question partially correct with an incorrect response then the user should be awarded with 0 points and on switching to grading view \'Your answer is incorrect\' should be displayed and the attempted graph should be displayed correct for the correct response and incorrect for the incorrect response and the the correct answers should be displayed in the correct answer section graph', () => {
409
+ if (view === 'Grading view') {
410
+ studentViewPage.steps.clearResponses();
411
+ }
412
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'vertical', range, 0);
413
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [0]);
414
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'vertical', range, 9);
415
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [9]);
416
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'vertical', range, -9);
417
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [-9]);
418
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 4', 'vertical', range, 2);
419
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [2]);
420
+ if (view === 'Grading view') {
421
+ studentViewPage.steps.submitResponse();
422
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
423
+ studentViewPage.steps.clickOnGoToGradingViewButton();
424
+ gradingViewPage.steps.verifyGradingViewScore(0, 20);
425
+ } else {
426
+ numberLineLabelPage.steps.verifyPreviewScore(0, 20);
427
+ numberLineLabelPage.steps.switchToGradingView();
428
+ }
429
+ numberLineLabelPage.steps.verifyVerticalIncorrectResponseOnNumberLinePreviewTab('Label 4', range, 2);
430
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
431
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
432
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
433
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('incorrect');
434
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0);
435
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 2', range, 9);
436
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 3', range, -9);
437
+ showAlternativeAnswersComponent.steps.verifyCorrectAnswersLabelAndPointVisible('(20 points)');
438
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleExists();
439
+ showAlternativeAnswersComponent.steps.disableShowAlternativeAnswersToggle();
440
+ showAlternativeAnswersComponent.steps.verifyShowAlternativeAnswersToggleUnchecked();
441
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersSectionNotExist();
442
+ showAlternativeAnswersComponent.steps.clickShowAlternativeAnswersToggle();
443
+ showAlternativeAnswersComponent.steps.verifyAlternativeAnswersLabelAndPointVisible(1, '(12 points)');
444
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 1', range, 0, true);
445
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 4', range, 6, true);
446
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection('Label 5', range, -6, true);
447
+ });
448
+
449
+ it('When the user attempts the question correctly then the user should be awarded with full points and on switching to grading view \'Your answer is correct\' should be displayed and the attempted graph should be displayed correct and the correct answer section graph should not be displayed', () => {
450
+ if (view === 'Grading view') {
451
+ studentViewPage.steps.clearResponses();
452
+ }
453
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 1', 'vertical', range, 0);
454
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [0]);
455
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 2', 'vertical', range, 9);
456
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [9]);
457
+ numberLineLabelPage.steps.clickAndDropLabelOnNumberLinePreviewTab('Label 3', 'vertical', range, -9);
458
+ numberLineLabelPage.steps.verifyVerticalPointsPlottedOnNumberLinePreviewTab(range, [-9]);
459
+ if (view === 'Grading view') {
460
+ studentViewPage.steps.submitResponse();
461
+ utilities.verifyElementVisibilityState(dialogBoxBase.dialogBox(), 'visible');
462
+ studentViewPage.steps.clickOnGoToGradingViewButton();
463
+ gradingViewPage.steps.verifyGradingViewScore(20, 20);
464
+ } else {
465
+ numberLineLabelPage.steps.verifyPreviewScore(20, 20);
466
+ numberLineLabelPage.steps.switchToGradingView();
467
+ }
468
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLinePreviewTab('Label 3', range, -9);
469
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLinePreviewTab('Label 2', range, 9);
470
+ numberLineLabelPage.steps.verifyVerticalCorrectResponseOnNumberLinePreviewTab('Label 1', range, 0);
471
+ numberLineLabelPage.steps.verifyCorrectIncorrectAnswerLabel('correct');
472
+ numberLineLabelPage.steps.verifyCorrectAnswerSectionNotExist();
473
+ });
474
+ });
475
+ });
476
+ }
477
+
237
478
  views.forEach((view) => {
238
479
  describe(`Number line - label vertical: Manually scored - ${view}`, { tags: 'smoke' }, () => {
239
480
  abortEarlySetup();
@@ -40,7 +40,7 @@ const selectors = {
40
40
  correctIncorrectStatusMessageText: () => cy.get('[class*="NumberLinestyles__CorrectIncorrectWrapper"]'),
41
41
 
42
42
  //Correct answer section
43
- numberLineCorrectAnswerSection: () => cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox svg').eq(2),
43
+ numberLineCorrectAnswerSection: (isAlternativeAnswerSVG = false) => cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox svg').eq(isAlternativeAnswerSVG ? 3 : 2),
44
44
  numberLinePointCorrectAnswerSection: () => cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox').last().find('svg ellipse[display="inline"]')
45
45
  }
46
46
 
@@ -440,7 +440,7 @@ const steps = {
440
440
  clickAndDropLabelOnNumberLinePreviewTab: (label, orientation, range, coordinate) => {
441
441
  numberLineLabelPage.draggableLabelsPreviewTab()
442
442
  .contains(label)
443
- .click();
443
+ .click({ force: true });
444
444
  numberLineLabelPage.numberLinePreviewTab()
445
445
  .then(($graphElement) => {
446
446
  if (orientation === 'horizontal') {
@@ -451,6 +451,7 @@ const steps = {
451
451
  const xPixel = originX + coordinate * (graphWidth / range);
452
452
  numberLineLabelPage.numberLinePreviewTab()
453
453
  .click(xPixel, originY, { force: true });
454
+ cy.wait(2000); // Wait for UI to update after clicking the label
454
455
  } else {
455
456
  numberLineLabelPage.labelContainerPreviewTab()
456
457
  .then(($element) => {
@@ -463,6 +464,7 @@ const steps = {
463
464
  const yPixel = originY - coordinate * (graphHeight / range);
464
465
  numberLineLabelPage.numberLinePreviewTab()
465
466
  .click(originX, yPixel, { force: true });
467
+ cy.wait(2000); // Wait for UI to update after clicking the label
466
468
  });
467
469
  }
468
470
  });
@@ -612,16 +614,17 @@ const steps = {
612
614
  * @param {Object[]} coordinates - An array containing x and y coordinates along with their ranges
613
615
  * @param {number} range - range of x coordinate
614
616
  */
615
- verifyCorrectResponseOnNumberLineCorrectAnswerSection: (label, range, coordinate) => {
617
+ verifyCorrectResponseOnNumberLineCorrectAnswerSection: (label, range, coordinate, isAlternativeAnswer, isGradingView) => {
618
+ let index = isAlternativeAnswer ? 2 : 1;
616
619
  numberLineLabelPage.numberLineCorrectAnswerSection()
617
620
  .then(($graphElement) => {
618
621
  let graphWidth = $graphElement[0].clientWidth;
619
622
  const originX = graphWidth / 2 + tolerance / 2;
620
623
  const xPixel = originX + coordinate * ((graphWidth - tolerance) / range);
621
- cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox').eq(1).find(`svg ellipse[cx*="${Math.floor(xPixel)}"][display="inline"]:visible`)
624
+ cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox').eq(index).find(`svg ellipse[cx*="${Math.floor(xPixel)}"][display="inline"]:visible`)
622
625
  .should('have.css', 'fill', css.color.correctAnswer);
623
626
  });
624
- numberLineLabelPage.numberLineCorrectAnswerSection()
627
+ numberLineLabelPage.numberLineCorrectAnswerSection(isAlternativeAnswer)
625
628
  .parents('.ngie-jxgbox')
626
629
  .within(() => {
627
630
  numberLineLabelPage.draggableLabelsSpecifyCorrectAnswer()
@@ -965,16 +968,17 @@ const steps = {
965
968
  * @param {Object[]} coordinates - An array containing x and y coordinates along with their ranges
966
969
  * @param {number} range - range of x coordinate
967
970
  */
968
- verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection: (label, range, coordinate) => {
971
+ verifyVerticalCorrectResponseOnNumberLineCorrectAnswerSection: (label, range, coordinate, isAlternativeAnswer) => {
972
+ let index = isAlternativeAnswer ? 2 : 1;
969
973
  numberLineLabelPage.numberLineCorrectAnswerSection()
970
974
  .then(($graphElement) => {
971
975
  let graphHeight = $graphElement[0].clientHeight;
972
976
  const originY = graphHeight / 2 - tolerance / 2;
973
977
  const yPixel = originY - coordinate * ((graphHeight - tolerance) / range);
974
- cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox').eq(1).find(`svg ellipse[cy*="${Math.floor(yPixel)}"][display="inline"]:visible`)
978
+ cy.get('[class*="question-preview-wrapper"] .ngie-jxgbox').eq(index).find(`svg ellipse[cy*="${Math.floor(yPixel)}"][display="inline"]:visible`)
975
979
  .should('have.css', 'fill', css.color.correctAnswer);
976
980
  });
977
- numberLineLabelPage.numberLineCorrectAnswerSection()
981
+ numberLineLabelPage.numberLineCorrectAnswerSection(isAlternativeAnswer)
978
982
  .parents('.ngie-jxgbox')
979
983
  .within(() => {
980
984
  numberLineLabelPage.draggableLabelsSpecifyCorrectAnswer()