itemengine-cypress-automation 1.0.525-IEI-5333-1de7123.0 → 1.0.525-IEI-6793-v-5798178.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/Dockerfile +1 -0
- package/cypress/pages/audioPlayerPage.js +2 -2
- package/cypress/pages/components/additionalSettingsPanel.js +3 -3
- package/cypress/pages/components/essayResponseCommonComponents.js +2 -2
- package/cypress/pages/components/gridQuestionCommonComponent.js +2 -2
- package/cypress/pages/components/questionInputFieldComponent.js +1 -1
- package/cypress/pages/components/questionInstructionsComponent.js +1 -1
- package/cypress/pages/contentBlocksPage.js +1 -1
- package/cypress/pages/essayResponsePage.js +1 -1
- package/cypress/pages/textSelectionPage.js +1 -1
- package/il.yaml +1 -16
- package/package.json +1 -1
- package/run.sh +2 -0
- package/scripts/run-status-check.mjs +1 -1
- package/scripts/sorry-cypress.mjs +21 -2
- package/service.yaml +80 -0
package/Dockerfile
CHANGED
@@ -61,7 +61,7 @@ const selectors = {
|
|
61
61
|
playAttemptsLimitInputField: () => cy.get('.freeResponseAudioFormTextInput input'),
|
62
62
|
studentViewSettingsLabel: () => cy.get('[class*="AudioPlayerstyles__TranscriptLabelWrapper"]').eq(0),
|
63
63
|
audioOverviewLabel: () => cy.get('.additional-settings-label'),
|
64
|
-
audioOverviewInputField: () => cy.get('[
|
64
|
+
audioOverviewInputField: () => cy.get('[title="Description"]'),
|
65
65
|
transcriptLabel: () => cy.get('[class*="TranscriptWrapper"] [class*="AudioPlayerstyles__TranscriptLabelWrapper"]'),
|
66
66
|
uploadTranscriptUploadLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(2),
|
67
67
|
uploadTranscriptFileNameLabel: () => cy.get('[class*="AudioPlayerstyles__AudioLabel"]').eq(3),
|
@@ -72,7 +72,7 @@ const selectors = {
|
|
72
72
|
transcriptFileUploadProgressBar: () => cy.get('.audio-player-form-progressbar'),
|
73
73
|
transcriptInputFieldLabel: () => cy.get('.additional-settings-label').eq(1),
|
74
74
|
deleteTranscriptButton: () => cy.get('[aria-label*="Delete"]'),
|
75
|
-
transcriptCKeditorInputField: () => cy.get('div[contenteditable="true"][aria-label="Transcript"]'),
|
75
|
+
transcriptCKeditorInputField: () => cy.get('div[contenteditable="true"][aria-label="Transcript"][title="Transcript"]'),
|
76
76
|
//Preview tab
|
77
77
|
volumeControlButton: () => cy.get('.audio-player-volume-wrapper .audio-player-icon'),
|
78
78
|
playbackPlayButton: () => cy.get('.audio-resource-preview-wrapper-without-print button[aria-label="Play"]'),
|
@@ -10,9 +10,9 @@ const selectors = {
|
|
10
10
|
additionalSettingsTeacherGuidelinesLabel: () => cy.get('.additional-settings-detail-wrapper .additional-settings-label').eq(0),
|
11
11
|
additionalSettingsSampleAnswerLabel: () => cy.get('.additional-settings-detail-wrapper .additional-settings-label').eq(1),
|
12
12
|
additionalSettingsAcknowledgementsLabel: () => cy.get('.additional-settings-detail-wrapper .additional-settings-label').eq(2),
|
13
|
-
additionalSettingsTeacherGuidelinesInputField: () => cy.get('[
|
14
|
-
additionalSettingsSampleAnswerInputField: () => cy.get('[
|
15
|
-
additionalSettingsAcknowledgementsInputField: () => cy.get('[
|
13
|
+
additionalSettingsTeacherGuidelinesInputField: () => cy.get('[title="Teacher Scoring Guidelines"]'),
|
14
|
+
additionalSettingsSampleAnswerInputField: () => cy.get('[title="Sample Answer"]'),
|
15
|
+
additionalSettingsAcknowledgementsInputField: () => cy.get('[title="acknowledgements and references"]'),
|
16
16
|
//Font-size dropdown
|
17
17
|
fontSizeLabel: () => cy.get('#Font-Size-dropdown-label'),
|
18
18
|
fontSizeDropdown: () => cy.get('#Font-Size-select'),
|
@@ -72,7 +72,7 @@ const selectors = {
|
|
72
72
|
wordCountWrapper: () => cy.get('[class*="indexstyle__WordCharCountWrapper"]'),
|
73
73
|
|
74
74
|
//Preview tab
|
75
|
-
responseField: () => cy.get('[
|
75
|
+
responseField: () => cy.get('[title="Enter your response to the question here."]'),
|
76
76
|
responseFieldWordCount: () => cy.get('[class*="InputLimitLabelWrapper"]'),
|
77
77
|
responseFieldEquation: () => cy.get('.cke_widget_element'),
|
78
78
|
responseFieldText: () => cy.get('[class*="EssayResponseGradingViewstyle__GradingViewWrapper"] .question-text-wrapper'),
|
@@ -82,7 +82,7 @@ const selectors = {
|
|
82
82
|
//Additional settings, These are old selectors. Need to update them along with additional settings file revamp
|
83
83
|
studentResponseAndLayoutLabel: () => cy.get('.layout-text'),
|
84
84
|
predefinedTextLabel: () => cy.get('[class*="EssayResponsestyles__PropertyLabel"]'),
|
85
|
-
predefinedTextInputField: () => cy.get('[
|
85
|
+
predefinedTextInputField: () => cy.get('[title="Predefined Text"]'),
|
86
86
|
placeholderTextLabel: () => cy.get('.place-holder-text .text-label'),
|
87
87
|
placeholderTextInputField: () => cy.get('[aria-label="Placeholder Text"]'),
|
88
88
|
minHeightLabel: () => cy.get('.size-wrapper .text-label').eq(0),
|
@@ -34,8 +34,8 @@ const selectors = {
|
|
34
34
|
editCellPropertyRow: () => gridQuestionCommonComponent.editCellPropertyTableWrapper().find('[class*="wrapper-row"]'),
|
35
35
|
editCellPropertyTableLeftPaginationButton: () => cy.get('.authoring-selection-grid [class*="SelectionGridstyles__PaginationLeftControl"]'),
|
36
36
|
editCellPropertyTableRightPaginationButton: () => cy.get('.authoring-selection-grid [class*="SelectionGridstyles__PaginationRightControl"]'),
|
37
|
-
cellPropertyInputField: () => cy.get('[
|
38
|
-
optionCellPropertyInputField: () => cy.get('[
|
37
|
+
cellPropertyInputField: () => cy.get('[title*="text"], [class*="SelectionGridstyles__AuthoringHeadingWrapper"] input, [class*="SelectionGridstyles"] input'),
|
38
|
+
optionCellPropertyInputField: () => cy.get('[title="Option text or image..."],[placeholder="Option text or image..."]'),
|
39
39
|
tableRowSpecifyCorrectAnswerSection: () => cy.get('.correct-answer-accordion [class*="wrapper-row"]'),
|
40
40
|
tableRowPreviewTab: () => cy.get('[class*="question-preview-wrapper"] [class*="wrapper-row"]'),
|
41
41
|
tableRowHeadersSpecifyCorrectAnswerSection: () => cy.get('.set-correct-ans-selection-grid .cell-content-text'),
|
@@ -3,7 +3,7 @@ import { commonComponents } from "./commonComponents";
|
|
3
3
|
|
4
4
|
const selectors = {
|
5
5
|
questionLabel: () => cy.get('.cloze-with-text-question-wrapper .title-casing'),
|
6
|
-
questionInputField: () => cy.get('.cloze-with-text-question-wrapper [
|
6
|
+
questionInputField: () => cy.get('.cloze-with-text-question-wrapper [title="question"]'),
|
7
7
|
responseArea: () => cy.get('.cke_widget_wrapper_add_response_element'),
|
8
8
|
responseAreaCloseButton: () => cy.get('.add_response_close'),
|
9
9
|
addResponseAreaButton: () => cy.get('.add-response-token-wrapper-cls button'),
|
@@ -5,7 +5,7 @@ const css = Cypress.env('css');
|
|
5
5
|
|
6
6
|
const selectors = {
|
7
7
|
questionInstructionsLabelEditTab: () => cy.get('.edit-question-instruction-label'),
|
8
|
-
questionInstructionsInputField: () => cy.get('[
|
8
|
+
questionInstructionsInputField: () => cy.get('[title="Question Instructions"]'),
|
9
9
|
questionInstructionsText: () => cy.get('.question-instruction'),
|
10
10
|
questionInstructionsWrapper: () => cy.get('.edit-question-instruction-wrapper'),
|
11
11
|
questionInstructionsTextPreviewTab: () => cy.get('.question-instruction:visible'),
|
@@ -15,7 +15,7 @@ const selectors = {
|
|
15
15
|
groupDividerWrapper: () => cy.get('.body-group-divider'),
|
16
16
|
textBlockWrapper: () => cy.get('.body-text-block'),
|
17
17
|
textBlockLabel: () => cy.get('.body-section-header'),
|
18
|
-
textBlockInputField: () => cy.get('[
|
18
|
+
textBlockInputField: () => cy.get('[title="Enter text block"]'),
|
19
19
|
bodyLabel: () => cy.get('.options-label'),
|
20
20
|
bodyWrapper: () => cy.get('.edit-mcq-options-wrapper'),
|
21
21
|
bodySubTitleLabel: () => cy.get('.body-section-header'),
|
@@ -129,7 +129,7 @@ const hyperlinkDialogBox = {
|
|
129
129
|
hyperlinkDialogboxURLInputField: () => essayResponsePage.hyperlinkDialogBox().find('input[class*="cke_dialog_ui_input_text"]').eq(1),
|
130
130
|
hyperlinkDialogboxButtonOk: () => cy.get('.action-button-wrapper [role="button"]').eq(1),
|
131
131
|
hyperlinkDialogboxButtonCancel: () => cy.get('.action-button-wrapper [role="button"]').eq(0),
|
132
|
-
previewInputFieldHyperlinkText: () => cy.get('div[
|
132
|
+
previewInputFieldHyperlinkText: () => cy.get('div[title="Enter your response to the question here."] a'),
|
133
133
|
}
|
134
134
|
|
135
135
|
const steps = {
|
@@ -25,7 +25,7 @@ const selectors = {
|
|
25
25
|
...showAvailableOptionsToStudents,
|
26
26
|
...showStudentMaximumNumberOfPossibleSelections,
|
27
27
|
questionLabel: () => cy.get('[class*="Highlightstyles__QuestionComponentWrapper"] .title-casing'),
|
28
|
-
questionInputField: () => cy.get('[class*="Highlightstyles__QuestionComponentWrapper"] [
|
28
|
+
questionInputField: () => cy.get('[class*="Highlightstyles__QuestionComponentWrapper"] [title="Question"]'),
|
29
29
|
specifyPossibleOptionsTextFieldWrapper: () => cy.get('[class*="Highlightstyles__HighLightWrapper"] .question-text-wrapper'),
|
30
30
|
textSelectionStyleLabel: () => cy.get('.text-selection-style .options-label'),
|
31
31
|
textSelectionStyleButtonLabel: (ariaLabel = null) => {
|
package/il.yaml
CHANGED
@@ -13,22 +13,7 @@ otk:
|
|
13
13
|
languageVersion: "20"
|
14
14
|
analysis: false
|
15
15
|
deployables:
|
16
|
-
- ./
|
17
|
-
- ./deploy/DNDIntoCategoriesQuestion/service.yaml
|
18
|
-
- ./deploy/dataApi/service.yaml
|
19
|
-
- ./deploy/e2e/service.yaml
|
20
|
-
- ./deploy/essayQuestion/service.yaml
|
21
|
-
- ./deploy/feedbackScaleQuestion/service.yaml
|
22
|
-
- ./deploy/fillInTheGapsQuestion/service.yaml
|
23
|
-
- ./deploy/graphingQuestion/service.yaml
|
24
|
-
- ./deploy/imageHighlightQuestion/service.yaml
|
25
|
-
- ./deploy/listOrderingQuestion/service.yaml
|
26
|
-
- ./deploy/migration/service.yaml
|
27
|
-
- ./deploy/multipleSelectionQuestion/service.yaml
|
28
|
-
- ./deploy/resourcesAndToolsQuestion/service.yaml
|
29
|
-
- ./deploy/smoke/service.yaml
|
30
|
-
- ./deploy/textEntryMathQuestion/service.yaml
|
31
|
-
- ./deploy/thinkSphere/service.yaml
|
16
|
+
- ./service.yaml
|
32
17
|
deployConfig:
|
33
18
|
environments:
|
34
19
|
- dev
|
package/package.json
CHANGED
package/run.sh
ADDED
@@ -2,7 +2,7 @@ import axios from "axios";
|
|
2
2
|
|
3
3
|
const sorryCypressTimeout = 1800000;
|
4
4
|
const graphqlUrl = "https://cypress-api.imaginelearning.tech/";
|
5
|
-
const projectId = "imaginelearning/itemengine-
|
5
|
+
const projectId = "imaginelearning/itemengine-cypress-automation";
|
6
6
|
|
7
7
|
function getProjectId() {
|
8
8
|
return process.env.CYPRESS_PROJECT_ID || projectId;
|
@@ -158,7 +158,7 @@ export function runSorryCypressLocal() {
|
|
158
158
|
/**
|
159
159
|
* @method runSorryCypressSpinnaker
|
160
160
|
*/
|
161
|
-
export function runSorryCypressSpinnaker() {
|
161
|
+
export async function runSorryCypressSpinnaker() {
|
162
162
|
console.log('Inside runSorryCypressSpinnaker');
|
163
163
|
process.env.CYPRESS_API_URL = "https://cypress-director.imaginelearning.tech/";
|
164
164
|
console.log('CYPRESS_API_URL:', process.env.CYPRESS_API_URL);
|
@@ -168,9 +168,28 @@ export function runSorryCypressSpinnaker() {
|
|
168
168
|
console.log('ciBuildId:', ciBuildId);
|
169
169
|
const envArgs = setCommandLineEnvArgs()
|
170
170
|
console.log('envArgs:', envArgs);
|
171
|
+
const isOtkv2 = process.env.OTK_VERSION === '2';
|
171
172
|
let command = `cy2 run --parallel --browser chrome --record --key imaginelearning/itemengine-cypress-automation --ci-build-id ${ciBuildId} ${envArgs} --spec "cypress/e2e/ILC/**/*.js"`;
|
172
173
|
console.log(`command: ${command}`);
|
173
|
-
|
174
|
+
try {
|
175
|
+
execSync(command, { stdio: "inherit" });
|
176
|
+
if (isOtkv2) {
|
177
|
+
const status = await checkRunStatus(ciBuildId);
|
178
|
+
process.exit(status);
|
179
|
+
}
|
180
|
+
} catch (error) {
|
181
|
+
console.error("One or more tests failed to pass, OR an error occurred during run");
|
182
|
+
console.error("Cypress run error details:", {
|
183
|
+
status: error.status,
|
184
|
+
message: error.message,
|
185
|
+
stack: error.stack
|
186
|
+
});
|
187
|
+
|
188
|
+
console.log("Exiting process with code: 1");
|
189
|
+
process.exit(1);
|
190
|
+
}
|
191
|
+
console.log("Cypress tests all passed successfully. Exiting process with code: 0");
|
192
|
+
process.exit(0);
|
174
193
|
}
|
175
194
|
|
176
195
|
/**
|
package/service.yaml
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
global:
|
2
|
+
name: ie-cypress
|
3
|
+
type: test
|
4
|
+
autoDeploy:
|
5
|
+
enabled: true
|
6
|
+
highestEnvironment: staging
|
7
|
+
|
8
|
+
deployment:
|
9
|
+
activeDeadlineSeconds: 28800
|
10
|
+
architecture: amd64
|
11
|
+
restartPolicy: Never
|
12
|
+
backoffLimit: 0
|
13
|
+
parallelism: 7
|
14
|
+
completions: 7
|
15
|
+
image:
|
16
|
+
cmd: /ie-e2e/run.sh
|
17
|
+
resources:
|
18
|
+
limits:
|
19
|
+
memory: 8446Mi
|
20
|
+
cpu: 5000m
|
21
|
+
requests:
|
22
|
+
memory: 4096Mi
|
23
|
+
cpu: 2000m
|
24
|
+
egress:
|
25
|
+
FQDNs:
|
26
|
+
- "*.content-nonprod.imaginelearning.com"
|
27
|
+
- "*.cloudflare.com"
|
28
|
+
- "*.googleapis.com"
|
29
|
+
- "www.desmos.com"
|
30
|
+
- "*.google.com"
|
31
|
+
- "*.*.google.com"
|
32
|
+
- "google-ohttp-relay-safebrowsing.fastly-edge.com"
|
33
|
+
- "*.gstatic.com"
|
34
|
+
- "*.codecogs.com"
|
35
|
+
- "cypress-director.imaginelearning.tech"
|
36
|
+
- "cypress-api.imaginelearning.tech"
|
37
|
+
- "*.cypress.io"
|
38
|
+
- "*.*.mozilla.com"
|
39
|
+
- "*.*.*.mozilla.com"
|
40
|
+
env:
|
41
|
+
- name: OTK_VERSION
|
42
|
+
value: "2"
|
43
|
+
- name: CYPRESS_API_URL
|
44
|
+
value: "https://cypress-director.imaginelearning.tech/"
|
45
|
+
- name: THEME
|
46
|
+
value: "ilc"
|
47
|
+
- name: GREP_TAGS
|
48
|
+
value: ""
|
49
|
+
- name: GREP_UNTAGGED
|
50
|
+
value: ""
|
51
|
+
- name: SPEC_PATTERN
|
52
|
+
value: ""
|
53
|
+
- name: QUESTION_TYPE
|
54
|
+
value: "AudioResponseNew_VideoResponseNew_UploadResponse_ToolAudioPlayerNew"
|
55
|
+
|
56
|
+
namespaces:
|
57
|
+
dev:
|
58
|
+
env:
|
59
|
+
- name: STAGE
|
60
|
+
value: "dev"
|
61
|
+
- name: FILE_CONFIG
|
62
|
+
value: "dev"
|
63
|
+
qa:
|
64
|
+
env:
|
65
|
+
- name: STAGE
|
66
|
+
value: "qa"
|
67
|
+
- name: FILE_CONFIG
|
68
|
+
value: "qa"
|
69
|
+
staging:
|
70
|
+
env:
|
71
|
+
- name: STAGE
|
72
|
+
value: "stage"
|
73
|
+
- name: FILE_CONFIG
|
74
|
+
value: "stage"
|
75
|
+
prod:
|
76
|
+
env:
|
77
|
+
- name: STAGE
|
78
|
+
value: "prod"
|
79
|
+
- name: FILE_CONFIG
|
80
|
+
value: "prod"
|