From 39584ef0dc9e2253386913f99f77d5293ef9dae6 Mon Sep 17 00:00:00 2001 From: Peter Cenov Date: Fri, 11 Oct 2024 16:54:35 +0300 Subject: [PATCH 01/10] initial draft --- integration_testing/018-features/README.md | 46 + .../coach/class-home/class-coach-view.feature | 21 + .../coach-class-home-with-interaction.feature | 46 + .../coach/class-home/coach-class-home.feature | 35 + .../coach-notified-learner-needs-help.feature | 27 + .../coach-automatic-content-syncing.feature | 70 ++ ...ync-statuses-for-connected-devices.feature | 26 + .../coach/coach-print-reports.feature | 100 ++ .../coach-assign-learners-groups.feature | 38 + .../groups/coach-class-reports-groups.feature | 49 + .../coach/groups/coach-create-group.feature | 25 + .../coach/groups/coach-delete-group.feature | 20 + .../coach/groups/coach-rename-group.feature | 24 + ...-track-lesson-groups-notifications.feature | 54 ++ .../coach-class-reports-learners.feature | 35 + ...ves-bookmarked-resources-to-lesson.feature | 49 + ...coach-adds-practice-quiz-to-lesson.feature | 15 + .../coach/lessons/coach-copy-lesson.feature | 47 + .../coach/lessons/coach-create-lesson.feature | 183 ++++ .../coach/lessons/coach-delete-lesson.feature | 21 + .../lessons/coach-edit-lesson-details.feature | 65 ++ .../coach-lesson-difficult-questions.feature | 28 + .../coach-lesson-manage-resources.feature | 38 + .../coach/lessons/coach-lessons.feature | 105 +++ .../lessons/coach-make-lesson-visible.feature | 174 ++++ ...-questions-in-practice-quiz-report.feature | 18 + ...report-for-practice-quiz-in-lesson.feature | 26 + .../coach-track-lesson-notifications.feature | 137 +++ .../coach-track-lesson-progress.feature | 59 ++ .../coach-change-profile-information.feature | 37 + ...moves-bookmarked-resources-to-quiz.feature | 47 + ...coach-adds-practice-quiz-to-lesson.feature | 15 + .../coach-class-reports-quizzes.feature | 72 ++ .../coach/quizzes/coach-copy-quiz.feature | 47 + .../coach/quizzes/coach-create-quiz.feature | 243 +++++ .../coach/quizzes/coach-delete-quiz.feature | 17 + .../coach/quizzes/coach-edit-quiz.feature | 64 ++ .../coach-enhanced-quiz-management.feature | 289 ++++++ ...lesson-quiz-resource-notifications.feature | 65 ++ .../coach-quiz-difficult-questions.feature | 28 + ...ch-track-quiz-groups-notifications.feature | 57 ++ .../coach-track-quiz-notifications.feature | 73 ++ .../quizzes/coach-track-quiz-progress.feature | 36 + .../kolibri-critical-workflows.feature | 873 ++++++++++++++++++ ...-can-see-sections-and-descriptions.feature | 62 ++ 45 files changed, 3606 insertions(+) create mode 100644 integration_testing/018-features/README.md create mode 100644 integration_testing/018-features/coach/class-home/class-coach-view.feature create mode 100644 integration_testing/018-features/coach/class-home/coach-class-home-with-interaction.feature create mode 100644 integration_testing/018-features/coach/class-home/coach-class-home.feature create mode 100644 integration_testing/018-features/coach/class-home/coach-notified-learner-needs-help.feature create mode 100644 integration_testing/018-features/coach/coach-content-syncing/coach-automatic-content-syncing.feature create mode 100644 integration_testing/018-features/coach/coach-content-syncing/coach-can-see-sync-statuses-for-connected-devices.feature create mode 100644 integration_testing/018-features/coach/coach-print-reports.feature create mode 100644 integration_testing/018-features/coach/groups/coach-assign-learners-groups.feature create mode 100644 integration_testing/018-features/coach/groups/coach-class-reports-groups.feature create mode 100644 integration_testing/018-features/coach/groups/coach-create-group.feature create mode 100644 integration_testing/018-features/coach/groups/coach-delete-group.feature create mode 100644 integration_testing/018-features/coach/groups/coach-rename-group.feature create mode 100644 integration_testing/018-features/coach/groups/coach-track-lesson-groups-notifications.feature create mode 100644 integration_testing/018-features/coach/learners/coach-class-reports-learners.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-adds-or-removes-bookmarked-resources-to-lesson.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-adds-practice-quiz-to-lesson.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-copy-lesson.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-create-lesson.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-delete-lesson.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-edit-lesson-details.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-lesson-difficult-questions.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-lesson-manage-resources.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-lessons.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-make-lesson-visible.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-sees-difficult-questions-in-practice-quiz-report.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-sees-report-for-practice-quiz-in-lesson.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-track-lesson-notifications.feature create mode 100644 integration_testing/018-features/coach/lessons/coach-track-lesson-progress.feature create mode 100644 integration_testing/018-features/coach/profile/coach-change-profile-information.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-adds-or-removes-bookmarked-resources-to-quiz.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-adds-practice-quiz-to-lesson.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-class-reports-quizzes.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-copy-quiz.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-create-quiz.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-delete-quiz.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-edit-quiz.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-enhanced-quiz-management.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-non-lesson-quiz-resource-notifications.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-quiz-difficult-questions.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-track-quiz-groups-notifications.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-track-quiz-notifications.feature create mode 100644 integration_testing/018-features/coach/quizzes/coach-track-quiz-progress.feature create mode 100644 integration_testing/018-features/kolibri-critical-workflows.feature create mode 100644 integration_testing/018-features/learner/learner-can-see-sections-and-descriptions.feature diff --git a/integration_testing/018-features/README.md b/integration_testing/018-features/README.md new file mode 100644 index 00000000000..a11b168e00f --- /dev/null +++ b/integration_testing/018-features/README.md @@ -0,0 +1,46 @@ + +# Style guide for Kolibri `.feature` files + +The purpose of this document is to compile and keep the record of our internal conventions used to write and format the `.feature` files for testing Kolibri. + +Style guide is a `Work-In-Progress` as we keep adding the testing scenarios and refining our strategies. + +## File naming + +- Use the `role-name-feature-name.feature` naming strategy. +- Feature name part should be expressed as **action** whenever possible, instead of the *need*. Examples: `move-learners-between-groups`, or `modify-facility-settings`. Do not use verbs as *can* or *should* in filenames. +- Separate all filename parts with dashes `-`, not underscores `_`. + +## Feature naming + +Feature name and description (the first part of the content inside the `.feature` file), should express the **need**. Try to formulate the name as: "This `role-name` needs to be able to achieve `feature-name`". Add more detailed background explanation if needed. Most feature descriptions can be expressed in one sentence, but other, more complex ones that include various `Background` settings or `Scenarios` might need more than one sentence. + +## Other recommendations + +- List the `Background` "givens" in order to cover the more general conditions **first** (`there are groups created`, meaning that the groups should be created even before the user arrived to the groups page), and the more specific ones (`I am on *Coach > Groups* page`) +- Keep the *point of view* consistent by writing all the steps as **I**. +- Use present tense and avoid conditionals: *When I scroll... Then I see...* instead of *When I have scrolled... Then I should see...* +- Whenever possible and not too laborious, let's try recording the values in `Examples` table and use the placeholders `<>`in the steps: + + ``` + Examples: + | username | password | + | coach | coach | + ``` + + +## UI elements conventions + +- Enclose strings of **all** the UI elements (buttons, menu options, headings, modal titles, etc.) inside `**` chars. +- Capitalize just the first letter (even when they appear fully capitalized in the UI, for readability purposes). +- Use the `*Plugin name > Tab name*` convention for indicating the current or position or the desired destination of the user in Kolibri. Examples: `*Coach > Groups*`, `*Learn > Recommended*`, `*Facility > Settings*`, `*Device > Info*`, etc. + + +## Some useful BDD resources + +- [How to describe user stories using Gherkin language](https://medium.com/@SteelKiwiDev/how-to-describe-user-stories-using-gherkin-language-8cffc6b888df) +- [Gherkin Syntax](http://docs.behat.org/en/v2.5/guides/1.gherkin.html#gherkin-syntax) +- [Obey the testing goat BDD](https://www.obeythetestinggoat.com/book/appendix_bdd.html#_writing_an_ft_as_a_feature_using_gherkin_syntax) +- [Gherkin Reference](https://docs.cucumber.io/gherkin/reference/) +- [Gherkin: Feature Testing Language](http://behave.readthedocs.io/en/latest/gherkin.html#features) +- [Syntax formatter for Sublime](https://packagecontrol.io/packages/Gherkin%20(Cucumber)%20Formatter) diff --git a/integration_testing/018-features/coach/class-home/class-coach-view.feature b/integration_testing/018-features/coach/class-home/class-coach-view.feature new file mode 100644 index 00000000000..c658e56a04b --- /dev/null +++ b/integration_testing/018-features/coach/class-home/class-coach-view.feature @@ -0,0 +1,21 @@ +Feature: Class coach view + Class coaches need to be able to review the progress in class(es) they are assigned to, but not other classes in the facility. + + Background: + Given I am signed in as a class coach + And there are several classes in the facility + And I am enrolled in some of the classes + + Scenario: Open the *Class home* page + When I open the sidebar + And click on *Coach > Class home* + Then I see the *Classes* page + And I see a list of the classes to which I am assigned as a *Coach* + And I cannot see any other class in the facility + When I click on the class name of a class + Then I am on *Class home* page for the class + And I can view all of the available information for the learners' progress and activities + When I click the *All classes* link + Then I am back at the *Classes* page + And I can select a different class + # Run the rest of the coach scenarios diff --git a/integration_testing/018-features/coach/class-home/coach-class-home-with-interaction.feature b/integration_testing/018-features/coach/class-home/coach-class-home-with-interaction.feature new file mode 100644 index 00000000000..9524b91ac98 --- /dev/null +++ b/integration_testing/018-features/coach/class-home/coach-class-home-with-interaction.feature @@ -0,0 +1,46 @@ +Feature: General navigation on *Class home* tab + + Background: + Given I am signed in as a class or facility coach + And I am on the *Class home* page for a class + And there are learners and coaches enrolled in the class + And the learners have interacted with lessons and quizzes + + Scenario: Review the progress of a started lesson + Given there is a lesson made visible to the learners + And there has been learner progress on a the lesson + When I look at the lesson's card + Then I see the title of the lesson, the progress bar, *Completed by N of N* and *N started* + When I click the lesson's progress bar + Then I am on the lesson page in the *Lessons* tab + And I see a high level lesson summary data + And I see a list of learners and the progress made + + Scenario: Review the progress of a started quiz + Given there is a started quiz + And there has been learner progress on the quiz + When I click the quiz progress bar + Then I am on the quiz page in the *Quizzes* tab + And I see a high level quiz summary data + And I see a list of learners and the progress made + + Scenario: Review all class activity notifications + When I click *View all* in the *Class activity* section + Then I am on the *Class activity* page + And I see a history of all notifications + And I see filters for *Resource type* and *Progress type* + + Scenario: Filter notifications by resource and progress + Given that I am on the *Class activity* notifications page + When I open the *Resource type* filter + Then I see a list of resource options + When I open the *Progress type* filter + Then I see a list of progress options: All, Completed, Started, Help needed + When I select a resource type and progress type + Then I see only results for corresponding to the applied filters + + Scenario: Print the class home page + TO DO + + Scenario: Download the class activity + TO DO diff --git a/integration_testing/018-features/coach/class-home/coach-class-home.feature b/integration_testing/018-features/coach/class-home/coach-class-home.feature new file mode 100644 index 00000000000..b7ebdc02530 --- /dev/null +++ b/integration_testing/018-features/coach/class-home/coach-class-home.feature @@ -0,0 +1,35 @@ +Feature: General navigation on *Class home* tab +# Do at the beginning, with an empty class, no resources or interactions + + Background: + Given I am signed in as a class or facility coach + And there are several classes in the facility + And I am on *Class home* for a specific class + And there are learners and coaches enrolled in the class + + Scenario: Navigate back to the class list + When I press the link *All classes* + Then I am back on the class selection page + And I see a list of all the facility classes, or those I'm assigned to (if class coach) + + Scenario: There are no quizzes and lessons + Given there are no created quizzes and lessons + When I look at the *Quizzes* and *Lessons* sections + Then I see the *There are no quizzes/lessons* message + + Scenario: There has been no activity in the class + Given that there has not been any learner engagement in the class + When I look at the *Class activity* block + Then I see *No activity in your class* message + + Scenario: No coaches assigned to class + Given I am a facility coach + And there are no coaches assigned to the class + When I look at the class home summary section at the top + Then I see no coaches listed + And I see *-* instead + + Scenario: No learners enrolled in the class + Given there are no learners enrolled in the class + When I look at the class home summary section at the top + Then I see *0* displayed as the number of learners diff --git a/integration_testing/018-features/coach/class-home/coach-notified-learner-needs-help.feature b/integration_testing/018-features/coach/class-home/coach-notified-learner-needs-help.feature new file mode 100644 index 00000000000..1bb588609c2 --- /dev/null +++ b/integration_testing/018-features/coach/class-home/coach-notified-learner-needs-help.feature @@ -0,0 +1,27 @@ +Feature: Coach tracks learner progress in a quiz + +# Prepare two browsers, or two windows/tabs of the same browser, one of them being incognito/private mode, in order to sign into one as a learner user, and as a coach in the other + + Background: + Given I have both sessions visible in two browser windows/tabs (signed into one as learner, and in the other as coach) + And there is enrolled into the class + And there is an active lesson assigned to class with one + + Scenario: Learner starts the exercise + When as learner in one window I go to the *Learn > Class* page for + Then I see there's a lesson assigned to me that I have not started + When I click to start the lesson + Then as a coach in another window I see the *'' has started ''* notification in the *Coach - '' > Class home > Class activity* block + And I also see the *'' has started '' notification in the *Class activity* block + + Scenario: Coach gets notification that learner needs help with an exercise + When as learner I intentionally make 2 incorrect answers to a question + Then within 5 seconds as a coach in another window I see the *'' needs help with ''* notification in the *Coach - '' > Class home > Class activity* block + When I as a coach I click on the notification + Then I see the detail page for + And I see the 3 red X buttons for the 3 incorrect answers to the question + When I click on each red X button + Then I below see the exact incorrect answer given as + When I check the *Show correct answer* + Then I see the correct answer + And I don't see the red X buttons diff --git a/integration_testing/018-features/coach/coach-content-syncing/coach-automatic-content-syncing.feature b/integration_testing/018-features/coach/coach-content-syncing/coach-automatic-content-syncing.feature new file mode 100644 index 00000000000..980712fcfd2 --- /dev/null +++ b/integration_testing/018-features/coach/coach-content-syncing/coach-automatic-content-syncing.feature @@ -0,0 +1,70 @@ +Feature: Coaches automatic syncing + + Background: + Given I am signed in as a coach user + + Scenario: See which learners have the *Not enough storage* error status + Given there are learner devices with not enough storage + When I go to *Coach > Class home* + And I click *View learners* + Then I am at *Coach > Class home > * page + And I see a list with all the learners enrolled in the class + And I see a *Device status* value next to the *username* of each learner + And I see a *!* red icon and a *Not enough storage* text next to any learners with not enough storage + + Scenario: See explanation of *Not enough storage* error status + Given I am at *Coach > Class home > * page + When I click the link *Information about sync statuses* + Then I see the *Information about sync statuses* modal + And I see information about all of the available sync statuses + And I see a *!* red icon and a *Not enough storage* text next to it + And I see the following text: This device does not have enough space for updates. Try checking the size of your active lessons and quizzes and archiving the ones you aren't using right now.* + + Scenario: Go to manage lessons and quizzes from the storage error alert + Given I am at *Coach > Class home > * page + And there are learner devices with not enough storage + Then I see the storage error alert above the table: *Some devices do not have enough storage for updates. Change the visibility of any active lessons and quizzes you aren't using right now to free up space.* + And I see a *Manage lessons and quizzes* link + When I click the *Manage lessons and quizzes* link + Then I am at the *Coach > Plan* tab + + Scenario: Check file size of lessons in Reports tab + Given I am at the *Coach > Reports* tab + When I look at the *Coach > Reports > Lessons* table + Then I see the following text above the table: *Total size of lessons that are visible to learners: N MB* + And I see the *Size* column between the *Recipients* and *Visible to learners* columns + And I see the size of each lesson + When I click on the title of a lesson + Then I am at the lesson details page + And I see the size of the lesson below the lesson description + + Scenario: Check file size of quizzes in Reports tab + Given I am at the *Coach > Reports* tab + When I go to the *Coach > Reports > Quizzes* tab + Then I see the following text above the *Quizzes* table: *Total size of quizzes that are visible to learners: N MB* + And I see the *Size* column between the *Recipients* and *Status* columns + And I see the size of each lesson + When I click on the title of a quiz + Then I am at the quiz details page + And I see the size of the quiz below the question order + + Scenario: Check file size of lessons in Plan tab + Given I am at the *Coach > Plan>* tab + When I look at the *Coach > Plan > Lessons* table + Then I see the following text above the table: *Total size of lessons that are visible to learners: N MB* + And I see the *Size* column between the *Title* and *Recipients* columns + And I see the number of resources for each lesson + And I see the size of each lesson + When I click on the title of a lesson + Then I am at the lesson details page + And I see the size of the lesson below the lesson description + + Scenario: Check file size of quizzes in Plan tab + Given I am at the *Coach > Plan>* tab + When I go to *Coach > Plan > Quizzes* tab + Then I see the following text above the quizzes table: *Total size of quizzes that are visible to learners: N MB* + And I see the *Size* column between the *Recipients* and *Status* columns + And I see the size of each quiz + When I click on the title of a quiz + Then I am at the quiz details page + And I see the size of the quiz below the question order diff --git a/integration_testing/018-features/coach/coach-content-syncing/coach-can-see-sync-statuses-for-connected-devices.feature b/integration_testing/018-features/coach/coach-content-syncing/coach-can-see-sync-statuses-for-connected-devices.feature new file mode 100644 index 00000000000..49fd2191f8a --- /dev/null +++ b/integration_testing/018-features/coach/coach-content-syncing/coach-can-see-sync-statuses-for-connected-devices.feature @@ -0,0 +1,26 @@ +Feature: Coaches can see sync statuses for connected devices + + Background: + Given I am signed in as a coach user + And there is at least one channel imported on the device + And there is a class to which I am assigned as a coach + And I have created a lesson and a quiz + And there are Learn-only devices which are connected to the classroom server + And learners registered to my class have completed a lesson and a quiz + + Scenario: Coach can see the sync statuses of the learners from the *Class home* page + When I go to *Coach > Class home* + And I click the *View learners* hyperlink + Then I see the *Learners in ''* table with all devices connected to the classroom server + And I see the sync statuses of every connected device + + Scenario: Coach can see the sync statuses of the learners from the *Reports* page + When I go to *Coach > Reports* + And I click the *View learner devices* hyperlink + Then I see the *Learners in ''* table with all devices connected to the classroom server + And I see the sync statuses of every connected device + + Scenario: Coaches can see more information regarding sync statuses + Given I am at the *Learners in ''* page + When I click the *Information about sync statuses* hyperlink + Then I see a modal giving me information on each individual sync status diff --git a/integration_testing/018-features/coach/coach-print-reports.feature b/integration_testing/018-features/coach/coach-print-reports.feature new file mode 100644 index 00000000000..2f8a72decf2 --- /dev/null +++ b/integration_testing/018-features/coach/coach-print-reports.feature @@ -0,0 +1,100 @@ +Feature: Coaches need to be able to print or save as PDF all the available views inside the *Reports* tab and its subtabs + + Background: + Given I am signed in as a facility or class coach + And I am on *Coach > Reports* tab + And there are learners divided into groups and in the + And there are and that some of the learners have started and/or completed + And there are and that some of the learners have interacted with + And I have access to a working paper printer device + And my browser is capable of saving files in the PDF format + + Scenario: Print report (for all) + When I click the *Print report* button + Then I see the default print dialog for my chosen browser + When I select my paper printer device + And I make other adjustments in the printer settings according to my needs # quality, margins, etc. + And I confirm # could be *Print* or *OK* depending on the browser + Then I have a paper version of the report + + Scenario: Save report as PDF (for all) + When I click the *Print report* button + Then I see the default print dialog for my chosen browser + When I select *Save as PDF* # wording might be different depending on the browser + And I make other adjustments in the PDF settings according to my needs # headings, margins, etc. + And I confirm # could be *Save* or *OK* depending on the browser + Then I have a PDF version of the report + + Scenario: Check print results for Lessons' reports + + When I print or save the report from *Reports > Lessons* subtab + Then on the paper or PDF I see a table with *Title*, *Progress* and *Recipients* columns for and + + When I print or save the report from *Reports > Lessons > '' > Report* subtab + Then on the paper/PDF I see a high level overview on top + And below I see the table with the same columns and values for all the resources in the , as in *Reports > Lessons > '' > Report* subtab + + When I print or save the report from *Reports > Lessons > '' > Report > ''* page + And the *View by groups* is unchecked + Then on the paper/PDF I see a high level overview on top + And below I see the table with the same columns and values for all the learners in the , as in *Reports > Lessons > '' > Report > ''* page + + When I print or save the report from *Reports > Lessons > '' > Report > ''* page + And the *View by groups* is checked + Then on the paper/PDF I see a section for and section for + And for each group section I see a high level group overview on top + And below I see the table with the same columns and values for all the learners in the group, as in *Reports > Lessons > '' > Report > ''* page + + When I print or save the report from *Reports > Lessons > '' > Learners* subtab + Then on the paper/PDF I see a high level overview on top + And below I see the table with the same columns and values for all the learners in the , as in *Reports > Lessons > '' > Learners* subtab + + When I print or save the report from *Reports > Lessons > '' > Learners > ''* page + Then on the paper/PDF I see a high level overview on top + And below I see the table with the same columns and values for all the resources in , as in *Reports > Lessons > '' > Learners > ''* page + + Scenario: Check print results for Quizzes' reports + + When I print or save the report from *Reports > Quizzes* subtab + Then on the paper/PDF I see a table with *Title*, *Average score*, *Progress* and *Recipients* columns for and + + When I print or save the report from *Reports > Quizzes > '' > Report* subtab + Then on the paper/PDF I see a high level overview on top + And below I see the table with the same columns and values for all the learners in the , as in *Reports > Quizzes > '' > Report* subtab + + When I print or save the report from *Reports > Quizzes > '' > Difficult questions* subtab + Then on the paper/PDF I see a high level overview on top + And below I see the table with the same columns and values for all the questions in that at least 2 learners gave incorrect answers to, as in *Reports > Quizzes > '' > Difficult questions* subtab + + + Scenario: Check print results for Groups' reports + + When I print or save the report from *Reports > Groups* subtab + Then on the paper/PDF I see a table with the same columns and values for and , as in *Reports > Groups* subtab + + When I print or save the report from *Reports > Groups > '' > Reports> ''* page + Then on the paper/PDF I see a table with the same columns and values for resources in assigned to , as in *Reports > Groups > '' > Reports> ''* page + + When I print or save the report from *Reports > Groups > '' > Reports> '' > Report* subtab + Then on the paper/PDF I see a high level overview on top + And below I see a table with the same columns and values for all the learners in that is assigned to, as in *Reports > Groups > '' > Reports> '' > Report* subtab + + When I print or save the report from *Reports > Groups > '' > Reports> '' > Difficult questions* subtab + Then on the paper/PDF I see a high level overview on top + And below I see a table with the same columns and values for all the questions in that at least 2 learners gave incorrect answers to, as in *Reports > Groups > '' > Reports> '' > Difficult questions* subtab + + When I print or save the report from *Reports > Groups > '' > Members* subtab + Then on the paper/PDF I see a table with the same columns and values for all the learners in , as in *Reports > Groups > '' > Members* subtab + + # Reports printed from *Reports > Groups > '' > Members > ''* pages are the same as *Reports > Learners > ''* pages + + Scenario: Check print results for Learners' reports + + When I print or save the report from *Reports > Learners* subtab + Then on the paper/PDF I see a table with the same columns and values for all the learners in the , as in *Reports > Learners* subtab + + When I print or save the report from *Reports > Learners > '' > Reports* subtab + Then on the paper/PDF I see a high level overview on top + And below I see table(s) for lesson(s) and quizzes they have been assigned, with the same columns and values as in *Reports > Learners > '' > Reports* subtab + + # Reports printed from *Reports > Learners > '' > ''* pages are essentially the same as *Reports > Lessons > '' > Learners > ''* pages diff --git a/integration_testing/018-features/coach/groups/coach-assign-learners-groups.feature b/integration_testing/018-features/coach/groups/coach-assign-learners-groups.feature new file mode 100644 index 00000000000..b2a8c937dcf --- /dev/null +++ b/integration_testing/018-features/coach/groups/coach-assign-learners-groups.feature @@ -0,0 +1,38 @@ +Feature: Assign and remove learners to and from groups + Coach needs to be able to assign learners to groups to support different learning needs and speeds + + Background: + Given I am signed in to Kolibri as a coach user + And I am on the *Coach - '' > Plan > Groups* page + And there are groups created + + Scenario: Enroll learners + When I click on group + Then I see the group page + But I don't see any learners assigned + When I click the *Enroll learners* button + Then I see the *Enroll learners into ''* page + And I see the list of all learners not enrolled in the + When I click on the checkbox(es) of the learner(s) I want to enroll + Then I see the *Confirm* button is active + When I click the *Confirm* button + Then the page reloads + And I see the snackbar notification *Updated* + And I see the group page again + And I see the list of enrolled learner(s) + And I see the number of learners is increased + + Scenario: Remove learners + Given I am on the group page + And I see the list of learners assigned to group + When I click the *Remove* button for a learner + Then I see *Remove user* modal + When I click the *Remove* button + Then the modal closes + And I see the snackbar notification *Learner removed* + And I see the group page again + And I see the name of removed learner(s) is not listed + And I see the number of learners is decreased + But if I click the *Cancel* button + Then the modal closes + And still see the learner(s) on the list diff --git a/integration_testing/018-features/coach/groups/coach-class-reports-groups.feature b/integration_testing/018-features/coach/groups/coach-class-reports-groups.feature new file mode 100644 index 00000000000..60d27fe912f --- /dev/null +++ b/integration_testing/018-features/coach/groups/coach-class-reports-groups.feature @@ -0,0 +1,49 @@ +Feature: Groups subtab + Coach needs to be able to review reports scoped to groups of learner + + Background: + Given I am logged in as a coach + And I am on *Coach - '' > Reports* tab + And there is a with a and assigned to + + Scenario: Navigate into the *Groups* subtab + Given I am on any tab inside *Coach - '' > Reports* + When I click the *Groups* subtab + Then I see a table rows with groups and data columns pertaining to each group + + Scenario: Review reports for a specific group + Given I am on the *Coach - '' > Reports > Groups* subtab + When I click group + Then I see the profile page + And I see the list of lessons and quizzes assigned to in the *Reports* subtab + + Scenario: Review progress of a quiz assigned to a group + Given I am on the profile page + And there are quizzes assigned to it + When I click on the quiz assigned to + Then I see the quiz report page for + And I see all quiz data scoped to + + Scenario: Review learner’s quiz report + Given I am on the report for + When I click on learner name + Then I see the learner individual attempt report for the + + Scenario: Review progress of a lesson assigned to a group + Given I am on the profile page + And there are lessons assigned to it + When I click on the assigned to + Then I see the report page for + And I see the columns for *Progress* and *Average time spent* for each resource + + Scenario: Review progress of group members + Given I am on the profile page + When I click on *Members* subtab + Then I see a list of all the members of that group + And I see the columns displaying quiz averages, resource completions, and last activity for each member + + Scenario: Review the group's activity + Given I am on the profile page + When I click on the *Activity* subtab + Then I see an activity feed of resources members engaged with + And I see the *Resource type* and *Progress type* filter options diff --git a/integration_testing/018-features/coach/groups/coach-create-group.feature b/integration_testing/018-features/coach/groups/coach-create-group.feature new file mode 100644 index 00000000000..e881ea5f19b --- /dev/null +++ b/integration_testing/018-features/coach/groups/coach-create-group.feature @@ -0,0 +1,25 @@ +Feature: Coach creates groups + Coach needs to be able create groups to support different learning needs and speeds + + Background: + Given I am signed in to Kolibri as a coach user + And I am in *Coach - '' > Plan > Groups* page + And there are learners in the selected class + + Scenario: Create group + When I click on *New group* button + Then I see *Create new group* modal + When I enter a group name + And I click *Save* button + Then the modal closes + And I see the snackbar notification *Created* + And I see the new group in *Groups* tab + + Scenario: Check validation for the name field + When I try to enter a name with more than 50 characters + Then I see that the name is cut at 50 + When I input a group name same as for an already existing group + Then I see the error notification *A group with that name already exists* + When I leave the name field empty + And I click *Save* + Then I see the error notification *This field is required* diff --git a/integration_testing/018-features/coach/groups/coach-delete-group.feature b/integration_testing/018-features/coach/groups/coach-delete-group.feature new file mode 100644 index 00000000000..bf2286e94e3 --- /dev/null +++ b/integration_testing/018-features/coach/groups/coach-delete-group.feature @@ -0,0 +1,20 @@ +Feature: Coach deletes group + Coach needs to delete a group that is not needed anymore + + Background: + Given there are learners in the selected class + And there is at least one group created and learners assigned to it + And I am signed in to Kolibri as a coach user + And I am on the *Coach - '' > Plan > Groups* page + + Scenario: Coach deletes the group + When I click the *Options* button + And I select *Delete* + Then the *Delete group* modal appears + When I click the *Delete* button + Then the modal closes + And I see a snackbar confirmation *Deleted* + And I don't see the deleted group + But if I click the *Cancel* button + Then the modal closes + And I still see the group on the list diff --git a/integration_testing/018-features/coach/groups/coach-rename-group.feature b/integration_testing/018-features/coach/groups/coach-rename-group.feature new file mode 100644 index 00000000000..0419fcba329 --- /dev/null +++ b/integration_testing/018-features/coach/groups/coach-rename-group.feature @@ -0,0 +1,24 @@ +Feature: Coach needs to be able to rename groups + + Background: + Given that there are groups created + And I am signed in to Kolibri as coach user + And I am in the *Coach - '' > Plan > Groups* page + + Scenario: Edit the group name + When I click *Options* button + And I select *Rename* option + Then *Rename group* modal appears + When I change group name + And I click *Save* + Then the modal closes + And I see the changed group name + + Scenario: Check validation for the name field + When I try to enter a name with more than 50 characters + Then I see that the name is cut at 50 + When I input a group name same as for an already existing group + Then I see the error notification *A group with that name already exists* + When I leave the name field empty + And I click *Save* + Then I see the error notification *This field is required* diff --git a/integration_testing/018-features/coach/groups/coach-track-lesson-groups-notifications.feature b/integration_testing/018-features/coach/groups/coach-track-lesson-groups-notifications.feature new file mode 100644 index 00000000000..af6ebcecb20 --- /dev/null +++ b/integration_testing/018-features/coach/groups/coach-track-lesson-groups-notifications.feature @@ -0,0 +1,54 @@ +Feature: Lessons notifications for multiple groups + Class coaches and facility coaches need to be able to see all notifications (*started*, *completed*, and *needs help*) when groups of learners engage with lessons. + + # Prepare four browsers, or three windows/tabs of the same browser, one of them being incognito/private mode, in order to sign into three as learner users, and as a coach in the other + + Background: + Given I have all sessions visible in four browser windows/tabs (signed into three as learners, and in the other as ) + And I am signed in to Kolibri as a facility or class + And there are three learners enrolled in class I am assigned to + And and are assigned to + And is assigned to + And I have a lesson with one exercise assigned to the two groups + + Scenario: Multiple groups start on a lesson + When as each learner in in another window I go to *Learn > Class* page for + Then I click into the assigned + And I start the in the + Then as in another window I navigate to *Coach - '' > Class Home* page + And I look into the *Class activity* block + Then I see one *'' and 1 other started ''* for notification + And I see one *'' started on ''* for notification + When I click on the notification + Then I see lesson report page + And I see a table with and , and their progress status on the + When I click on the notification + Then I see the lesson report page + And I see a table with progress status on the + + Scenario: Multiple groups complete on a lesson + Given that as each learner in another window I complete the in the + And as in another window I am at *Coach - '' > Class Home* page + When I look at *Class activity* block + Then I see *Everyone completed ''* notification + And I see one *Everyone completed ''* notification + When I click on the notification + Then I see lesson report page + And I see a table with and , and their completed status on the + When I click on the notification + Then I see the lesson report page + And I see a table with completed status on the + + Scenario: Multiple groups need help on a lesson + Given that as each learner in and in another window I go to *Learn > '' > ''* + And I get multiple incorrect attempts on at least one question in the exercise + And as in another window I see *Coach - '' > Class Home* page + When I look at *Class activity* block + Then I see one *Everyone needs help on ''* notification + And I see one *'' needs help on ''* notification + When I click on the notification + Then I see lesson report page + And I see a table with and , and their need help status on the + When I click on the notification + Then I see the lesson report page + And I see a table with need help status on the diff --git a/integration_testing/018-features/coach/learners/coach-class-reports-learners.feature b/integration_testing/018-features/coach/learners/coach-class-reports-learners.feature new file mode 100644 index 00000000000..2f9a1a94c51 --- /dev/null +++ b/integration_testing/018-features/coach/learners/coach-class-reports-learners.feature @@ -0,0 +1,35 @@ +Feature: Learners subtab + + Scenario: Navigate into the *Learners* subtab + Given I am on any tab inside *Coach - '' > Reports* + When I click the *Learners* subtab + Then I see the list of learners currently enrolled in the class + And I see the columns with progress data for each learner + + Scenario: Review reports for a specific learner + Given I am on the *Coach - '' > Reports > Learners* subtab + When I click on the name of the learner + Then I see the learner profile + And I see their high level summary data + And I see *Reports* and *Activity* subtabs + And I see the history of lessons and quizzes assigned to them in the *Reports* subtab + + Scenario: Review progress of a quiz assigned to a learner + Given I am on the learner profile + And there are quizzes assigned to them + When I click on the quiz assigned to + Then I see the quiz report page for + And I see all quiz data scoped to + + Scenario: Review progress of a lesson assigned to a learner + Given I am on the learner profile + And there are lessons assigned to them + When I click on the assigned to + Then I see the report page for + And I see the learner’s progress on all the resources + + Scenario: Review the learner's activity + Given I am on the learner profile + When I click on the *Activity* subtab + Then I see an activity feed of resources that they engaged with + And I see the *Resource type* and *Progress type* filter options diff --git a/integration_testing/018-features/coach/lessons/coach-adds-or-removes-bookmarked-resources-to-lesson.feature b/integration_testing/018-features/coach/lessons/coach-adds-or-removes-bookmarked-resources-to-lesson.feature new file mode 100644 index 00000000000..b85c51f3c90 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-adds-or-removes-bookmarked-resources-to-lesson.feature @@ -0,0 +1,49 @@ +Feature: Coach can add or remove bookmarked lesson resources + + Background: + Given I am signed in as a coach user + And there is at least one channel imported on the device + And there is a class to which I am assigned as a coach + And I have created a lesson + And I have several bookmarked resources + + Scenario: Coach can add a bookmarked resource to a lesson + When I go to the *Coach > Lessons > * page + And I click the *Manage resources* button + Then I see the *Manage lesson resources* page + And I see the *Bookmarks* section above the *Search* field + When I click on the *Bookmarks* section + Then I see a list of my bookmarked resources with a checkbox for each one of them + When I select a bookmarked resource via the checkbox + Then I see a snackbar appear confirming the resource is added to my lesson + When I click the *Close* button + Then I am back at the *Coach > Lessons > * page + And I can see that the selected bookmarked resource is added to the lesson resources + + Scenario: Coach can add multiple bookmarked resources to a lesson + When I go to the *Coach > Lessons > * page + And I click the *Manage resources* button + Then I see the *Manage lesson resources* page + And I see the *Bookmarks* section above the *Search* field + When I click on the *Bookmarks* section + Then I see a list of my bookmarked resources with a checkbox for each one of them + When I select several bookmarked resource via the checkboxes + Then I see a snackbar appear confirming that each resource is added to my lesson + When I click the *Close* button + Then I am back at the *Coach > Lessons > * page + And I can see that the selected bookmarked resources have been added to the lesson resources + + Scenario: Coach can remove bookmarked resources from a lesson + Given I have added bookmarked resources to a lesson + When I go to the *Coach > Lessons > * page + And I click the *Manage resources* button + Then I see the *Manage lesson resources* page + And I see the *Bookmarks* section above the *Search* field + When I click on the *Bookmarks* section + Then I see a list of my bookmarked resources + And I see that the checkboxes of the already added to the lesson resources are checked + When I uncheck some of the bookmarked resources + Then I see a snackbar appear confirming that each resource is removed from my lesson + When I click the *Close* button + Then I am back at the *Coach > Lessons > * page + And I can see that the deselected bookmarked resources have been removed from the lesson resources diff --git a/integration_testing/018-features/coach/lessons/coach-adds-practice-quiz-to-lesson.feature b/integration_testing/018-features/coach/lessons/coach-adds-practice-quiz-to-lesson.feature new file mode 100644 index 00000000000..89e308072e6 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-adds-practice-quiz-to-lesson.feature @@ -0,0 +1,15 @@ +Feature: Coach adds practice quiz to a lesson + + Scenario: Coaches can add a practice quiz to a lesson resource list + Given that I am on the lesson resource management page + When I browse the content tree + And I find and select a practice quiz card checkbox + Then I see a snackbar appear confirming my action + When I exit the lesson resource management page + Then I see that the practice quiz is in the lesson resource list + + Scenario: Coaches preview a practice quiz before adding it to a lesson + Given that I am on the lesson resource management page + When I browse the content tree + And I find and click an practice quiz content card + Then I see a preview of the practice quiz diff --git a/integration_testing/018-features/coach/lessons/coach-copy-lesson.feature b/integration_testing/018-features/coach/lessons/coach-copy-lesson.feature new file mode 100644 index 00000000000..fee98e205d2 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-copy-lesson.feature @@ -0,0 +1,47 @@ +Feature: Coach copies lesson + Coaches need to be able to copy lessons to the same or a different class, and assign it to different groups or an entire class + + Background: + Given I am signed in to Kolibri as coach user + And I am on *Coach - '' > Plan > Lessons* page + And I see the lesson + + Scenario: Copy lesson to the same class and assign to the entire class + When I click the lesson + Then I see the page + When I click *Options* button + And I select *Copy lesson* option + Then I see the *Copy lesson to* modal + And I see *'' (current class)* is selected + When I click *Continue* button + Then the modal content changes and asks to select recipients + And I see *Entire class* selected + When I click *Copy* button + Then the modal closes + And the snackbar confirmation appears + When I click on *All Lessons* + Then I see the *Copy of ''* in the list of lessons + And I see *Entire class* value for it under the *Recipients* heading + + Scenario: Copy lesson to a different class and assign it to just one group + Given there is a class that has a group + When I click the lesson + Then I see the page + When I click *Options* button + And I select *Copy lesson* option + Then I see the *Copy lesson to* modal + And I see *'' (current class)* is selected + When I select class + And I click *Continue* button + Then the modal content changes and asks to select recipients + And I see *Entire class* selected + When I select group + And I click *Copy* button + Then the modal closes + And the snackbar confirmation appears + When I open the sidebar + And I click on *Coach* + And I click class + And I click on *Plan > Lessons* tab + Then I see the *Copy of ''* in the list of lessons + And I see *1 group* value for it under the *Recipients* heading diff --git a/integration_testing/018-features/coach/lessons/coach-create-lesson.feature b/integration_testing/018-features/coach/lessons/coach-create-lesson.feature new file mode 100644 index 00000000000..0c4056b1c6f --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-create-lesson.feature @@ -0,0 +1,183 @@ +Feature: Coach creates lessons + Coach needs to be able to create lessons from existing content + + Background: + Given I am signed in to Kolibri as a coach user + And I am on the *Coach - '' > Plan > Lessons* page + And there is a channel and topic on the device + + Scenario: Coach creates a new lesson for entire class + When I click *New lesson* button + Then I see the *Create new lesson* modal + When I fill in the title for the + And I fill in the description # optional + And I set *Recipients* to group(s) # optional + And I click *Continue* button + Then the modal closes + And I see the lesson page + + Scenario: Check validation for the title field + When I try to enter a title with more than 50 characters + Then I see that the name is cut at 50 + When I input a same lesson title as for an already existing lesson + Then I see the error notification *A lesson with this name already exists* + When I leave the title field empty + And I click *Continue* + Then I see the error notification *This field is required* + + Scenario: Assign existing lesson to different recipient groups + # Repeat the scenario from the *Coach - '' > Report > Lessons > ''* page + When I change *Recipients* by selecting *Entire class* or one of the groups + And I click the *Save changes* button + Then I see the lesson page again + And the *Recipients* field reflects the changes I made + + Scenario: Assign individual learners + When I change *Recipients* by selecting *Individual learners* + Then I see a table listing all of the learners in the class. + When I change *Recipients* by selecting both *Individual learners* and any other group that has learners + Then I see the learners in the selected group(s) have the checkboxes by their names disabled + When I select learners in the table by clicking the checkboxes next to their names + And I click *Save changes* + Then I can log in as one of the selected individual learners and view the lesson + When I change *Recipients* by selecting *Entire class* then all groups and *Individual learners* become unchecked + And I no longer see the table of learners + + Scenario: Manage lesson resources + Given that I have created the lesson with title + When I click *Manage resources* button + Then I am on the *Manage resources in ''* page + And I see the content channel + When I select channel + Then I see its topics + When I navigate down to a single topic and click that + # A topic may have one or more sub-topics in the topic tree. + Then I see the list of resources in that topic + When I click on a single resource + Then I see the preview page for the selected resource + And I see the *Add* button + When I click *Add* button + Then I see the snackbar notification + And I see the *Manage resources in ''* page again + And I see the *N resources in this lesson* value is increased by 1 + When I click the *Close* button at the bottom + Then *Manage resources in ''* page closes + And I see the lesson page again + And I see the resources I added to the lesson + + Scenario: Search from browse mode (with results) + Given I am browsing the topics + When I enter in the *Search* field + And I press the *Submit search* button (magnifying glass) + Then I see the *Results for ''* header + And I see the search results for + And I see the search filters + And I see the *Exit search* button + + Scenario: Search again from search results page + Given I am on the *Results for ''* page + When I enter a in the *Search* textbox + And I press the *Submit search* button (magnifying glass) + Then the previous search results disappear + And I see the results for the + + Scenario: Exit search with no browser history + Given I am on the *Results for ''* page + And I arrived to this page directly from a URL + When I press the *Exit search* button + Then I return to the listing of channels + + Scenario: Exit search with browser history + Given I am on the *Results for ''* page + And I arrived to this page directly from a topic + When I press the *Exit search* button + Then I return to the the content listing of the last topic + + Scenario: Search has no results + Given I am on the *Results for ''* page + And There are no results for + Then I see a message saying *No results for ''* + And I don't see available options in search filters + + Scenario: Clear results and reset search + Given that there are results from the previous search + When I press the *X* button in the search field + Or I delete the previous search term and press *Enter* + Then I still see the previous search results (no change) + + Scenario: Add resources from the search results page + Given I am on the search results page + And there are resources available in the search results + When I check one resource checkbox + Then I see a snackbar confirmation that *N resources added* + + Scenario: Remove a topic or exercise from the search results page + Given I am on the search results page + And there are resources available in the search results + And some of them are selected + When I uncheck one checkbox + Then I see the a snackbar confirmation *N resources removed* + + Scenario: Filter search results by type + Given I am on the search results page + When I open the *Type* filter dropdown + Then I can see the available formats I can filter by + When I select *Exercises* option + Then I see only exercises among search results + When I select *Topics* option + Then I see only topics among search results + When I select the option *All* + Then I see both topics and exercises in search results + + Scenario: Use the channel filter + Given I am on the search results page + And I see content from channels related to the searched keyword + When I select a specific channel from the channel filter dropdown + Then I see the search results are filtered and present content only from the selected channel + When I select *All* in the filter dropdown + Then I see that results are not filtered anymore + + Scenario: Filter coach content in and out + Given I am on the search results page + When I select *Coach* filter option + Then I see the search results are filtered and present only content for coaches + When I select *Non-coach* filter option + Then I see the search results are filtered and exclude content for coaches + When I select the *All* filter option + Then I see the search results include both coach and non-coach content + + Scenario: View metadata on exercise cards in search results + Given I am on the search results page + And there are exercises in the search results + When I see an exercise card + Then I see its title + And I see its description + And I see whether it is a coach exercise or not + + Scenario: View metadata on topic cards in search results + Given I am on the search results page + And there are topics in the search results + And one of those topics has content for coaches + When I see a topic card + Then I see its title + And I see its description + And I see how many coach exercises/topics it contains + + Scenario: Preview a resource from the search results and add/remove it to and from the lesson + Given I am on the search results page + And there are resources in the search results page + When I click an exercise card + Then I am on the preview page for exercise + When I click the *Add* button + Then I see a snackbar confirmation *Added 1 resource to the lesson* + And I see the *Remove* button + When I click the *Remove* button + Then I see a snackbar confirmation *Removed 1 resource from the lesson* + When I click the *back arrow* button + Then I see the search results page again + And I see my results are still present + + Scenario: Exit the search results page + Given I am on the search results page + When I click *Exit search* + Then I see the *Manage resources in ''* page again diff --git a/integration_testing/018-features/coach/lessons/coach-delete-lesson.feature b/integration_testing/018-features/coach/lessons/coach-delete-lesson.feature new file mode 100644 index 00000000000..dbc13ee0b89 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-delete-lesson.feature @@ -0,0 +1,21 @@ +Feature: Coach deletes lesson + Coach needs to be able to delete the lesson when necessary + + Background: + Given I am signed in to Kolibri as coach user + And I am on *Coach - '' > Plan > Lessons* page + And I see the lesson + + Scenario: Delete lesson + When I click the lesson + Then I see the lesson page + When I click *Options* button + And I select *Delete* + Then I see the *Delete lesson* modal + When I click *Delete* button + Then the modal closes + And the snackbar notification appears + And I don't see the on the list of *Lessons* + But if I click the *Cancel* button + Then the modal closes + And I still see the lesson on the list diff --git a/integration_testing/018-features/coach/lessons/coach-edit-lesson-details.feature b/integration_testing/018-features/coach/lessons/coach-edit-lesson-details.feature new file mode 100644 index 00000000000..708fb02ef44 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-edit-lesson-details.feature @@ -0,0 +1,65 @@ +Feature: Coach edits lessons + Coach needs to be able to edit existing lesson title and description, and to reassign lessons to group(s) or entire class + + Background: + Given I am signed in to Kolibri as a coach user + And I am on the *Coach - '' > Plan > Lessons > ''* page + And there are 2 or more learner groups + And there is a lesson created previously + + Scenario: Edit existing lesson title + # Repeat the scenario from the *Coach - '' > Report > Lessons > ''* page + When I click the *Options* dropdown menu + And I select the *Edit details* option + Then I see the *Edit lesson details* page + When I edit the lesson *Title* and leave the field + And I click the *Save changes* button + Then I see the lesson page again + And I see the title of the lesson is changed + # And I see the snackbar notification “Lesson changes saved” # No snackbar + + Scenario: Cannot change the title of an existing lesson if it is already used + # Repeat the scenario from the *Coach - '' > Report > Lessons > ''* page + Given There exists a lesson called "Second Lesson" + When I enter "Second Lesson" in the *Title* field + And I either move to a different field or click *Save changes* + Then the *A lesson with this name already exists* error notification appears + And I cannot save until I choose another title + + Scenario: Edit existing lesson description + # Repeat the scenario from the *Coach - '' > Report > Lessons > ''* page + When I edit the lesson *Description* + And I click the *Save changes* button + Then I see the lesson page again + And I see the description of the lesson is changed + # And I see the snackbar notification “Lesson changes saved” # No snackbar + + Scenario: Reassign existing lesson to different recipient groups + # Repeat the scenario from the *Coach - '' > Report > Lessons > ''* page + When I change *Recipients* by selecting *Entire class* or one of the groups + And I click the *Save changes* button + Then I see the lesson page again + And the *Recipients* field reflects the changes I made + + Scenario: Assign individual learners + When I change *Recipients* by selecting *Individual learners* + Then I see a table listing all of the learners in the class. + When I change *Recipients* by selecting both *Individual learners* and any other group that has learners + Then I see the learners in the selected group(s) have the checkboxes by their names disabled + When I select learners in the table by clicking the checkboxes next to their names + And I click *Save changes* + Then I can log in as one of the selected individual learners and view the lesson + When I change *Recipients* by selecting *Entire class* then all groups and *Individual learners* become unchecked + And I no longer see the table of learners + + Scenario: Preview lesson resource from *Plan > Lessons > '' + Given has at least one resource + When I click on the link for lesson resource title + Then I see the resource in a full screen page + + Scenario: Preview lesson resource from *Report > Lessons > '' + Given has at least one resource + When I click on the link for lesson resource title in the *Report* tab + Then I see the report for all the learners for that resource + When I click the *Preview* button + Then I see the resource in a full page diff --git a/integration_testing/018-features/coach/lessons/coach-lesson-difficult-questions.feature b/integration_testing/018-features/coach/lessons/coach-lesson-difficult-questions.feature new file mode 100644 index 00000000000..f8966e5e3e4 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-lesson-difficult-questions.feature @@ -0,0 +1,28 @@ +Feature: Coach reviews lesson to discover difficult questions +Coach needs to be able to determine which questions in a lesson are difficult + +# Prepare two browsers, or two windows/tabs of the same browser, one of them being incognito/private mode, in order to sign in into one as a learner user, and as a coach in the other + + Background: + Given I have both sessions visible in two browser windows/tabs (signed into one as learner, and in the other as coach) + And there and enrolled in the class + And there is a with and assigned to class + + Scenario: 1 learner gives incorrect answer + When I as a give 1 incorrect answer to question in the + Then I as a coach go to *Coach - '' > Reports > Lessons > '' > Difficult questions* subtab + And I see the question under the *Question* column + And I see *1 of 1 needs help* under the *Help needed* column + + Scenario: 2 learners give incorrect answers + When I as a give 1 incorrect answer to question in the + And I as a also give incorrect answer to question in the + Then I as a coach go to *Coach - '' > Reports > Lessons > '' > Difficult questions* subtab + And I see the question under the *Question* column + And I see *2 of 2 need help* under the *Help needed* column + + Scenario: 2 learners give correct answers + When I as a give correct answer to question in the + And I as a also give correct answer to question in the + Then I as a coach go to *Coach - '' > Reports > Lessons > '' > Difficult questions* subtab + And I don't see any question under the *Question* column diff --git a/integration_testing/018-features/coach/lessons/coach-lesson-manage-resources.feature b/integration_testing/018-features/coach/lessons/coach-lesson-manage-resources.feature new file mode 100644 index 00000000000..7788ededb72 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-lesson-manage-resources.feature @@ -0,0 +1,38 @@ +Feature: Coach manages lesson resources + Coaches need to be able to manage (add more, re-order and remove) the resources in a lesson according to their needs + + Background: + Given I am signed in to Kolibri as coach user + And there is a lesson created with some resources already added + And I am on *Coach - '' > Plan > Lessons > ''* page + + Scenario: Add or remove resources + When I click the *Manage resources* button + Then I am on the *Manage resources in ''* page + And I see the *N resources in this lesson* info + And I can add and remove resources same as during lesson creation + + Scenario: Exit without changes + Given that I haven’t made any changes on *Manage resources in ''* page + When I click on the *X* to close the *Manage resources in ''* page + OR I click *Finish* button + Then I am back on the lesson page + + Scenario: Reorder resources in the lesson by mouse drag and drop + When I move the cursor over a resource under the *Resources* heading + Then it transforms to a hand + When I drag and drop the resource up or down + Then the snackbar notification appears + And I see the resource in the new position + + Scenario: Reorder resources in the lesson by keyboard + When I use the TAB key to focus the resource + Then I see the focus ring around either up or down arrow + When I press the ENTER or SPACEBAR key + Then the snackbar notification appears + And I see the resource in the new position + + Scenario: Remove lesson resources + When I click the *Remove* button for resource + Then the snackbar notification appears + And I don't see the on the list of resources anymore diff --git a/integration_testing/018-features/coach/lessons/coach-lessons.feature b/integration_testing/018-features/coach/lessons/coach-lessons.feature new file mode 100644 index 00000000000..2ed9ba7e920 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-lessons.feature @@ -0,0 +1,105 @@ +Feature: Lessons landing page + Coach can see the lessons assigned to the class and the learner's progress in the lesson's summary page + + Background: + Given I am signed in as a coach + And I am at *Coach > Lessons* + And there are lessons with resources assigned to the class + + Scenario: Lessons page overview + When I go to *Coach > Lessons* + Then I see the *Lessons* page + And I see the *New lesson* button + And I see the class name, the total size of lessons visible to learners, filters by status and recipients, *View learner devices* link, print report, export as CSV + And I see a table with all of the lessons with the following columns: *Title*, *Progress*, *Size*, *Recipients*, *Visible to learners* + + Scenario: Review lesson details + When I click on the title of a lesson + Then I see the lesson summary page + And I see the lesson title, the *Manage resources* button and the *...* button next to it + And I see the side panel with *Visible to learners* status, *Recipients*, *Description*, *Class*, *Size*, *Date created* + And I see the *Resources* tab with a table with the available lesson resources and and *Title*, *Progress* and *Average time spent* columns for each resource + And I see options to rearrange the order of the resources or to remove a resource + And I see the *Learners* tab + When I click on the *Learners* tab + Then I see a table with the learners and the following columns: *Name*, *Progress*, *Groups + + Scenario: Review resource progress *Report* subtab + When I click on a resource + Then I see the table of learners + And I see the summary icons (learners who completed, started, not started, and struggling) + And I see engagement data (status, time spent, group, last activity) for each learner assigned the resource + + Scenario: Review progress from *Learners* subtab + Given that I am on a lesson details page + When I click on the *Learners* subtab + Then I see the table with learners who are assigned that lesson + And I see the columns for progress on the overall lesson resources + + Scenario: Review exercise attempt report + Given that I am on *Coach - '' > Reports > Lessons > '' > Learners* subtab + When I click on the name + Then I see the table with resources in the lesson + And I see columns with progress and time spent on each exercise or resource in the + When I click on exercise + Then I see the attempt report of the for each question in the + + Scenario: Learner has not started a resource + When a learner has not started or + Then the learner's *Progress* column states *Not started* + + Scenario: Learner has submitted an answer to a resource + When a learner has answered a question on a or + Then the *Time Spent* column automatically updates the time value + And the *Last Activity* column automatically updates the time value + + Scenario: Learner has started a resource + When a learner has started an or + Then the learner's *Progress* column states *Started* + + Scenario: Learner has completed a resource + When a learner has completed or + Then their *Progress* column states *Completed* + + Scenario: Learner needs help with a resource + When a learner has given 2 wrong answers in the + Then their *Progress* column states *Needs help* + + Scenario: Review exercise attempt report + Given that I am on the *'' > Report* subtab + And is an exercise + When I click the learner name + Then I see their attempts for each question in the exercise + + Scenario: Open the Learners tab + Given that I am on the *'' > Report* subtab + When I click to open the *Learners* subtab + Then I see a table with learners to whom the is assigned + And I see the *Progress* and *Groups* columns + + Scenario: View report for all resources for a learner + Given that I am on the *'' > Learners* subtab + When I click the learner name + Then I am on *'' > ''* page + And I see a table with all the resources has engaged with + And I see the *Progress* and *Time spent* columns for each + + Scenario: View the resource report page by groups + Given that I am on the *'' > Report* subtab + And the is assigned to entire class + And some groups are empty + And some learners are ungrouped + When I click the *View by groups* checkbox + Then I see separate tables for each group + And I see empty groups that are recipients of the + But I don't see empty groups that aren't recipients of the + And I see *Ungrouped learners* section with those learners + + Scenario: View resource preview + Given that *View by groups* checkbox is checked + When I click *Preview* button + Then I can see the preview + When I click the back arrow button in top left corner + Then I am on the resource page again + And I see separate tables for each group + And the *View by groups* checkbox is still checked diff --git a/integration_testing/018-features/coach/lessons/coach-make-lesson-visible.feature b/integration_testing/018-features/coach/lessons/coach-make-lesson-visible.feature new file mode 100644 index 00000000000..5607d9ee207 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-make-lesson-visible.feature @@ -0,0 +1,174 @@ +Feature: Coach makes lessons visible + Coaches need to make lessons visible in order for learners to gain access and start working with them, and make them invisible afterwards + + Background: + Given I am signed in to kolibri as Coach user + And I am on *Coach - '' > Plan > Lessons* page + And I see the table of lessons which includes + And in the second browser or an incognito tab I am signed in as a learner on *Learn > Classes > ''* + + Scenario: Coach turns ON the lesson *Visible for learners* status - no Learner Only Devices + Given that switch in the column *Visible to learners* for the lesson is in the OFF position (gray) + When I click the switch for + Then I see the switch slide in the ON position (green) + And I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I see the lesson '' + + Scenario: Coach turns ON the lesson *Visible for learners* status - Learner Only Devices + Given that switch in the column *Visible to learners* for the lesson is in the OFF position (gray) + And there are learners using Learn-only Devices in this class + When I click the switch for + Then I see the switch slide in the ON position (green) + And I see a modal open that says *Make lesson visible* and displays the total size in bytes of the current lesson + When I click *Continue* + Then I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I see the lesson '' + + Scenario: Coach turns OFF the lesson *Visible for learners* status - no Learner Only Devices + Given that switch in the column *Visible to learners* for the lesson is in the ON position (green) + When I click the switch for + Then I see the switch slide in the OFF position (gray) + And I see a snackbar notification that says *Lesson is not visible to learners* + When I reload the browser as a learner + Then I don't see the lesson '' + + Scenario: Coach turns OFF the lesson *Visible for learners* status - Learner Only Devices + Given that switch in the column *Visible to learners* for the lesson is in the ON position (green) + And there are learners using Learn-only Devices in this class + When I click the switch for + Then I see the switch slide in the OFF position (gray) + And I see a modal open that says *Make lesson not visible* + When I click *Continue* + Then I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I don't see the lesson '' + + Background: + Given I am signed in to kolibri as coach user + And I am on *Coach - '' > Report > Lessons* page + And I see the table of lessons which includes + + Scenario: Coach turns ON the lesson *Visible for learners* status - no Learner Only Devices + Given that switch in the column *Visible to learners* for the lesson is in the OFF position (gray) + When I click the switch for + Then I see the switch slide in the ON position (green) + And I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I see the lesson '' + + Scenario: Coach turns ON the lesson *Visible for learners* status - Learner Only Devices + Given that switch in the column *Visible to learners* for the lesson is in the OFF position (gray) + And there are learners using Learn-only Devices in this class + When I click the switch for + Then I see the switch slide in the ON position (green) + And I see a modal open that says *Make lesson visible* + When I click *Continue* + Then I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I see the lesson '' + + Scenario: Coach turns OFF the lesson *Visible for learners* status - no Learner Only Devices + Given that switch in the column *Visible to learners* for the lesson is in the ON position (green) + When I click the switch for + Then I see the switch slide in the OFF position (gray) + And I see a snackbar notification that says *Lesson is not visible to learners* + When I reload the browser as a learner + Then I don't see the lesson '' + + Scenario: Coach turns OFF the lesson *Visible for learners* status - Learner Only Devices + Given that switch in the column *Visible to learners* for the lesson is in the ON position (green) + And there are learners using Learn-only Devices in this class + When I click the switch for + Then I see the switch slide in the OFF position (gray) + And I see a modal open that says *Make lesson not visible* + When I click *Continue* + Then I see a snackbar notification that says *Lesson is not visible to learners* + When I reload the browser as a learner + Then I don't see the lesson '' + + Background: + Given I am signed in to Kolibri as a Coach user + And I am on *Coach - '' > Plan > Lessons > ''* page + + Scenario: Coach turns ON the lesson *Visible for learners* status - no Learner Only Devices + Given that switch *Visible to learners* is in the OFF position (gray) + When I click the switch for + Then I see the switch slide in the ON position (green) + And I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I see the lesson '' + + Scenario: Coach turns ON the lesson *Visible for learners* status - Learner Only Devices + Given that switch *Visible to learners* is in the OFF position (gray) + And there are learners using Learn-only Devices in this class + When I click the switch for + Then I see the switch slide in the ON position (green) + And I see a modal open that says *Make lesson visible* + When I click *Continue* + Then I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I see the lesson '' + + + Scenario: Coach turns OFF the lesson *Visible for learners* status - no Learner Only Devices + Given that switch *Visible to learners* is in the ON position (green) + When I click the switch for + Then I see the switch slide in the OFF position (gray) + And I see a snackbar notification that says *Lesson is not visible to learners* + When I reload the browser as a learner + Then I don't see the lesson '' + + Scenario: Coach turns OFF the lesson *Visible for learners* status - Learner Only Devices + Given that switch *Visible to learners* is in the ON position (green) + And there are learners using Learn-only Devices in this class + When I click the switch for + Then I see the switch slide in the OFF position (gray) + And I see a modal open that says *Make lesson not visible* + When I click *Continue* + Then I see a snackbar notification that says *Lesson is not visible to learners* + When I reload the browser as a learner + Then I don't see the lesson '' + + Background: + Given I am signed in to Kolibri as a Coach user + And I am on *Coach - '' > Report > Lessons > ''* page + + Scenario: Coach turns ON the lesson *Visible for learners* status - no Learner Only Devices + Given that switch *Visible to learners* is in the OFF position (gray) + When I click the switch for + Then I see the switch slide in the ON position (green) + And I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I see the lesson '' + + Scenario: Coach turns ON the lesson *Visible for learners* status - Learner Only Devices + Given that switch *Visible to learners* is in the OFF position (gray) + And there are learners using Learn-only Devices in this class + When I click the switch for + Then I see the switch slide in the ON position (green) + And I see a modal open that says *Make lesson visible* + When I click *Continue* + Then I see a snackbar notification that says *Lesson is visible to learners* + When I reload the browser as a learner + Then I see the lesson '' + + Scenario: Coach turns OFF the lesson *Visible for learners* status - no Learner Only Devices + Given that switch *Visible to learners* is in the ON position (green) + When I click the switch for + Then I see the switch slide in the OFF position (gray) + And I see a snackbar notification that says *Lesson is not visible to learners* + When I reload the browser as a learner + Then I don't see the lesson '' + + Scenario: Coach turns OFF the lesson *Visible for learners* status - Learner Only Devices + Given that switch *Visible to learners* is in the ON position (green) + And there are learners using Learn-only Devices in this class + When I click the switch for + Then I see the switch slide in the OFF position (gray) + And I see a modal open that says *Make lesson not visible* + When I click *Continue* + Then I see a snackbar notification that says *Lesson is not visible to learners* + When I reload the browser as a learner + Then I don't see the lesson '' diff --git a/integration_testing/018-features/coach/lessons/coach-sees-difficult-questions-in-practice-quiz-report.feature b/integration_testing/018-features/coach/lessons/coach-sees-difficult-questions-in-practice-quiz-report.feature new file mode 100644 index 00000000000..8c4cc4bcbf1 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-sees-difficult-questions-in-practice-quiz-report.feature @@ -0,0 +1,18 @@ +Feature: Coach sees detailed information for difficult questions in practice quiz report from lessons + + Scenario: Coach sees detailed information for difficult questions + Given that I am in 'Reports' + And I click on the 'Lessons' subtab + And I click on a lesson title + And I click on the title of an practice quiz in the 'Reports' subtab + And I click on the 'Difficult questions' subtab + When I select the difficult question + Then I see a list of learners who got the question incorrect, a preview of the question, and the option to show the correct answer. + + Scenario: coach sees the correct difficult questions for most recent attempt + Given that I am in 'Reports' + And I click on the 'Lessons' subtab + And I click on a lesson title + And I click on the title of an practice quiz in the 'Reports' subtab + When I click on the 'Difficult questions' subtab + Then I see the correct difficult questions for most recent attempt diff --git a/integration_testing/018-features/coach/lessons/coach-sees-report-for-practice-quiz-in-lesson.feature b/integration_testing/018-features/coach/lessons/coach-sees-report-for-practice-quiz-in-lesson.feature new file mode 100644 index 00000000000..b9e0e2a8757 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-sees-report-for-practice-quiz-in-lesson.feature @@ -0,0 +1,26 @@ +Feature: Coach sees reports for practice quizzes assigned in-lesson + + Scenario: Coach views practice quiz in lesson report + Given that I have a lesson assigned to learners + And there is an practice quiz in the lesson + When I go into the 'Reports > Lessons > ' tab + Then I see the practice quiz listed in the lesson resource list + + Scenario: Coach views practice quiz progress in the lesson report + Given that I have a lesson assigned to learners + And there is an practice quiz in the lesson + And learners have started to engage with the practice quiz + When at least one learner has submitted the quiz + And I go into the 'Reports > Lessons > ' tab + Then I see that there is progress in the 'Progress' column of the lesson report + + Scenario: Coach views individual learner progress of the practice quiz in the quiz report + Given that I have a lesson assigned to learners + And there is an practice quiz in the lesson + And learners have started to engage with the practice quiz + When at least one learner has submitted the quiz + And I go into the 'Reports > Lessons > > ' + Then I see that individual learner progress on the practice quiz in a table + And I see a subtab with difficult questions + And I see a button that has a preview of the practice quiz + And I see a column in the table with latest score and attempts diff --git a/integration_testing/018-features/coach/lessons/coach-track-lesson-notifications.feature b/integration_testing/018-features/coach/lessons/coach-track-lesson-notifications.feature new file mode 100644 index 00000000000..95a82a32ae3 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-track-lesson-notifications.feature @@ -0,0 +1,137 @@ +Feature: Lessons notifications + Class coaches and facility coaches need to be able to see all notifications (*started*, *completed*, and *needs help*) when students engage with lessons. + + # Prepare four browsers, or three windows/tabs of the same browser, one of them being incognito/private mode, in order to sign into three as learner users, and as a coach in the other + + Background: + Given I have all sessions visible in four browser windows/tabs (signed into three as learners, and in the other as ) + And I am signed in to Kolibri as a facility or class + And there are three learners enrolled in class I am assigned to + And they are not assigned to any groups + And I have a lesson with one assigned to the entire class + + Scenario: One learner starts the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I started the in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *'' started ''* notification + And I see another *'' started '' notification + When I click the notification + Then I see report page + And I see who have started the lesson + When I click the notification + Then I see report page + And I see attempt report on + + Scenario: Second learner starts the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I started the in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *'' and 1 other started ''* notification + And I see another *'' and 1 other started '' notification + When I click the notification + Then I see report page + And I see both and have started the lesson + When I click the notification + Then I see report page + And I see both and progress status on + + Scenario: All three learners start the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I started the in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *Everyone started ''* notification + And I see another *Everyone started '' notification + When I click the notification + Then I see report page + And I see all three learners have started the lesson + When I click the notification + Then I see report page + And I see the progress status on for all three learners + + Scenario: First learner completes the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I completed the in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *'' completed ''* notification + And I see another *'' completed '' notification + When I click the notification + Then I see report page + And I see who have completed the lesson + When I click the notification + Then I see report page + And I see attempt report on + + Scenario: Second learner completes the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I completed the in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *'' and 1 other completed ''* notification + And I see another *'' and 1 other completed '' notification + When I click the notification + Then I see report page + And I see both and have completed the lesson + When I click the notification + Then I see report page + And I see both and completed status on + + Scenario: All three learners complete the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I completed the in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *Everyone completed ''* notification + And I see another *Everyone completed '' notification + When I click the notification + Then I see report page + And I see all three learners have completed the lesson + When I click the notification + Then I see report page + And I see the completed status on for all three learners + + Scenario: One learner needs help with the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I get multiple incorrect attempts on at least one question in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *'' needs help ''* notification + And I see another *'' needs help '' notification + When I click the notification + Then I see report page + And I see needs help in the + When I click the notification + Then I see report page + And I see attempt report on + + Scenario: Second learner needs help with the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I get multiple incorrect attempts on at least one question in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *'' and 1 other need help ''* notification + And I see another *'' and 1 other need help '' notification + When I click the notification + Then I see report page + And I see both and need help the lesson + When I click the notification + Then I see report page + And I see both and need help status on + + Scenario: All three learners need help with the exercise in the lesson + Given that as in one window I am at *Learn > '' > ''* page + And I get multiple incorrect attempts on at least one question in the + And as in another window I am at *Coach - '' > Class Home* page + When as I look into the *Class activity* block + Then I see one *Everyone need help ''* notification + And I see another *Everyone need help '' notification + When I click the notification + Then I see report page + And I see all three learners need help the lesson + When I click the notification + Then I see report page + And I see the need help status on for all three learners diff --git a/integration_testing/018-features/coach/lessons/coach-track-lesson-progress.feature b/integration_testing/018-features/coach/lessons/coach-track-lesson-progress.feature new file mode 100644 index 00000000000..03ae678dd81 --- /dev/null +++ b/integration_testing/018-features/coach/lessons/coach-track-lesson-progress.feature @@ -0,0 +1,59 @@ + +Feature: Coach reviews summary progress on a lesson + +# Prepare two browsers, or two windows/tabs of the same browser, one of them being incognito/private mode, in order to sign in into one as a learner user, and as a coach in the other + + Background: + Given I have both sessions visible in two browser windows/tabs (signed into one as learner, and in the other as coach) + And there are 3 learners enrolled in the class : , and + And there is lesson with 1 video