MDL-82404 core_cohort: Fix random Behat failure
- Switched to use Table row verification instead of text assertion for better result - Used the correct selector for checkboxes
This commit is contained in:
Vendored
+1
-1
@@ -5,6 +5,6 @@ define("core_cohort/actions",["exports","core/event_dispatcher","core/notificati
|
||||
* @module core_cohort/actions
|
||||
* @copyright 2024 David Woloszyn <david.woloszyn@moodle.com>
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.registerEventListeners=_exports.init=void 0,_notification=_interopRequireDefault(_notification),_pending=_interopRequireDefault(_pending),reportEvents=_interopRequireWildcard(reportEvents),reportSelectors=_interopRequireWildcard(reportSelectors);const SELECTORS_CHECKBOXES='[data-togglegroup="report-select-all"][data-toggle="slave"]:checked',SELECTORS_DELETEBUTTON='[data-action="cohort-delete-selected"]',SELECTORS_EDITNAME='[data-itemtype="cohortname"]';_exports.init=()=>{(0,_prefetch.prefetchStrings)("core_cohort",["delcohortsconfirm"]),(0,_prefetch.prefetchStrings)("core",["delete","deleteselected","selectitem"]),registerEventListeners()};const registerEventListeners=()=>{document.addEventListener(_events2.eventTypes.elementUpdated,(async event=>{if(event.target.closest(SELECTORS_EDITNAME)){const newName=await(0,_str.getString)("selectitem","core",event.target.dataset.value),cohortId=event.target.dataset.itemid,checkbox=document.querySelector('input[value="'.concat(cohortId,'"]')),label=document.querySelector('label[for="'.concat(checkbox.id,'"]'));newName&&label&&(label.innerHTML=newName)}})),document.addEventListener("click",(event=>{const cohortDeleteSelected=event.target.closest(SELECTORS_DELETEBUTTON);if(cohortDeleteSelected){event.preventDefault();const reportElement=document.querySelector(reportSelectors.regions.report),cohortDeleteChecked=reportElement.querySelectorAll(SELECTORS_CHECKBOXES);if(0===cohortDeleteChecked.length)return;_notification.default.saveCancelPromise((0,_str.getString)("deleteselected","core"),(0,_str.getString)("delcohortsconfirm","core_cohort"),(0,_str.getString)("delete","core"),{triggerElement:cohortDeleteSelected}).then((()=>{const pendingPromise=new _pending.default("core_cohort/cohorts:delete"),deleteCohortIds=[...cohortDeleteChecked].map((check=>check.value));return(0,_repository.deleteCohorts)(deleteCohortIds).then((()=>((0,_event_dispatcher.dispatchEvent)(reportEvents.tableReload,{preservePagination:!0},reportElement),pendingPromise.resolve()))).catch(_notification.default.exception)})).catch((()=>{}))}}))};_exports.registerEventListeners=registerEventListeners}));
|
||||
*/Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.registerEventListeners=_exports.init=void 0,_notification=_interopRequireDefault(_notification),_pending=_interopRequireDefault(_pending),reportEvents=_interopRequireWildcard(reportEvents),reportSelectors=_interopRequireWildcard(reportSelectors);const SELECTORS_CHECKBOXES='[data-togglegroup="report-select-all"][data-toggle="slave"]:checked',SELECTORS_DELETEBUTTON='[data-action="cohort-delete-selected"]',SELECTORS_EDITNAME='[data-itemtype="cohortname"]';_exports.init=()=>{(0,_prefetch.prefetchStrings)("core_cohort",["delcohortsconfirm"]),(0,_prefetch.prefetchStrings)("core",["delete","deleteselected","selectitem"]),registerEventListeners()};const registerEventListeners=()=>{document.addEventListener(_events2.eventTypes.elementUpdated,(async event=>{if(event.target.closest(SELECTORS_EDITNAME)){const cohortId=event.target.dataset.itemid,checkbox=document.querySelector('input[value="'.concat(cohortId,'"][type="checkbox"]')),label=document.querySelector('label[for="'.concat(checkbox.id,'"]'));label&&(label.innerHTML=await(0,_str.getString)("selectitem","core",event.target.dataset.value))}})),document.addEventListener("click",(event=>{const cohortDeleteSelected=event.target.closest(SELECTORS_DELETEBUTTON);if(cohortDeleteSelected){event.preventDefault();const reportElement=document.querySelector(reportSelectors.regions.report),cohortDeleteChecked=reportElement.querySelectorAll(SELECTORS_CHECKBOXES);if(0===cohortDeleteChecked.length)return;_notification.default.saveCancelPromise((0,_str.getString)("deleteselected","core"),(0,_str.getString)("delcohortsconfirm","core_cohort"),(0,_str.getString)("delete","core"),{triggerElement:cohortDeleteSelected}).then((()=>{const pendingPromise=new _pending.default("core_cohort/cohorts:delete"),deleteCohortIds=[...cohortDeleteChecked].map((check=>check.value));return(0,_repository.deleteCohorts)(deleteCohortIds).then((()=>((0,_event_dispatcher.dispatchEvent)(reportEvents.tableReload,{preservePagination:!0},reportElement),pendingPromise.resolve()))).catch(_notification.default.exception)})).catch((()=>{}))}}))};_exports.registerEventListeners=registerEventListeners}));
|
||||
|
||||
//# sourceMappingURL=actions.min.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -62,26 +62,20 @@ export const registerEventListeners = () => {
|
||||
|
||||
// Edit cohort name inplace.
|
||||
document.addEventListener(eventTypes.elementUpdated, async(event) => {
|
||||
|
||||
const editCohortName = event.target.closest(SELECTORS.EDITNAME);
|
||||
|
||||
if (editCohortName) {
|
||||
const newName = await getString('selectitem', 'core', event.target.dataset.value);
|
||||
const cohortId = event.target.dataset.itemid;
|
||||
const checkbox = document.querySelector(`input[value="${cohortId}"]`);
|
||||
const checkbox = document.querySelector(`input[value="${cohortId}"][type="checkbox"]`);
|
||||
const label = document.querySelector(`label[for="${checkbox.id}"]`);
|
||||
|
||||
if (newName && label) {
|
||||
label.innerHTML = newName;
|
||||
if (label) {
|
||||
label.innerHTML = await getString('selectitem', 'core', event.target.dataset.value);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Delete multiple cohorts.
|
||||
document.addEventListener('click', event => {
|
||||
|
||||
const cohortDeleteSelected = event.target.closest(SELECTORS.DELETEBUTTON);
|
||||
|
||||
if (cohortDeleteSelected) {
|
||||
event.preventDefault();
|
||||
|
||||
|
||||
@@ -121,8 +121,17 @@ Feature: Add cohorts of users
|
||||
@javascript
|
||||
Scenario: Edit cohort name in-place
|
||||
When I navigate to "Users > Accounts > Cohorts" in site administration
|
||||
Then the following should exist in the "reportbuilder-table" table:
|
||||
| Name | Cohort ID | Description |
|
||||
| Test cohort name | 333 | Test cohort description |
|
||||
And I set the field "Edit cohort name" to "Students cohort"
|
||||
Then I should not see "Test cohort name"
|
||||
And I should see "Students cohort"
|
||||
And I navigate to "Users > Accounts > Cohorts" in site administration
|
||||
And I should see "Students cohort"
|
||||
And the following should not exist in the "reportbuilder-table" table:
|
||||
| Name | Cohort ID | Description |
|
||||
| Test cohort name | 333 | Test cohort description |
|
||||
And the following should exist in the "reportbuilder-table" table:
|
||||
| Name | Cohort ID | Description |
|
||||
| Students cohort | 333 | Test cohort description |
|
||||
And I reload the page
|
||||
And the following should exist in the "reportbuilder-table" table:
|
||||
| Name | Cohort ID | Description |
|
||||
| Students cohort | 333 | Test cohort description |
|
||||
|
||||
Reference in New Issue
Block a user