itemengine-cypress-automation 1.0.483-skipFewTestsDueToBugs-b0631a8.0 → 1.0.483
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.
- package/cypress/e2e/ILC/MultipleSelection/responseModeToggle.js +72 -0
- package/cypress/e2e/ILC/SingleSelection/responseModeToggle.js +72 -0
- package/cypress/e2e/ILC/chartsDotsPlot/previewContentsForAllViews.smoke.js +1 -0
- package/cypress/pages/components/createQuestionBasePage.js +1 -1
- package/cypress/pages/components/responseModeToggle.js +70 -0
- package/deploy/audioResponseQuestion/service.yaml +22 -0
- package/il.yaml +20 -2
- package/package.json +1 -1
@@ -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
|
+
});
|
@@ -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
|
+
});
|
@@ -322,6 +322,7 @@ describe('Create item page: Charts - Dot - Preview contents in all views', () =>
|
|
322
322
|
});
|
323
323
|
|
324
324
|
it('When user hovers on the enabled redo button, then tooltip \'Redo\' should be displayed', () => {
|
325
|
+
utilities.triggerMouseout(chartsDotPlotPage.controlOptionsPreviewTab(controlOptions[0]));
|
325
326
|
chartsDotPlotPage.controlOptionsPreviewTab(controlOptions[1])
|
326
327
|
.verifyTooltip('Redo');
|
327
328
|
});
|
@@ -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('
|
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
|
+
};
|
@@ -0,0 +1,22 @@
|
|
1
|
+
global:
|
2
|
+
name: itemengine-audio-response
|
3
|
+
type: job
|
4
|
+
autoDeploy:
|
5
|
+
enabled: true
|
6
|
+
highestEnvironment: dev
|
7
|
+
|
8
|
+
deployment:
|
9
|
+
activeDeadlineSeconds: 7200
|
10
|
+
architecture: arm64
|
11
|
+
backoffLimit: 25
|
12
|
+
completions: 7
|
13
|
+
parallelism: 7
|
14
|
+
image:
|
15
|
+
cmd: /ie-e2e/deploy/audioResponseQuestion/run.sh
|
16
|
+
resources:
|
17
|
+
limits:
|
18
|
+
memory: 8446Mi
|
19
|
+
cpu: 5000m
|
20
|
+
requests:
|
21
|
+
memory: 4096Mi
|
22
|
+
cpu: 2000m
|
package/il.yaml
CHANGED
@@ -1,11 +1,29 @@
|
|
1
1
|
# yaml-language-server: $schema=https://schema-validator.imaginelearning.tech/il.yaml/v2.0.json
|
2
2
|
|
3
3
|
meta:
|
4
|
-
owner:
|
4
|
+
owner: itemengine
|
5
5
|
trackingId: 87b2338d-3ea4-45cc-bd63-73d1f4a73a6c
|
6
|
-
|
6
|
+
system: ngie
|
7
|
+
domain: content
|
8
|
+
|
7
9
|
# otk:
|
8
10
|
|
11
|
+
otk:
|
12
|
+
enabled: true
|
13
|
+
build:
|
14
|
+
platform: arm64
|
15
|
+
linuxDistribution: alpine
|
16
|
+
language: node
|
17
|
+
languageVersion: "20"
|
18
|
+
deployables:
|
19
|
+
- ./deploy/audioResponseQuestion/service.yaml
|
20
|
+
deployConfig:
|
21
|
+
environments:
|
22
|
+
- dev
|
23
|
+
- qa
|
24
|
+
- staging
|
25
|
+
- prod
|
26
|
+
|
9
27
|
# catalog:
|
10
28
|
|
11
29
|
spartanzBot:
|