itemengine-cypress-automation 1.0.474-IEI-6720-3277ec2.0 → 1.0.474-IEI-6793-1081b2c.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.
- package/cypress/pages/components/createQuestionBasePage.js +1 -1
- package/deploy/audioResponseQuestion/service.yaml +22 -0
- package/il.yaml +20 -2
- package/package.json +1 -1
- package/cypress/e2e/ILC/MultipleSelection/responseModeToggle.js +0 -70
- package/cypress/e2e/ILC/SingleSelection/responseModeToggle.js +0 -70
- package/cypress/pages/components/responseModeToggle.js +0 -72
@@ -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('div[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,22 @@
|
|
1
|
+
global:
|
2
|
+
name: item-engine-ui-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:
|
package/package.json
CHANGED
@@ -1,70 +0,0 @@
|
|
1
|
-
import { createItemPage, itemPreviewPage, multipleSelectionPage, singleSelectionPage } from "../../../pages";
|
2
|
-
import utilities from "../../../support/helpers/utilities";
|
3
|
-
import { responseModeToggle } from "../../../pages/components/responseModeToggle";
|
4
|
-
|
5
|
-
const options = ['Animal', 'Vehicle', 'Birds', 'Insects'];
|
6
|
-
|
7
|
-
let itemReferenceID = '';
|
8
|
-
|
9
|
-
describe('Multiple selection - Response mode toggle', () => {
|
10
|
-
describe('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
|
-
it('should load multiple selection create page with responseMode toggle button', () => {
|
26
|
-
});
|
27
|
-
|
28
|
-
it('should be able to change responseMode when no answer is provided', () => {
|
29
|
-
responseModeToggle.tests.shouldChangeResponseMode('Multiple selection', 'Single selection');
|
30
|
-
});
|
31
|
-
|
32
|
-
it('should not be able to change responseMode when an answer is provided', () => {
|
33
|
-
responseModeToggle.tests.shouldChangeResponseMode('Single selection', 'Multiple selection');
|
34
|
-
multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
|
35
|
-
responseModeToggle.tests.shouldWarnResponseModeChange('Multiple selection', 'Single selection', false);
|
36
|
-
});
|
37
|
-
|
38
|
-
it('should be able to change response mode when warning popup is accepted', () => {
|
39
|
-
responseModeToggle.tests.shouldWarnResponseModeChange('Multiple selection', 'Single selection', true);
|
40
|
-
responseModeToggle.tests.shouldChangeResponseMode('Single selection', 'Multiple selection');
|
41
|
-
multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
|
42
|
-
});
|
43
|
-
|
44
|
-
it('should be able to change response mode of a saved item and save with different question type', () => {
|
45
|
-
multipleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
|
46
|
-
cy.wait(5000).then(() => {
|
47
|
-
itemPreviewPage.referenceID().invoke('text').then(($text) => {
|
48
|
-
itemReferenceID = $text;
|
49
|
-
cy.visit(`/item-engine/demo/edit-item/${
|
50
|
-
utilities.base64Encoding(itemReferenceID)
|
51
|
-
}`);
|
52
|
-
})
|
53
|
-
});
|
54
|
-
createItemPage.steps.editItem();
|
55
|
-
responseModeToggle.tests.shouldWarnResponseModeChange('Multiple selection', 'Single selection', true);
|
56
|
-
singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
|
57
|
-
multipleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
|
58
|
-
cy.wait(5000).then(() => {
|
59
|
-
itemPreviewPage.referenceID().invoke('text').then(($text) => {
|
60
|
-
itemReferenceID = $text;
|
61
|
-
cy.visit(`/item-engine/demo/edit-item/${
|
62
|
-
utilities.base64Encoding(itemReferenceID)
|
63
|
-
}`);
|
64
|
-
})
|
65
|
-
});
|
66
|
-
createItemPage.steps.editItem();
|
67
|
-
responseModeToggle.tests.shouldloadQuestionWithResponseMode('Single selection');
|
68
|
-
});
|
69
|
-
});
|
70
|
-
});
|
@@ -1,70 +0,0 @@
|
|
1
|
-
import { createItemPage, itemPreviewPage, singleSelectionPage, multipleSelectionPage } from "../../../pages";
|
2
|
-
import utilities from "../../../support/helpers/utilities";
|
3
|
-
import { responseModeToggle } from "../../../pages/components/responseModeToggle";
|
4
|
-
|
5
|
-
const options = ['Animal', 'Vehicle', 'Birds', 'Insects'];
|
6
|
-
|
7
|
-
let itemReferenceID = '';
|
8
|
-
|
9
|
-
describe('Single selection - Response mode toggle', () => {
|
10
|
-
describe('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
|
-
it('should load Single selection create page with responseMode toggle button', () => {
|
26
|
-
});
|
27
|
-
|
28
|
-
it('should be able to change responseMode when no answer is provided', () => {
|
29
|
-
responseModeToggle.tests.shouldChangeResponseMode('Single selection', 'Multiple selection');
|
30
|
-
});
|
31
|
-
|
32
|
-
it('should not be able to change responseMode when an answer is provided', () => {
|
33
|
-
responseModeToggle.tests.shouldChangeResponseMode('Multiple selection', 'Single selection');
|
34
|
-
singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
|
35
|
-
responseModeToggle.tests.shouldWarnResponseModeChange('Single selection', 'Multiple selection', false);
|
36
|
-
});
|
37
|
-
|
38
|
-
it('should be able to change response mode when warning popup is accepted', () => {
|
39
|
-
responseModeToggle.tests.shouldWarnResponseModeChange('Single selection', 'Multiple selection', true);
|
40
|
-
responseModeToggle.tests.shouldChangeResponseMode('Multiple selection', 'Single selection');
|
41
|
-
singleSelectionPage.steps.checkOptionInSpecifyCorrectAnswerSection(1);
|
42
|
-
});
|
43
|
-
|
44
|
-
it('should be able to change response mode of a saved item and save with different question type', () => {
|
45
|
-
singleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
|
46
|
-
cy.wait(5000).then(() => {
|
47
|
-
itemPreviewPage.referenceID().invoke('text').then(($text) => {
|
48
|
-
itemReferenceID = $text;
|
49
|
-
cy.visit(`/item-engine/demo/edit-item/${
|
50
|
-
utilities.base64Encoding(itemReferenceID)
|
51
|
-
}`);
|
52
|
-
})
|
53
|
-
});
|
54
|
-
createItemPage.steps.editItem();
|
55
|
-
responseModeToggle.tests.shouldWarnResponseModeChange('Single selection', 'Multiple selection', true);
|
56
|
-
multipleSelectionPage.steps.checkOptionsCheckboxInSpecifyCorrectAnswerSection(1);
|
57
|
-
singleSelectionPage.steps.saveAQuestionAndVerifySnackbar();
|
58
|
-
cy.wait(5000).then(() => {
|
59
|
-
itemPreviewPage.referenceID().invoke('text').then(($text) => {
|
60
|
-
itemReferenceID = $text;
|
61
|
-
cy.visit(`/item-engine/demo/edit-item/${
|
62
|
-
utilities.base64Encoding(itemReferenceID)
|
63
|
-
}`);
|
64
|
-
})
|
65
|
-
});
|
66
|
-
createItemPage.steps.editItem();
|
67
|
-
responseModeToggle.tests.shouldloadQuestionWithResponseMode('Multiple selection');
|
68
|
-
});
|
69
|
-
});
|
70
|
-
});
|
@@ -1,72 +0,0 @@
|
|
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('.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'),
|
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
|
-
selectors.getResponseModeToggleButton(mode).click();
|
31
|
-
},
|
32
|
-
confirmResponseModeChange: (accept) => {
|
33
|
-
if(accept) {
|
34
|
-
selectors.ResponseModeChangePopupAccept().click();
|
35
|
-
} else {
|
36
|
-
selectors.ResponseModeChangePopupReject().click();
|
37
|
-
}
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
const tests = {
|
42
|
-
|
43
|
-
shouldloadQuestionWithResponseMode: (mode) => {
|
44
|
-
utilities.verifyElementVisibilityState(responseModeToggle.responseModeLabel(), 'visible');
|
45
|
-
utilities.verifyInnerText(responseModeToggle.responseModeLabel(), responseModeText);
|
46
|
-
utilities.verifyInnerText(createQuestionBasePage.headerTitle(), mode);
|
47
|
-
utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), mode);
|
48
|
-
},
|
49
|
-
shouldChangeResponseMode: (initialMode, changedMode) => {
|
50
|
-
utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), initialMode);
|
51
|
-
utilities.verifyInnerText(createQuestionBasePage.headerTitle(), initialMode);
|
52
|
-
responseModeToggle.steps.selectResponseModetoggleButton(changedMode);
|
53
|
-
utilities.verifyInnerText(responseModeToggle.responseModeToggleSelectedButton(), changedMode);
|
54
|
-
utilities.verifyInnerText(createQuestionBasePage.headerTitle(), changedMode);
|
55
|
-
},
|
56
|
-
shouldWarnResponseModeChange: (initialMode, changedMode, acceptChange) => {
|
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
|
-
responseModeToggle.steps.confirmResponseModeChange(acceptChange);
|
65
|
-
}
|
66
|
-
};
|
67
|
-
|
68
|
-
export const responseModeToggle = {
|
69
|
-
...selectors,
|
70
|
-
tests,
|
71
|
-
steps
|
72
|
-
};
|