MDL-76733 mod_assign: Tidy up availability behat tests

This feature had lots of small issues and it made sense to fix it whilst
investigating a query:

* most of the steps do not require JavaScript
* it uses the UI to set an admin setting, for every scenario:
** only 3-4 of the scenarios actually test that setting
** it is very slow to do it his way when we have a generator step we can use
* we create two assignments in the Background, but each test only uses one of them
* we create the assignments in the Background with a generator, but
  update them to modify various settings in each Scenario using the UI
  when we should just create one assignment for each test and set it up
  correctly for that Scenario
This commit is contained in:
Andrew Nicols
2023-05-23 11:12:27 +08:00
parent 2fa4da9aa4
commit e936ef3527
+68 -80
View File
@@ -1,8 +1,8 @@
@mod @mod_assign @javascript
@mod @mod_assign
Feature: Set availability dates for an assignment
In order to control when a student can upload an assignment
As a teacher
I need be able to set availability dates for an assignment
In order to control when a student can upload an assignment
As a teacher
I need be able to set availability dates for an assignment
Background:
Given the following "courses" exist:
@@ -18,99 +18,89 @@ Feature: Set availability dates for an assignment
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
| student2 | C1 | student |
And the following "activity" exists:
| activity | assign |
| course | C1 |
| name | Assignment name |
| description | Assignment description |
| assignsubmission_file_enabled | 1 |
| assignsubmission_file_maxfiles | 1 |
| assignsubmission_file_maxsizebytes | 0 |
| submissiondrafts | 0 |
Scenario: Student cannot submit an assignment prior to the 'allow submissions from' date
Given I am on the "Assignment name" Activity page logged in as teacher1
And I navigate to "Edit settings" in current page administration
And I follow "Expand all"
# Set 'Allow submissions from' to tomorrow at noon.
And I set the field "Allow submissions from" to "##tomorrow noon##"
And I press "Save and return to course"
And I log out
Given the following "activity" exists:
| activity | assign |
| course | C1 |
| name | Assignment name |
| assignsubmission_file_enabled | 1 |
| assignsubmission_file_maxfiles | 1 |
| assignsubmission_file_maxsizebytes | 0 |
| submissiondrafts | 0 |
| allowsubmissionsfromdate | ##tomorrow noon## |
When I am on the "Assignment name" Activity page logged in as student1
Then "Add submission" "button" should not exist
And I should see "This assignment will accept submissions from"
And I should see "##tomorrow noon##%A, %d %B %Y, %I:%M %p##"
@javascript
Scenario: Student can see the assignment's due date in the course calendar
Given I am on the "Assignment name" Activity page logged in as teacher1
And I navigate to "Edit settings" in current page administration
And I follow "Expand all"
# Set 'Allow submissions from' to the first day of this month at noon.
And I set the field "Allow submissions from" to "##first day of this month noon##"
# Set 'Due date' to the second day of this month at noon.
And I set the field "Due date" to "##first day of this month noon +24 hours##"
And I press "Save and return to course"
And I turn editing mode on
And I add the "Calendar" block
And I log out
And I am on the "C1" Course page logged in as student1
And I follow "This month"
When I hover over day "2" of this month in the calendar
Given the following "activity" exists:
| activity | assign |
| course | C1 |
| name | Assignment name |
| assignsubmission_file_enabled | 1 |
| assignsubmission_file_maxfiles | 1 |
| assignsubmission_file_maxsizebytes | 0 |
| submissiondrafts | 0 |
| allowsubmissionsfromdate | ##first day of this month noon## |
| duedate | ##first day of this month noon +24 hours## |
And the following "blocks" exist:
| blockname | contextlevel | reference | pagetypepattern | defaultregion |
| calendar_month | Course | C1 | course-view-* | site-post |
When I am on the "C1" Course page logged in as student1
And I hover over day "2" of this month in the calendar
Then I should see "C1: Assignment name is due"
@_file_upload
@javascript @_file_upload
Scenario: Student can submit an assignment before the due date
Given I am on the "Assignment name" Activity page logged in as teacher1
And I navigate to "Edit settings" in current page administration
And I follow "Expand all"
# Set 'Allow submissions from' to now.
And I set the field "Allow submissions from" to "##now##"
# Set 'Due date' to 2 days 5 hours 30 minutes in the future.
And I set the field "Due date" to "##+2 days 5 hours 30 minutes##"
And I press "Save and return to course"
And I log out
Given the following "activity" exists:
| activity | assign |
| course | C1 |
| name | Assignment name |
| assignsubmission_file_enabled | 1 |
| assignsubmission_file_maxfiles | 1 |
| assignsubmission_file_maxsizebytes | 0 |
| submissiondrafts | 0 |
| allowsubmissionsfromdate | ##now## |
| duedate | ##+2 days 5 hours 30 minutes## |
When I am on the "Assignment name" Activity page logged in as student1
And I should see "##+2 days 5 hours 30 minutes##%A, %d %B %Y##" in the "Due date" "table_row"
And I should see "2 days 5 hours" in the "Time remaining" "table_row"
And "Add submission" "button" should exist
And I press "Add submission"
And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager
When I press "Save changes"
Then I should see "Submitted for grading" in the "Submission status" "table_row"
And I log out
And I press "Save changes"
And I should see "Submitted for grading" in the "Submission status" "table_row"
And I am on the "Assignment name" Activity page logged in as teacher1
And I should see "1" in the "Submitted" "table_row"
And I navigate to "View all submissions" in current page administration
And I should see "Submitted for grading" in the "Student 1" "table_row"
@_file_upload
@javascript @_file_upload
Scenario: Student can submit an assignment after the due date and the submission is marked as late
Given I am on the "Assignment name" Activity page logged in as teacher1
And I navigate to "Edit settings" in current page administration
And I follow "Expand all"
# Set 'Allow submissions from' to 3 days ago.
And I set the field "Allow submissions from" to "##3 days ago##"
# Set 'Due date' to 2 days 5 hours 30 minutes ago.
And I set the field "Due date" to "##2 days 5 hours 30 minutes ago##"
# Set 'Cut-off date' to tomorrow at noon.
And I set the field "Cut-off date" to "##tomorrow noon##"
And I press "Save and return to course"
And I log out
And I am on the "Assignment name" Activity page logged in as student1
Given the following "activity" exists:
| activity | assign |
| course | C1 |
| name | Assignment name |
| assignsubmission_file_enabled | 1 |
| assignsubmission_file_maxfiles | 1 |
| assignsubmission_file_maxsizebytes | 0 |
| submissiondrafts | 0 |
| allowsubmissionsfromdate | ##3 days ago## |
| duedate | ##2 days 5 hours 30 minutes ago## |
| cutoffdate | ##tomorrow noon## |
When I am on the "Assignment name" Activity page logged in as student1
And I should see "##2 days 5 hours 30 minutes ago##%A, %d %B %Y##" in the "Due date" "table_row"
And I should see "Assignment is overdue by: 2 days 5 hours" in the "Time remaining" "table_row"
And "Add submission" "button" should exist
And I press "Add submission"
And I upload "lib/tests/fixtures/empty.txt" file to "File submissions" filemanager
When I press "Save changes"
Then I should see "Submitted for grading" in the "Submission status" "table_row"
And I press "Save changes"
And I should see "Submitted for grading" in the "Submission status" "table_row"
And I should see "Assignment was submitted 2 days 5 hours late" in the "Time remaining" "table_row"
And I log out
And I am on the "Assignment name" Activity page logged in as teacher1
And I should see "1" in the "Submitted" "table_row"
@@ -119,21 +109,19 @@ Feature: Set availability dates for an assignment
And I should see "2 days 5 hours late" in the "Student 1" "table_row"
Scenario: Student cannot submit an assignment after the cut-off date
Given I am on the "Assignment name" Activity page logged in as teacher1
And I navigate to "Edit settings" in current page administration
And I follow "Expand all"
# Set 'Allow submissions from' to 3 days ago.
And I set the field "Allow submissions from" to "##3 days ago##"
# Set 'Due date' to 2 days 5 hours 30 minutes ago.
And I set the field "Due date" to "##2 days 5 hours 30 minutes ago##"
# Set 'Cut-off date' to yesterday at noon.
And I set the field "Cut-off date" to "##yesterday noon##"
And I press "Save and return to course"
And I log out
Given the following "activity" exists:
| activity | assign |
| course | C1 |
| name | Assignment name |
| assignsubmission_file_enabled | 1 |
| assignsubmission_file_maxfiles | 1 |
| assignsubmission_file_maxsizebytes | 0 |
| submissiondrafts | 0 |
| allowsubmissionsfromdate | ##3 days ago## |
| duedate | ##2 days 5 hours 30 minutes ago## |
| cutoffdate | ##yesterday noon## |
When I am on the "Assignment name" Activity page logged in as student1
Then "Add submission" "button" should not exist
And I log out
And I am on the "Assignment name" Activity page logged in as teacher1
And I should see "0" in the "Submitted" "table_row"