Skip to content

Commit

Permalink
MNT New Behat tests for toast messages
Browse files Browse the repository at this point in the history
  • Loading branch information
Sabina Talipova committed Nov 7, 2023
1 parent 8e6ffcf commit 8858469
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 5 deletions.
2 changes: 1 addition & 1 deletion client/dist/js/bundle.js

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions client/lang/src/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
"Admin.REMOVE_LINK": "Remove link",
"Admin.SELECTONEPAGE": "Please select at least one page",
"Admin.VALIDATIONERROR": "Validation Error",
"Admin.DELETE_CONFIRM_MESSAGE": "Deleted",
"Admin.ARCHIVE_CONFIRM_MESSAGE": "Archived",
"Admin.VALIDATION_ERRORS_IN_TAB": "This tab contains validation errors.",
"Admin.VALIDATION_ERRORS_IN_TAB_SCREEN_READER": "(Has validation errors)",
"Admin.VALIDATION_ERRORS_ON_PAGE": "There are validation errors on this page, please fix them before saving or publishing.",
Expand Down
10 changes: 9 additions & 1 deletion client/src/legacy/GridField.js
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ $.entwine('ss', function($) {
});

// Covers both tabular delete button, and the button on the detail form
$('.grid-field .grid-field__col-compact .action--delete, .grid-field .grid-field__col-compact .action--archive, .cms-edit-form .btn-toolbar .action--delete, .cms-edit-form .btn-toolbar .action--archive').entwine({
$('.grid-field .grid-field__col-compact .action--delete, .grid-field .grid-field__col-compact .action--archive, .cms-edit-form .btn-toolbar .action--delete, .cms-edit-form .btn-toolbar .action--archive, .grid-field__col-compact .gridfield-button-unlink').entwine({
onclick: function(e){
const confirmMessage = $(this).hasClass('action--archive')
? i18n._t('Admin.ARCHIVECONFIRMMESSAGE', 'Are you sure you want to archive this record?')
Expand All @@ -569,6 +569,14 @@ $.entwine('ss', function($) {
} else {
this._super(e);
}

const toastNotificationMessage = $(this).hasClass('action--archive')
? ss.i18n._t('Admin.ARCHIVE_CONFIRM_MESSAGE', 'Archived')
: ss.i18n._t('Admin.DELETE_CONFIRM_MESSAGE', 'Deleted');

if (!$(this).hasClass('action--delete')) {
jQuery.noticeAdd({text: toastNotificationMessage, type: 'success', stayTime: 5000, inEffect: {left: '0', opacity: 'show'}});
}
}
});

Expand Down
3 changes: 0 additions & 3 deletions code/LeftAndMain.php
Original file line number Diff line number Diff line change
Expand Up @@ -867,9 +867,6 @@ public function redirect($url, $code = 302)
if ($this->getRequest()->getHeader('X-Pjax') && !$response->getHeader('X-Pjax')) {
$response->addHeader('X-Pjax', $this->getRequest()->getHeader('X-Pjax'));
}
if ($this->getRequest()->getHeader('X-Status') && !$response->getHeader('X-Status')) {
$response->addHeader('X-Status', $this->getRequest()->getHeader('X-Status'));
}
$newResponse = new LeftAndMain_HTTPResponse(
$response->getBody(),
$response->getStatusCode(),
Expand Down
87 changes: 87 additions & 0 deletions tests/behat/features/gridfield-toast-messages.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
Feature: Show toast messages
As an author
I want to see toast message in the CMS when I create, edit, delete, publish, unpublish, archive a record

Background:
Given the "Company" "Company A" with "Category"="Other"
And the "Company" "Company B" with "Category"="Other"
And the "Company" "Company C" with "Category"="Other"
And the "Employee" "Employee A" with "Company"="1"
And the "Employee" "Employee B" with "Company"="1"
And the "Employee" "Employee C" with "Company"="1"
And the "group" "EDITOR" has permissions "Access to 'Pages' section" and "Access to 'Test ModelAdmin' section" and "TEST_DATAOBJECT_EDIT"
And I am logged in as a member of "EDITOR" group
And I go to "/admin/test"

Scenario: I can see toast message when I successfully create or publish a record
When I press the "Add Company" button
And I fill in "Name" with "My Company"
And I press the "Create" button
Then I should see a "Saved Company "My Company" successfully" success toast
And I fill in "Name" with "My New Company"
And I wait for 5 seconds
And I press the "Publish" button
Then I should see a "Published Company "My New Company"" success toast

Scenario: I can see toast message when I successfully unpublish and archive a record
When I click "Company B" in the "#Form_EditForm" element
And I press the "Publish" button
Then I should see a "Published Company "Company B"" success toast
And I wait for 5 seconds
And I click "More options" in the "#ActionMenus" element
And I press the "Unpublish" button, confirming the dialog
Then I should see a "Unpublished Company "Company B"" success toast
And I wait for 5 seconds
And I click "More options" in the "#ActionMenus" element
And I press the "Archive" button, confirming the dialog
And I should not see "Validation Error"
And I should see a "Archived Company "Company B"" success toast

Scenario: I can see toast message when I successfully delete a record
When I click "Company A" in the "#Form_EditForm" element
And I click "Employees" in the ".ui-tabs-nav" element
Then I should see "Employee A" in the "#Form_ItemEditForm_Employees" element
And I click "Employee A" in the "#Form_ItemEditForm_Employees" element
And I press the "Delete" button, confirming the dialog
Then I should see a "Deleted Employee "Employee A"" success toast
Then I should not see "Employee A" in the "#Form_ItemEditForm_Employees" element

Scenario: I can see toast message when I successfully delete a record by clicking the Unlink button in action menu
When I click "Company A" in the "#Form_EditForm" element
And I click "Employees" in the ".ui-tabs-nav" element
Then I should see "Employee A" in the "#Form_ItemEditForm_Employees" element
And I press the "View actions" button
And I click "Unlink" in the ".gridfield-button-unlink" element
And I see the text "Are you sure you want to delete this record?" in the alert
And I confirm the dialog
And I wait for 2 seconds
Then I should see a "Deleted Employee "Employee A"" success toast
Then I should not see "Employee A" in the "#Form_ItemEditForm_Employees" element

Scenario: I can see toast message when I successfully delete a record by clicking the Archive button in action menu
And I should see "Company A" in the "#Form_EditForm" element
And I press the "View actions" button
And I press the "Archive" button
And I see the text "Are you sure you want to archive this record?" in the alert
And I confirm the dialog
And I wait for 2 seconds
Then I should see a "Archived Company "Company A"" success toast
Then I should not see "Company A" in the "#Form_EditForm" element

Scenario: I can see toast message when I have validation errors
When I click "Company C" in the "#Form_EditForm" element
And I fill in "Name" with ""
And I press the "Save" button
Then I should see "Validation Error"
And I fill in "Name" with "New Company C"
And I press the "Save" button
Then I should see a "Saved Company "New Company C" successfully" success toast

Scenario: I can see toast message when I have validation errors when I edit a nested record
When I click "Company A" in the "#Form_EditForm" element
And I click "Employees" in the ".ui-tabs-nav" element
Then I should see "Employee B" in the "#Form_ItemEditForm_Employees" element
And I click "Employee B" in the "#Form_ItemEditForm_Employees" element
And I fill in "Name" with ""
And I press the "Save" button
Then I should see "Validation Error"

0 comments on commit 8858469

Please sign in to comment.