itemengine-cypress-automation 1.0.479-skipFewTestsDueToBugs-d877a1b.0 → 1.0.480

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.
@@ -1279,8 +1279,7 @@ describe('Preview tab contents - primary toolbar options, secondary toolbar opti
1279
1279
  //Selected state of secondary toolbar option. Add here once https://redmine.zeuslearning.com/issues/554508 is resolved
1280
1280
  });
1281
1281
 
1282
- //Need to remove skip once https://weldnorthed.atlassian.net/browse/IEI-6776 is resolved
1283
- it.skip(`A \'Line type\' title along with the five line type options - ${lineTypeOptions.join(', ')} should be displayed`, () => {
1282
+ it(`A \'Line type\' title along with the five line type options - ${lineTypeOptions.join(', ')} should be displayed`, () => {
1284
1283
  drawingResponsePage.steps.verifySecondaryOptionPopupTitle(drawingToolbarOptionsAndAdditionalOptions.drawingToolbarOptions[2].secondaryToolbarOptions[2]);
1285
1284
  lineTypeOptions.forEach((thickness, index) => {
1286
1285
  drawingResponsePage.steps.verifySecondaryPopupLineType(thickness, index);
@@ -0,0 +1,72 @@
1
+ import { createItemPage, itemPreviewPage, multipleSelectionPage, singleSelectionPage } from "../../../pages";
2
+ import utilities from "../../../support/helpers/utilities";
3
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
4
+ import { responseModeToggle } from "../../../pages/components/responseModeToggle";
5
+
6
+ const options = ['Animal', 'Vehicle', 'Birds', 'Insects'];
7
+
8
+ let itemReferenceID = '';
9
+
10
+ describe('Create item page - Multiple selection : Response mode toggle', () => {
11
+ before(() => {
12
+ cy.loginAs('admin');
13
+ multipleSelectionPage.steps.navigateToCreateQuestion('multiple selection');
14
+ cy.barsPreLoaderWait();
15
+ multipleSelectionPage.steps.addQuestionInstructions();
16
+ multipleSelectionPage.steps.addInputToOptionsInputField(options);
17
+ multipleSelectionPage.steps.allotPoints(20);
18
+ });
19
+
20
+ after(() => {
21
+ cy.deleteItem(itemReferenceID);
22
+ cy.logout();
23
+ });
24
+
25
+ describe('Test response mode toggle functionality while authoring a question', () => {
26
+ abortEarlySetup();
27
+ it('When no answer is selected, then user should be able to change responseMode', () => {
28
+ responseModeToggle.steps.changeResponseMode('Multiple selection', 'Single selection');
29
+ });
30
+
31
+ it('When answer is selected, then upon changing the response Mode a warning popup should be displayed', () => {
32
+ responseModeToggle.steps.changeResponseMode('Single selection', 'Multiple selection');
33
+ multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
34
+ responseModeToggle.steps.warnResponseModeChange('Multiple selection', 'Single selection');
35
+ });
36
+
37
+ it('When user rejects the response mode change in the warning popup, then the question type should remain unchanged', () => {
38
+ responseModeToggle.steps.confirmResponseModeChange(false);
39
+ responseModeToggle.steps.checkQuestionIsLoadedWithResponseMode('Multiple selection');
40
+ });
41
+
42
+ it('When the user accepts the response mode change in the warning popup, then the question type should be changed to the selected response mode type', () => {
43
+ responseModeToggle.steps.warnResponseModeChange('Multiple selection', 'Single selection');
44
+ responseModeToggle.steps.confirmResponseModeChange(true);
45
+ responseModeToggle.steps.changeResponseMode('Single selection', 'Multiple selection');
46
+ multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
47
+ });
48
+ });
49
+
50
+ describe('Test response mode toggle functionality on saved item', () => {
51
+ abortEarlySetup();
52
+ it('When an item is edited to have different response Mode, then user should be able to change response mode of a saved item and save with different question type', () => {
53
+ multipleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
54
+ cy.wait(5000).then(() => {
55
+ itemPreviewPage.referenceID().invoke('text').then(($text) => {
56
+ itemReferenceID = $text;
57
+ cy.visit(`/item-engine/demo/edit-item/${
58
+ utilities.base64Encoding(itemReferenceID)
59
+ }`);
60
+ })
61
+ });
62
+ createItemPage.steps.editItem();
63
+ responseModeToggle.steps.warnResponseModeChange('Multiple selection', 'Single selection');
64
+ responseModeToggle.steps.confirmResponseModeChange(true);
65
+ singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
66
+ multipleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
67
+ cy.wait(5000);
68
+ createItemPage.steps.editItem();
69
+ responseModeToggle.steps.checkQuestionIsLoadedWithResponseMode('Single selection');
70
+ });
71
+ });
72
+ });
@@ -221,12 +221,9 @@ describe('Create item page - Multiple selection grid: Preview contents', () => {
221
221
  });
222
222
  }
223
223
 
224
- //Added if condition as sometimes when we run tests on spinaker it fails as image does not load and give unnecessary failure. Need to run these locally.
225
- if (view !== 'Correct answer view') {
226
- it('Accessibility of preview tab', { tags: 'a11y' }, () => {
227
- cy.checkAccessibility(multipleSelectionGridPage.tableCell());
228
- });
229
- }
224
+ it('Accessibility of preview tab', { tags: 'a11y' }, () => {
225
+ cy.checkAccessibility(multipleSelectionGridPage.tableCell());
226
+ });
230
227
  });
231
228
  });
232
229
  });
@@ -0,0 +1,72 @@
1
+ import { createItemPage, itemPreviewPage, singleSelectionPage, multipleSelectionPage } from "../../../pages";
2
+ import utilities from "../../../support/helpers/utilities";
3
+ import abortEarlySetup from "../../../support/helpers/abortEarly";
4
+ import { responseModeToggle } from "../../../pages/components/responseModeToggle";
5
+
6
+ const options = ['Animal', 'Vehicle', 'Birds', 'Insects'];
7
+
8
+ let itemReferenceID = '';
9
+
10
+ describe('Create item page - Single selection : Response mode toggle', () => {
11
+ before(() => {
12
+ cy.loginAs('admin');
13
+ singleSelectionPage.steps.navigateToCreateQuestion('single selection');
14
+ cy.barsPreLoaderWait();
15
+ singleSelectionPage.steps.addQuestionInstructions();
16
+ singleSelectionPage.steps.addInputToOptionsInputField(options);
17
+ singleSelectionPage.steps.allotPoints(20);
18
+ });
19
+
20
+ after(() => {
21
+ cy.deleteItem(itemReferenceID);
22
+ cy.logout();
23
+ });
24
+
25
+ describe('Test response mode toggle functionality while authoring a question', () => {
26
+ abortEarlySetup();
27
+ it('When no answer is selected, then user should be able to change responseMode', () => {
28
+ responseModeToggle.steps.changeResponseMode('Single selection', 'Multiple selection');
29
+ });
30
+
31
+ it('When answer is selected, then upon changing the response Mode a warning popup should be displayed', () => {
32
+ responseModeToggle.steps.changeResponseMode('Multiple selection', 'Single selection');
33
+ singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
34
+ responseModeToggle.steps.warnResponseModeChange('Single selection', 'Multiple selection');
35
+ });
36
+
37
+ it('When user rejects the response mode change in the warning popup, then the question type should remain unchanged', () => {
38
+ responseModeToggle.steps.confirmResponseModeChange(false);
39
+ responseModeToggle.steps.checkQuestionIsLoadedWithResponseMode('Single selection');
40
+ });
41
+
42
+ it('When the user accepts the response mode change in the warning popup, then the question type should be changed to selected response mode type', () => {
43
+ responseModeToggle.steps.warnResponseModeChange('Single selection', 'Multiple selection');
44
+ responseModeToggle.steps.confirmResponseModeChange(true);
45
+ responseModeToggle.steps.changeResponseMode('Multiple selection', 'Single selection');
46
+ singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
47
+ });
48
+ });
49
+
50
+ describe('Test response mode toggle functionality on saved item', () => {
51
+ abortEarlySetup();
52
+ it('When an item is edited to have different response Mode, then user should be able to change response mode of a saved item and save with different question type', () => {
53
+ singleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
54
+ cy.wait(5000).then(() => {
55
+ itemPreviewPage.referenceID().invoke('text').then(($text) => {
56
+ itemReferenceID = $text;
57
+ cy.visit(`/item-engine/demo/edit-item/${
58
+ utilities.base64Encoding(itemReferenceID)
59
+ }`);
60
+ })
61
+ });
62
+ createItemPage.steps.editItem();
63
+ responseModeToggle.steps.warnResponseModeChange('Single selection', 'Multiple selection');
64
+ responseModeToggle.steps.confirmResponseModeChange(true);
65
+ multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
66
+ singleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
67
+ cy.wait(5000);
68
+ createItemPage.steps.editItem();
69
+ responseModeToggle.steps.checkQuestionIsLoadedWithResponseMode('Multiple selection');
70
+ });
71
+ });
72
+ });
@@ -220,12 +220,9 @@ describe('Create item page - Single selection grid: Preview contents', () => {
220
220
  });
221
221
  }
222
222
 
223
- //Added if condition as sometimes when we run tests on spinaker it fails as image does not load and give unnecessary failure. Need to run these locally.
224
- if (view !== 'Correct answer view') {
225
- it('Accessibility of preview tab', { tags: 'a11y' }, () => {
226
- cy.checkAccessibility(singleSelectionGridPage.tableCell());
227
- });
228
- }
223
+ it('Accessibility of preview tab', { tags: 'a11y' }, () => {
224
+ cy.checkAccessibility(singleSelectionGridPage.tableCell());
225
+ });
229
226
  });
230
227
  });
231
228
  });
@@ -12,7 +12,7 @@ const css = Cypress.env('css');
12
12
  const selectors = {
13
13
  previewTab: () => cy.get('[data-ngie-testid="preview-tab"]'),
14
14
  editTab: () => cy.get('[data-ngie-testid="edit-tab"]'),
15
- headerTitle: () => cy.get('div[class*="HeaderComponentstyles__BlockLabel"]'),
15
+ headerTitle: () => cy.get('h1[class*="HeaderComponentstyles__BlockLabel"]'),
16
16
  cancelButton: () => cy.get('[class*="header-wrapper"] .ngie-button').eq(0),
17
17
  saveQuestionButton: () => cy.get('[class*="header-wrapper"] .ngie-button').eq(1),
18
18
  //Note: Adding visible as this is hidden in tools and does not exist in questions
@@ -0,0 +1,70 @@
1
+ import utilities from "../../support/helpers/utilities";
2
+ import { createQuestionBasePage } from "./createQuestionBasePage";
3
+ const css = Cypress.env('css');
4
+
5
+ const responseModeText = "Response mode";
6
+ const popupTitleText = "Change response mode?";
7
+ const popupContent = "Are you sure you want to switch from {from} to {to}? The correct answer you've chosen will be reset.";
8
+
9
+ const selectors = {
10
+ responseModeLabel: () => cy.get('[class*="response-mode-detail-label"]'),
11
+ responseModeToggleButtons: () => cy.get('[class*="response-mode-detail-label"] [class*="MuiToggleButtonGroup-grouped"]'),
12
+ responseModeToggleSelectedButton: () => cy.get(
13
+ '.edit-question-response-mode-wrapper [aria-pressed="true"]'
14
+ ),
15
+ getResponseModeToggleButton: (value) => cy.get(
16
+ `.edit-question-response-mode-wrapper [value="${value.toLowerCase()}"]`
17
+ ),
18
+ ResponseModeChangePopup: () => cy.get('.ngie-popover-container.change-response-mode-dialog'),
19
+ ResponseModeChangePopupTitle: () => cy.get('.change-response-mode-dialog .dialog-title-wrapper'),
20
+ ResponseModeChangePopupContent: () => cy.get('.change-response-mode-dialog .dialog-content'),
21
+ ResponseModeChangePopupReject: () => cy.get('.change-response-mode-dialog .reject-button'),
22
+ ResponseModeChangePopupAccept: () => cy.get('.change-response-mode-dialog .accept-button'),
23
+ opacityLabel: () => cy.get('[class*="OpacityWrapper"] [class*="Label"]').last(),
24
+ opacityInputField: () => cy.get('[class*="OpacityWrapper"] input[type="text"]').last(),
25
+ opacitySlider: () => cy.get('[class*="OpacityWrapper"] .MuiSlider-colorPrimary'),
26
+ };
27
+
28
+ const steps = {
29
+ selectResponseModetoggleButton: (mode) => {
30
+ responseModeToggle.getResponseModeToggleButton(mode).click();
31
+ },
32
+
33
+ confirmResponseModeChange: (accept) => {
34
+ if(accept) {
35
+ responseModeToggle.ResponseModeChangePopupAccept().click();
36
+ } else {
37
+ responseModeToggle.ResponseModeChangePopupReject().click();
38
+ }
39
+ },
40
+
41
+ checkQuestionIsLoadedWithResponseMode: (mode) => {
42
+ utilities.verifyElementVisibilityState(responseModeToggle.responseModeLabel(), 'visible');
43
+ utilities.verifyInnerText(responseModeToggle.responseModeLabel(), responseModeText);
44
+ utilities.verifyInnerText(createQuestionBasePage.headerTitle(), mode);
45
+ utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), mode);
46
+ },
47
+
48
+ changeResponseMode: (initialMode, changedMode) => {
49
+ utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), initialMode);
50
+ utilities.verifyInnerText(createQuestionBasePage.headerTitle(), initialMode);
51
+ responseModeToggle.steps.selectResponseModetoggleButton(changedMode);
52
+ utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), changedMode);
53
+ utilities.verifyInnerText(createQuestionBasePage.headerTitle(), changedMode);
54
+ },
55
+
56
+ warnResponseModeChange: (initialMode, changedMode) => {
57
+ responseModeToggle.steps.selectResponseModetoggleButton(changedMode);
58
+ utilities.verifyElementVisibilityState(responseModeToggle.ResponseModeChangePopup(), 'visible');
59
+ utilities.verifyInnerText(responseModeToggle.ResponseModeChangePopupTitle(), popupTitleText);
60
+ utilities.verifyInnerText(
61
+ responseModeToggle.ResponseModeChangePopupContent(),
62
+ popupContent.replace('{from}', initialMode).replace('{to}', changedMode)
63
+ );
64
+ }
65
+ };
66
+
67
+ export const responseModeToggle = {
68
+ ...selectors,
69
+ steps
70
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itemengine-cypress-automation",
3
- "version": "1.0.479-skipFewTestsDueToBugs-d877a1b.0",
3
+ "version": "1.0.480",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {