itemengine-cypress-automation 1.0.379-highlight-flakiness-r2-fba67fd.0 → 1.0.379

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.
@@ -1,3 +1,4 @@
1
+ import { thinkSpherePage } from '../../../pages';
1
2
  import { browseItemsPage } from '../../../pages/components/browseItemsPage';
2
3
  import abortEarlySetup from '../../../support/helpers/abortEarly';
3
4
  import utilities from "../../../support/helpers/utilities";
@@ -117,6 +118,8 @@ describe('Navigate to Think Sphere Browse Review Items page and view the page co
117
118
  browseItemsPage.steps.verifySortFunctionalityOnColumnHeaderClick(1);
118
119
  });
119
120
 
121
+ browseItemsPage.tests.verifySupportedQuestionsInItemsList(allowedFilterCategories);
122
+
120
123
  it('When only one search result is present, then column sort should be disabled', () => {
121
124
  /**@TODO Add check for when only one search result is present */
122
125
  });
@@ -152,6 +155,10 @@ describe('Navigate to Think Sphere Browse Review Items page and view the page co
152
155
  browseItemsPage.steps.verifyCloseIcon();
153
156
  });
154
157
 
158
+ it('Search bar should have place holder Search by title, tags and content', () => {
159
+ thinkSpherePage.steps.verifyThinkSphereSearchBarPlaceholder();
160
+ });
161
+
155
162
  it('CSS of search bar component', { tags: 'css' }, () => {
156
163
  utilities.verifyCSS(browseItemsPage.searchBar().parent(), {
157
164
  'background-color': css.color.progressBarRemainingFill,
@@ -166,15 +173,16 @@ describe('Navigate to Think Sphere Browse Review Items page and view the page co
166
173
  });
167
174
  });
168
175
 
169
- it('When user types title/tags/content in search component and search, then it should search', () => {
170
- /**@TODO Add check for when user types title/tags/content in search component and search */
176
+ it('When user hovers on the search bar, it should show the tooltip with text \'search', () => {
177
+ browseItemsPage.steps.hoverOnSearchBarComponent();
178
+ browseItemsPage.searchBarParent().verifyTooltip('Search');
171
179
  });
172
180
 
173
181
  it('CSS of search bar in hover state', { tags: 'css' }, () => {
174
182
  browseItemsPage.steps.hoverOnSearchBarComponent();
175
183
  utilities.verifyCSS(browseItemsPage.searchBar().parent(), {
176
184
  'background-color': css.color.primaryBtn,
177
- });
185
+ });
178
186
  });
179
187
 
180
188
  it('Accessibility of search bar component', { tags: 'a11y' }, () => {
@@ -213,7 +221,10 @@ describe('Navigate to Think Sphere Browse Review Items page and view the page co
213
221
  });
214
222
  });
215
223
 
216
- it('When user clicks on the next page button, then it should display the next page data', () => {
224
+ browseItemsPage.tests.verifyFirstPreviousNextPageButtons();
225
+
226
+ it('When user clicks on the next page button, then it should display the next page data and when the user clicks the previous page button, it should display the previous page data', () => {
227
+ browseItemsPage.steps.navigateToReviewItemsPage();
217
228
  browseItemsPage.steps.clickOnNextPageButton();
218
229
  browseItemsPage.steps.verifyPaginationCount('21 - 40 of');
219
230
  browseItemsPage.steps.clickOnPreviousPageButton();
@@ -250,11 +261,31 @@ describe('Navigate to Think Sphere Browse Review Items page and view the page co
250
261
  utilities.verifyInnerText(browseItemsPage.filterButtonText(), '(show)');
251
262
  });
252
263
 
253
- it('Filter section should open when filter button is clicked', () => {
264
+ it('Filter section should open when filter button is clicked and the question types accordion should be open by default', () => {
254
265
  browseItemsPage.steps.toggleFilterSection();
255
266
  utilities.verifyInnerText(browseItemsPage.filterButtonText(), '(hide)');
267
+ thinkSpherePage.steps.verifyFilterSectionExpanded();
268
+ });
269
+
270
+ it('The author should be able to close and open the question types accordion', () => {
271
+ thinkSpherePage.steps.clickOnQuestionTypesAccordion();
272
+ thinkSpherePage.steps.verifyFilterSectionCollapsed();
273
+ thinkSpherePage.steps.clickOnQuestionTypesAccordion();
274
+ thinkSpherePage.steps.verifyFilterSectionExpanded();
256
275
  });
257
276
 
277
+ it('By default, every question category accordion in the filter section should be closed and all checkboxes unchecked.', () => {
278
+ thinkSpherePage.filterSectionQuestionAccordion().each(($accordion) => {
279
+ thinkSpherePage.steps.verifyElementDoesNotHaveExpandedClass(cy.wrap($accordion));
280
+ });
281
+
282
+ thinkSpherePage.checkBox().each(($ch) => {
283
+ thinkSpherePage.steps.verifyElementDoesNotHaveCheckedClass(cy.wrap($ch));
284
+ });
285
+ });
286
+
287
+ thinkSpherePage.tests.verifyQuestionAccordion();
288
+
258
289
  it('Filter section should have only allowed filter categories and items', () => {
259
290
  utilities.verifyElementCount(browseItemsPage.filterCategories(), categories.length);
260
291
  categories.forEach((category) => {
@@ -265,7 +296,6 @@ describe('Navigate to Think Sphere Browse Review Items page and view the page co
265
296
  });
266
297
  });
267
298
 
268
-
269
299
  it('User should be able to apply filters by selecting the checkboxes and filter chips should be displayed', () => {
270
300
  browseItemsPage.steps.clickOnFilterCategoryCheckbox(categories[0]);
271
301
  cy.pageLoadWait();
@@ -324,8 +354,10 @@ describe('Navigate to Think Sphere Browse Review Items page and view the page co
324
354
  });
325
355
  });
326
356
 
357
+ browseItemsPage.tests.verifyFilterSelectionInList(categories);
358
+
327
359
  it('CLEAR ALL button should be present beside the Applied Filters text', () => {
328
- browseItemsPage.steps.clickOnFilterCategoryCheckbox(categories[0]);
360
+ browseItemsPage.steps.clickOnFilterCategoryCheckbox(categories[1]);
329
361
  cy.pageLoadWait();
330
362
  utilities.verifyElementVisibilityState(browseItemsPage.filterChipClearAll(), 'exist');
331
363
  });
@@ -240,7 +240,6 @@ describe('Create question page - Essay Response: Edit category', () => {
240
240
  editCategoryFlyout.steps.openEditCategoryFlyout();
241
241
  utilities.verifyElementDisabled(editCategoryFlyout.buttonReset());
242
242
  editCategoryFlyout.steps.verifyCategoryCharacterNotSelected(`${equationEditorCategoriesAndSymbols.general.symbols.dollar.ariaLabel}`)
243
- editCategoryFlyout.steps.verifyCategoryCharacterNotSelected(`${equationEditorCategoriesAndSymbols.general.symbols.dollar.ariaLabel}`)
244
243
  });
245
244
  });
246
245
 
@@ -12,6 +12,16 @@ const allowedQuestions = [
12
12
  'short text response',
13
13
  'Text Entry Math',
14
14
  ]
15
+
16
+ const dropDownArray = [
17
+ 'All question types',
18
+ 'Multiple choice selection',
19
+ 'Fill in the gaps',
20
+ 'Drag and drop',
21
+ 'List',
22
+ 'Constructed response',
23
+ 'Math response',
24
+ ]
15
25
  describe("Create Review Item", () => {
16
26
  abortEarlySetup();
17
27
  before(() => {
@@ -42,6 +52,49 @@ describe("Create Review Item", () => {
42
52
  utilities.verifyElementVisibilityState(thinkSpherePage.browseItemPageHeader(), 'visible');
43
53
  });
44
54
 
55
+ it('When user clicks on create question, search bar should appear with placeholder, \'Search by question and tool tip \'Search\'', () => {
56
+ thinkSpherePage.steps.clickOnCreateItemButton();
57
+ thinkSpherePage.steps.verifySearchBarComponent();
58
+ thinkSpherePage.steps.verifySearchIcon();
59
+ thinkSpherePage.steps.verifyCloseIcon();
60
+ thinkSpherePage.steps.verifyReviewItemSearchBarPlaceholder();
61
+ thinkSpherePage.steps.hoverOnSearchBarComponent();
62
+ thinkSpherePage.searchBarParent().verifyTooltip('Search');
63
+ });
64
+
65
+ it('The author should be able to type in letters numbers, special character, alpha numeric characters in the search input field.', () => {
66
+ const testInputs = [
67
+ 'abc', // letters
68
+ '123', // numbers
69
+ '!@#$%^&*()', // special characters
70
+ 'abc123XYZ', // alphanumeric
71
+ 'test@123.com' // mixed
72
+ ];
73
+
74
+ testInputs.forEach((input) => {
75
+ thinkSpherePage.steps.typeInSearchBar(input);
76
+ });
77
+ });
78
+
79
+ it('When the author types the question type in search bar, only that particular question card should be present', () => {
80
+ thinkSpherePage.steps.searchInSearchBar('single selection');
81
+ thinkSpherePage.steps.verifyLength(thinkSpherePage.cardWrapper(), 1);
82
+ utilities.verifyInnerText(thinkSpherePage.cardLabel(), 'Single selection');
83
+ });
84
+
85
+ it('Create review item page should have a categories dropdown with default value as \'All question types\'', () => {
86
+ utilities.verifyElementVisibilityState(thinkSpherePage.categoriesDropDown(), 'visible');
87
+ utilities.verifyInnerText(thinkSpherePage.categoriesDropDownLabelText(), 'All question types');
88
+ });
89
+
90
+ it(`The category dropdown should contain the following dropdown options and when any question type is clicked the cards should have those question types only `, () => {
91
+ thinkSpherePage.steps.expandDropdown();
92
+ thinkSpherePage.steps.verifyDropdownOptions(dropDownArray);
93
+ thinkSpherePage.steps.clickOnDropDownCategory(3);
94
+ utilities.verifyInnerText(thinkSpherePage.cardLabel(), 'Drag and drop into categories');
95
+ thinkSpherePage.steps.clickOnCancelButton();
96
+ });
97
+
45
98
  it('When the user creates a new review item and then saves it, it should be displayed in the thinkSphere item page', () => {
46
99
  thinkSpherePage.steps.createReviewQuestion();
47
100
  utilities.verifyElementCount(thinkSpherePage.widgetHeaderQuestionTitle(), 2);
@@ -12,6 +12,23 @@ describe('Create item : ThinkSphere - Edit tab basics', () => {
12
12
  cy.loginAs('admin');
13
13
  });
14
14
 
15
+ describe('Create thinkSphere item - create item page', () => {
16
+ abortEarlySetup();
17
+ before(() => {
18
+ cy.visit('/item-engine/thinksphere/create-item');
19
+ });
20
+
21
+ thinkSpherePage.tests.verifyCreateItemHeaderSection();
22
+
23
+ thinkSpherePage.tests.verifyDefaultTab();
24
+
25
+ it('When user clicks on Add ThinkSphere question button, it should navigate to think sphere create question page', () => {
26
+ thinkSpherePage.steps.addThinkSphereQuestion();
27
+ utilities.verifyInnerText(thinkSpherePage.thinkSphereQuestionHeader(), 'ThinkSphere question');
28
+ });
29
+
30
+ });
31
+
15
32
  describe('Question instructions input field - Edit tab', () => {
16
33
  abortEarlySetup();
17
34
  before(() => {
@@ -20,6 +37,12 @@ describe('Create item : ThinkSphere - Edit tab basics', () => {
20
37
  });
21
38
 
22
39
  thinkSpherePage.tests.verifyQuestionInstructionsInputFieldEditTab();
40
+
41
+ it('When user add long text along with table in question instruction then height of question instruction should increase and horizontal scroll bar should appear', () => {
42
+ thinkSpherePage.steps.addQuestionInstructionInnerHTML('<table class="custom_author_table ie-table ie-table-bordered" border="1" style="width: 100%;"><tbody><tr><td>test</td><td>test</td><td>test</td><td>test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test&nbsp;test</td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr><tr><td><br></td><td><br></td><td><br></td><td><br></td></tr></tbody></table><p><br><br>test<br></p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p><p>test</p>');
43
+ thinkSpherePage.steps.verifyQuestionInstructionIncreasedHeightAndScrollBar();
44
+ thinkSpherePage.steps.addQuestionInstructionInnerHTML('');
45
+ });
23
46
  });
24
47
 
25
48
  describe('Question instructions input field - Edit tab functionality', () => {
@@ -57,7 +80,7 @@ describe('Create item : ThinkSphere - Edit tab basics', () => {
57
80
  'border-style': 'solid',
58
81
  'border-color': 'rgb(107, 139, 255)',
59
82
  'border-radius': '8px',
60
- 'padding': '30px 12px 12px'
83
+ 'padding': '30px 9px 12px'
61
84
  });
62
85
  });
63
86
 
@@ -446,6 +469,27 @@ describe('Create item : ThinkSphere - Edit tab basics', () => {
446
469
  utilities.verifyElementVisibilityState(thinkSpherePage.ThinkSphereQuestionHeaderPencilIcon(), 'exist');
447
470
  });
448
471
 
472
+ it('When the user has saved think sphere question, \'Add \'Check your math\' question\' button should be visible',() => {
473
+ utilities.verifyInnerText(thinkSpherePage.addCheckMathQuestionButton(), 'Add \'Check your math\' question');
474
+ });
475
+
476
+ it('Verify \'Add \'Check your math\' question\' button', { tags: 'css' }, () => {
477
+ utilities.verifyCSS(thinkSpherePage.addCheckMathQuestionButton().parent(), {
478
+ 'color': css.color.primaryBtn,
479
+ 'background-color': css.color.lightThemeBtnBg,
480
+ 'font-size': css.fontSize.default,
481
+ 'font-weight': css.fontWeight.semibold,
482
+ 'padding': '12px 16px',
483
+ 'min-width': '264px',
484
+ });
485
+ });
486
+
487
+ it('When the user clicks on \'Add \'Check your math\' question button\' and click on cancel button, the user should be redirected back to the item preview page where the \'Add \'Check your math\' question\' button is available',() => {
488
+ thinkSpherePage.steps.clickOnAddCheckMathQuestionButton();
489
+ thinkSpherePage.steps.clickOnCancelButton();
490
+ utilities.verifyInnerText(thinkSpherePage.addCheckMathQuestionButton(), 'Add \'Check your math\' question');
491
+ });
492
+
449
493
  it('When the user selects an item from the review item bank and saves it, the item should be displayed in the thinkSphere item page',() => {
450
494
  thinkSpherePage.steps.clickOnAddCheckMathQuestionButton();
451
495
  thinkSpherePage.steps.clickOnFirstAvailableItemLink();
@@ -501,6 +545,13 @@ describe('Create item : ThinkSphere - Edit tab basics', () => {
501
545
  thinkSpherePage.steps.clickOnSaveButton();
502
546
  });
503
547
 
548
+
549
+ it(`Clicking on edit button icon should take us to edit question page`, () => {
550
+ thinkSpherePage.steps.clickOnEditButton();
551
+ utilities.verifyElementVisibilityState(thinkSpherePage.questionInstructionsWrapper(), 'exist');
552
+ thinkSpherePage.steps.clickOnSaveButton();
553
+ });
554
+
504
555
  it('Clicking on delete icon should remove the math question', () => {
505
556
  thinkSpherePage.steps.clickOnDeleteButton();
506
557
  utilities.verifyElementVisibilityState(thinkSpherePage.thinkSphereMathQuestionHeaderDeleteIcon(), 'notExist');