itemengine-cypress-automation 1.0.478-IEI-6720-3097ab1.0 → 1.0.480-IEI-6720-0f37564.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.
@@ -7,38 +7,46 @@ const options = ['Animal', 'Vehicle', 'Birds', 'Insects'];
7
7
  let itemReferenceID = '';
8
8
 
9
9
  describe('Create item page - Multiple selection : Response mode toggle', () => {
10
- describe('Test response mode toggle contents and Functionality', () => {
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
- });
10
+ before(() => {
11
+ cy.loginAs('admin');
12
+ multipleSelectionPage.steps.navigateToCreateQuestion('multiple selection');
13
+ cy.barsPreLoaderWait();
14
+ multipleSelectionPage.steps.addQuestionInstructions();
15
+ multipleSelectionPage.steps.addInputToOptionsInputField(options);
16
+ multipleSelectionPage.steps.allotPoints(20);
17
+ });
19
18
 
20
- after(() => {
21
- cy.deleteItem(itemReferenceID);
22
- cy.logout();
23
- });
24
-
19
+ after(() => {
20
+ cy.deleteItem(itemReferenceID);
21
+ cy.logout();
22
+ });
23
+
24
+ describe('Test response mode toggle functionality while authoring a question', () => {
25
25
  it('When no answer is selected, then user should be able to change responseMode', () => {
26
- responseModeToggle.tests.shouldChangeResponseMode('Multiple selection', 'Single selection');
26
+ responseModeToggle.steps.changeResponseMode('Multiple selection', 'Single selection');
27
27
  });
28
28
 
29
- it('When answer is selected, then user should not be able to change responseMode', () => {
30
- responseModeToggle.tests.shouldChangeResponseMode('Single selection', 'Multiple selection');
29
+ it('When answer is selected, then upon changing the response Mode a warning popup should be displayed', () => {
30
+ responseModeToggle.steps.changeResponseMode('Single selection', 'Multiple selection');
31
31
  multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
32
- responseModeToggle.tests.shouldWarnResponseModeChange('Multiple selection', 'Single selection', false);
32
+ responseModeToggle.steps.warnResponseModeChange('Multiple selection', 'Single selection');
33
+ });
34
+
35
+ it('When user rejects the response mode change in the warning popup, then the question type should remain unchanged', () => {
36
+ responseModeToggle.steps.confirmResponseModeChange(false);
37
+ responseModeToggle.steps.checkQuestionIsLoadedWithResponseMode('Multiple selection');
33
38
  });
34
39
 
35
- it('When response mode change is accepted, then change response mode should change after accepting', () => {
36
- responseModeToggle.tests.shouldWarnResponseModeChange('Multiple selection', 'Single selection', true);
37
- responseModeToggle.tests.shouldChangeResponseMode('Single selection', 'Multiple selection');
40
+ 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', () => {
41
+ responseModeToggle.steps.warnResponseModeChange('Multiple selection', 'Single selection');
42
+ responseModeToggle.steps.confirmResponseModeChange(true);
43
+ responseModeToggle.steps.changeResponseMode('Single selection', 'Multiple selection');
38
44
  multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
39
45
  });
40
-
41
- it('When an item is saved and it is edited to different have different response Mode, then user should be able to change response mode of a saved item and save with different question type', () => {
46
+ });
47
+
48
+ describe('Test response mode toggle functionality on saved item', () => {
49
+ 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', () => {
42
50
  multipleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
43
51
  cy.wait(5000).then(() => {
44
52
  itemPreviewPage.referenceID().invoke('text').then(($text) => {
@@ -49,19 +57,13 @@ describe('Create item page - Multiple selection : Response mode toggle', () => {
49
57
  })
50
58
  });
51
59
  createItemPage.steps.editItem();
52
- responseModeToggle.tests.shouldWarnResponseModeChange('Multiple selection', 'Single selection', true);
60
+ responseModeToggle.steps.warnResponseModeChange('Multiple selection', 'Single selection');
61
+ responseModeToggle.steps.confirmResponseModeChange(true);
53
62
  singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
54
63
  multipleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
55
- cy.wait(5000).then(() => {
56
- itemPreviewPage.referenceID().invoke('text').then(($text) => {
57
- itemReferenceID = $text;
58
- cy.visit(`/item-engine/demo/edit-item/${
59
- utilities.base64Encoding(itemReferenceID)
60
- }`);
61
- })
62
- });
64
+ cy.wait(5000);
63
65
  createItemPage.steps.editItem();
64
- responseModeToggle.tests.shouldloadQuestionWithResponseMode('Single selection');
66
+ responseModeToggle.steps.checkQuestionIsLoadedWithResponseMode('Single selection');
65
67
  });
66
68
  });
67
69
  });
@@ -7,38 +7,46 @@ const options = ['Animal', 'Vehicle', 'Birds', 'Insects'];
7
7
  let itemReferenceID = '';
8
8
 
9
9
  describe('Create item page - Single selection : Response mode toggle', () => {
10
- describe('Test response mode toggle contents and Functionality', () => {
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
- });
10
+ before(() => {
11
+ cy.loginAs('admin');
12
+ singleSelectionPage.steps.navigateToCreateQuestion('single selection');
13
+ cy.barsPreLoaderWait();
14
+ singleSelectionPage.steps.addQuestionInstructions();
15
+ singleSelectionPage.steps.addInputToOptionsInputField(options);
16
+ singleSelectionPage.steps.allotPoints(20);
17
+ });
19
18
 
20
- after(() => {
21
- cy.deleteItem(itemReferenceID);
22
- cy.logout();
23
- });
24
-
19
+ after(() => {
20
+ cy.deleteItem(itemReferenceID);
21
+ cy.logout();
22
+ });
23
+
24
+ describe('Test response mode toggle functionality while authoring a question', () => {
25
25
  it('When no answer is selected, then user should be able to change responseMode', () => {
26
- responseModeToggle.tests.shouldChangeResponseMode('Single selection', 'Multiple selection');
26
+ responseModeToggle.steps.changeResponseMode('Single selection', 'Multiple selection');
27
27
  });
28
28
 
29
- it('When answer is selected, then user should not be able to change responseMode', () => {
30
- responseModeToggle.tests.shouldChangeResponseMode('Multiple selection', 'Single selection');
29
+ it('When answer is selected, then upon changing the response Mode a warning popup should be displayed', () => {
30
+ responseModeToggle.steps.changeResponseMode('Multiple selection', 'Single selection');
31
31
  singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
32
- responseModeToggle.tests.shouldWarnResponseModeChange('Single selection', 'Multiple selection', false);
32
+ responseModeToggle.steps.warnResponseModeChange('Single selection', 'Multiple selection');
33
+ });
34
+
35
+ it('When user rejects the response mode change in the warning popup, then the question type should remain unchanged', () => {
36
+ responseModeToggle.steps.confirmResponseModeChange(false);
37
+ responseModeToggle.steps.checkQuestionIsLoadedWithResponseMode('Single selection');
33
38
  });
34
39
 
35
- it('When response mode change is accepted, then change response mode should change after accepting', () => {
36
- responseModeToggle.tests.shouldWarnResponseModeChange('Single selection', 'Multiple selection', true);
37
- responseModeToggle.tests.shouldChangeResponseMode('Multiple selection', 'Single selection');
40
+ 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', () => {
41
+ responseModeToggle.steps.warnResponseModeChange('Single selection', 'Multiple selection');
42
+ responseModeToggle.steps.confirmResponseModeChange(true);
43
+ responseModeToggle.steps.changeResponseMode('Multiple selection', 'Single selection');
38
44
  singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
39
45
  });
40
-
41
- it('When an item is saved and it is edited to different have different response Mode, then user should be able to change response mode of a saved item and save with different question type', () => {
46
+ });
47
+
48
+ describe('Test response mode toggle functionality on saved item', () => {
49
+ 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', () => {
42
50
  singleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
43
51
  cy.wait(5000).then(() => {
44
52
  itemPreviewPage.referenceID().invoke('text').then(($text) => {
@@ -49,19 +57,13 @@ describe('Create item page - Single selection : Response mode toggle', () => {
49
57
  })
50
58
  });
51
59
  createItemPage.steps.editItem();
52
- responseModeToggle.tests.shouldWarnResponseModeChange('Single selection', 'Multiple selection', true);
60
+ responseModeToggle.steps.warnResponseModeChange('Single selection', 'Multiple selection');
61
+ responseModeToggle.steps.confirmResponseModeChange(true);
53
62
  multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
54
63
  singleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
55
- cy.wait(5000).then(() => {
56
- itemPreviewPage.referenceID().invoke('text').then(($text) => {
57
- itemReferenceID = $text;
58
- cy.visit(`/item-engine/demo/edit-item/${
59
- utilities.base64Encoding(itemReferenceID)
60
- }`);
61
- })
62
- });
64
+ cy.wait(5000);
63
65
  createItemPage.steps.editItem();
64
- responseModeToggle.tests.shouldloadQuestionWithResponseMode('Multiple selection');
66
+ responseModeToggle.steps.checkQuestionIsLoadedWithResponseMode('Multiple selection');
65
67
  });
66
68
  });
67
69
  });
@@ -16,10 +16,10 @@ const selectors = {
16
16
  `.edit-question-response-mode-wrapper [value="${value.toLowerCase()}"]`
17
17
  ),
18
18
  ResponseModeChangePopup: () => cy.get('.ngie-popover-container.change-response-mode-dialog'),
19
- ResponseModeChangePopupTitle: () => cy.get('.ngie-popover-container.change-response-mode-dialog .dialog-title-wrapper'),
20
- ResponseModeChangePopupContent: () => cy.get('.ngie-popover-container.change-response-mode-dialog .dialog-content'),
21
- ResponseModeChangePopupReject: () => cy.get('.ngie-popover-container.change-response-mode-dialog .reject-button'),
22
- ResponseModeChangePopupAccept: () => cy.get('.ngie-popover-container.change-response-mode-dialog .accept-button'),
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
23
  opacityLabel: () => cy.get('[class*="OpacityWrapper"] [class*="Label"]').last(),
24
24
  opacityInputField: () => cy.get('[class*="OpacityWrapper"] input[type="text"]').last(),
25
25
  opacitySlider: () => cy.get('[class*="OpacityWrapper"] .MuiSlider-colorPrimary'),
@@ -27,33 +27,33 @@ const selectors = {
27
27
 
28
28
  const steps = {
29
29
  selectResponseModetoggleButton: (mode) => {
30
- selectors.getResponseModeToggleButton(mode).click();
30
+ responseModeToggle.getResponseModeToggleButton(mode).click();
31
31
  },
32
+
32
33
  confirmResponseModeChange: (accept) => {
33
34
  if(accept) {
34
- selectors.ResponseModeChangePopupAccept().click();
35
+ responseModeToggle.ResponseModeChangePopupAccept().click();
35
36
  } else {
36
- selectors.ResponseModeChangePopupReject().click();
37
+ responseModeToggle.ResponseModeChangePopupReject().click();
37
38
  }
38
- }
39
- }
40
-
41
- const tests = {
39
+ },
42
40
 
43
- shouldloadQuestionWithResponseMode: (mode) => {
41
+ checkQuestionIsLoadedWithResponseMode: (mode) => {
44
42
  utilities.verifyElementVisibilityState(responseModeToggle.responseModeLabel(), 'visible');
45
43
  utilities.verifyInnerText(responseModeToggle.responseModeLabel(), responseModeText);
46
44
  utilities.verifyInnerText(createQuestionBasePage.headerTitle(), mode);
47
45
  utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), mode);
48
46
  },
49
- shouldChangeResponseMode: (initialMode, changedMode) => {
47
+
48
+ changeResponseMode: (initialMode, changedMode) => {
50
49
  utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), initialMode);
51
50
  utilities.verifyInnerText(createQuestionBasePage.headerTitle(), initialMode);
52
51
  responseModeToggle.steps.selectResponseModetoggleButton(changedMode);
53
52
  utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), changedMode);
54
53
  utilities.verifyInnerText(createQuestionBasePage.headerTitle(), changedMode);
55
54
  },
56
- shouldWarnResponseModeChange: (initialMode, changedMode, acceptChange) => {
55
+
56
+ warnResponseModeChange: (initialMode, changedMode) => {
57
57
  responseModeToggle.steps.selectResponseModetoggleButton(changedMode);
58
58
  utilities.verifyElementVisibilityState(responseModeToggle.ResponseModeChangePopup(), 'visible');
59
59
  utilities.verifyInnerText(responseModeToggle.ResponseModeChangePopupTitle(), popupTitleText);
@@ -61,12 +61,10 @@ const tests = {
61
61
  responseModeToggle.ResponseModeChangePopupContent(),
62
62
  popupContent.replace('{from}', initialMode).replace('{to}', changedMode)
63
63
  );
64
- responseModeToggle.steps.confirmResponseModeChange(acceptChange);
65
64
  }
66
65
  };
67
66
 
68
67
  export const responseModeToggle = {
69
68
  ...selectors,
70
- tests,
71
69
  steps
72
70
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "itemengine-cypress-automation",
3
- "version": "1.0.478-IEI-6720-3097ab1.0",
3
+ "version": "1.0.480-IEI-6720-0f37564.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {