From 1d7a6bcccf8fa8fb6c6ff2b52eb5d77e89d20850 Mon Sep 17 00:00:00 2001 From: Peter Cenov Date: Fri, 7 Feb 2025 17:53:28 +0200 Subject: [PATCH 1/3] adding a new cw feature file --- .../studio-critical-workflows.feature | 198 ++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 integration_testing/features/studio-critical-workflows.feature diff --git a/integration_testing/features/studio-critical-workflows.feature b/integration_testing/features/studio-critical-workflows.feature new file mode 100644 index 0000000000..cea3bdf33b --- /dev/null +++ b/integration_testing/features/studio-critical-workflows.feature @@ -0,0 +1,198 @@ +Feature: Studio critical workflows + This is a test suite of the main Studio workflows. + + Background: + Given Studio is accessible at https://studio.learningequality.org/ or any of the test environments + And I am at Studio's sign-in page + + Scenario: Create an account and sign in with the created account + When I click the *Create an account* button + Then I see the *Create an account* form + And I see the *Basic information* section containing the following fields: First name, Last name, Email, Password and Confirm password + And I see the *How do you plan on using Kolibri Studio (check all that apply)*, *Where do you plan to use Kolibri Studio? (check all that apply)*, *How did you hear about us?* and *I have read and agree to terms of service and the privacy policy* sections + And I see the *View Privacy Policy* and *View Terms of Service* links + When I input all the required fields + And I click the *Finish* button + Then I see the *Activation link sent* page + And I see *Thank you for creating an account! To complete the process, please check your email for the activation link we sent you.* + When I open the received email and click the activation link + Then I see the *Account successfully created* page + When I click the *Continue to sign-in page* button + Then I am at the sign-in page + When I fill in my email and password + And I click the *Sign in* button + Then I am able to sign in successfully + And I am at *My channels* page + + Scenario: Reset my password + Given I've requested and received an email with a link to reset my password + When I click the link in the email + Then I see a page with a *Reset your password* form + And I fill in the *New password* field + And I fill in the *Confirm password* field with the same password + And I press the *Submit* button + Then I see the following message: Password reset successfully + + Scenario: Explore without an account + Given I am not signed in to Studio + And I am on Studio sign-in page + When I click the *Explore without an account* link + Then I see the *Content Library* page with available public channels + And I can filter the search results + And I can view or download the channel summary + + Scenario: Change the language when you are not signed-in + Given I am not signed-in to Studio + And I am on the Studio home page + When I click on one of the available languages + Then the language interface changes to the selected language + And the selected language is no longer clickable + + Scenario: Change the language as a signed-in user + Given I am signed-in to Studio + And I click the user profile icon + When I click *Change language* + Then I see a *Change language* modal window displayed with several languages to choose from + When I click on a language which is not currently selected + And I click the *Confirm* button + Then the interface language changes to the selected language + + Scenario: Create a new channel + Given I am signed in to Studio + And I am at *My Channels* tab + When I click the *New channel* button + Then I see the *New channel* page + When I enter a channel name + And I enter channel description + And I select a language + And I upload an image file as a channel thumbnail + And I click the *Create* button + Then I see the newly created channel at *My Channels* page + + Scenario: Edit channel details + Given I am signed in to Studio + And I am on the channel editor view + When I click the pencil icon next to the channel name + Then I see a modal window with the channel details + And I see the details for the channel - channel name, language, channel description etc. + When I modify any of the details + And I click the *Save changes* button + Then I see a message: *Changes saved* + And I can close the modal window + + Scenario: Create a new folder + Given I am signed in to Studio + And I am on the channel editor page + When I click the *Add* button in the top right corner + And I click the *New folder* option + Then I see the *New folder* modal + When I fill in the required field *Title* + And I fill in any of the other fields such as *Description*, *Tags* and *Language* + And I add a thumbnail image + And I click the *Finish* button + Then I am on the channel editor page + And I can see the newly created folder + + Scenario: Upload files + When I click the *Add* button + And I select the *Upload files* option + Then I see the *Upload files* modal + And I see the *Total storage used* indicator at the top + And I can see which are the supported file types: mp3, bloompub, bloomd, pdf, epub, h5p, mp4, webm, zip + When I click the *Select files* button + Then I see a file explorer window + And I can select one or several supported files for upload + When I click the *Open* button + Then I see the *Edit files* modal + When I fill in all the required fields + And I click the *Finish* button + Then I am back at the main topic tree view + And I can see the uploaded files + + Scenario: Create an exercise + When I click the *Add* button + And I select the *New exercise* option + Then I see the *Details* tab of the *New exercise* modal + When I fill in all of the required fields + And I click the *Questions* tab + Then I see the text: *Exercise has no questions* + And I see a *New question* button + When I click the *New question* button + Then I see the question editor + When I add one or several questions of the desired type + And I click the *Finish* button + Then I am back at the main topic tree view + And I can see the newly added exercise + + Scenario: Import content from another channel + When I click the *Add* button + And I select the *Import from channels* option + Then I see the *Import from other channels* modal + And I see a list of channels that I have access to + When I click on a channel card + Then I see the available folders and resources + When I select some content + And I click the *Review* button + Then I see the *Review selections* table + And I see the number of selected resources at the bottom left + When I finish reviewing my selections + And I click the *Import* button + Then I am back at the main topic tree view + And I see the *Copying* indicator for each folder or resource which is being copied + + Scenario: Publish a channel + Given I am signed in to Studio + And I am at the channel editor page + And I have write access to the channel + And the channel has had modifications + When I click the *Publish* button at the top right corner + Then the *Publish modal* appears + And I see steps for resolving errors and describing new changes + When I click *Publish* + Then I see the *Describe what's new in this channel version* modal + When I fill in the required fields + And I click *Publish* + Then I see the *Publishing channel* progress indicator at the top right + When the the channel has been published successfully + Then I see the *Published N seconds ago* text + And I receive a confirmation email that the channel has been published successfully + + Scenario: Invite collaborators with *Can edit* permissions + Given I am signed in to Studio + And I am on the channel editor page + When I click the *...* (options) button in the topbar + And select the *Share channel* option + Then I am at the *Sharing* tab for the channel + When I type the email of the person I want to invite + And I don't change the preselected *Can edit* option in the drop-down + And I click the *Send invitation* button + Then the collaborator will be notified on their *My Channels* page, where they can accept or reject the pending invitation + And the collaborator will receive an email allowing them to accept/reject the pending invitation + + Scenario: Sync resources + Given I am signed in to Studio + And I am on the channel editor page for + And there is a resource in the that has been imported from + And there is new version of the resource file in the + When I click on the *···* button in the top-right corner + And I select the *Sync resources* option + Then I see *Sync resources* modal window + When I select any of the available checkboxes + And I click the *Continue* button + Then I see the *Confirm sync* modal + When I click *Sync* + Then the modal closes + When I refresh the page + And click on the updated resource + Then I can see that it's updated with any changes made to the original resource file + + Scenario: Delete a channel + Given I am signed in to Studio + And I have permissions to edit + And I am on *My Channels* tab + When I click the *Options* button of a channel #the three dots to the right + Then I see a *Delete channel* option + When I click the *Delete channel* option + And I click the *Delete channel* button + Then I see a message that the channel is deleted + And the deleted channel is no longer displayed at *My Channels* page \ No newline at end of file From 0b1373b8a621b50d7c0d6c5abff5c3f98ba384e1 Mon Sep 17 00:00:00 2001 From: Peter Cenov Date: Mon, 10 Feb 2025 18:09:05 +0200 Subject: [PATCH 2/3] additional scenarios --- .../studio-critical-workflows.feature | 65 ++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/integration_testing/features/studio-critical-workflows.feature b/integration_testing/features/studio-critical-workflows.feature index cea3bdf33b..4ebc438cda 100644 --- a/integration_testing/features/studio-critical-workflows.feature +++ b/integration_testing/features/studio-critical-workflows.feature @@ -186,6 +186,24 @@ Feature: Studio critical workflows And click on the updated resource Then I can see that it's updated with any changes made to the original resource file + Scenario: Quick edit the fields of multiple resources + Given I am signed in to Studio + And I am at the channel editor page + And there are available resources of different types + When I select at least two resources + And I click the *Edit language* icon + Then I see the *Edit language* modal + When I select a new language + And I click the *Save* button + Then I am back at the page with the resources + And I see a message: *Changes saved* + When I click on any of the other available editing icons such as *Edit categories* or *Edit levels* + Then I also see a modal with options + When I select one or several options + And I click the *Save* button + Then I am back at the page with the resources + And I see a message: *Changes saved* + Scenario: Delete a channel Given I am signed in to Studio And I have permissions to edit @@ -195,4 +213,49 @@ Feature: Studio critical workflows When I click the *Delete channel* option And I click the *Delete channel* button Then I see a message that the channel is deleted - And the deleted channel is no longer displayed at *My Channels* page \ No newline at end of file + And the deleted channel is no longer displayed at *My Channels* page + + Feature: View and edit account information + Given I am signed in to Studio + When I go to the *Settings > Account* page + Then I can see the following sections with account information: *Basic information*, *API token*, *Export account data*, *Delete account* + When I click on the *Change password* hyperlink + And I make changes to my password + And I press *Save changes* button in the modal + Then I see a snackbar appears to confirm my password was updated + And the modal is dismissed + When I click the *Edit* hyperlink near my username + And I make changes to my full name + And I click *Save changes* button in the modal + Then I see a snackbar appears to confirm changes are saved + And the modal is dismissed + When I go to *Settings > Account>Storage* + Then I can see the percentage of storage used + And I can see the size of each resource types + And I can see the *Request more space* section + + Scenario: Create a collection by selecting channels + Given I am signed in to Studio + And I am on the *Collections* tab + When I type a collection name in the *Collection name* field + And I click the *New collection* button + And I click the *Select channels* button + Then I see the *Select channels* page + And I am on the *Content library* tab # alternatively I can select the *My channels* or *View-only* tab + When I select one or several channels + And I click the *Finish* button + Then I see the the *New collection* screen with the selected channels + When I click the *Create* button + Then I see the *Collections* tab + And I see the newly created collection + And I see the number of channels in that collection + + Scenario: Explore the content library + Given I am signed in to Studio + When I go to the *Content library* + Then I see a page with the available public channels + And I can filter the search results by keyword, language, license, format, starred status, resources for coaches, captions or subtitles + And I can view or download the channel summary + When I click on a channel card + Then I can see all of the channel's resources in *View-only* format + From 4f27aa3c885b980dc901b105338541173dc8dee4 Mon Sep 17 00:00:00 2001 From: Peter Cenov Date: Wed, 30 Apr 2025 17:04:58 +0300 Subject: [PATCH 3/3] corrections and additions --- .../open-sidebar-and-user-menus.feature | 9 +- .../manage-channels/create-a-channel.feature | 19 ++- .../studio-critical-workflows.feature | 145 +++++++++++++----- 3 files changed, 122 insertions(+), 51 deletions(-) diff --git a/integration_testing/features/common/open-sidebar-and-user-menus.feature b/integration_testing/features/common/open-sidebar-and-user-menus.feature index f52112570f..539c6194db 100755 --- a/integration_testing/features/common/open-sidebar-and-user-menus.feature +++ b/integration_testing/features/common/open-sidebar-and-user-menus.feature @@ -3,18 +3,19 @@ User needs to be able to open and close the sidebar menu and the user menu Background: Given I am signed in to Studio - And I am on any of the tabs (*My Channels*, *Starred*, *View only*, *Content Library*, or *Collections*) Scenario: Open and close the sidebar menu When I click the hamburger menu button in the upper left screen corner Then I see the sidebar menu - And I can select any of the options inside + And I can see the following options: *Channels*, *Settings*, *Change language*, *Help and support*, *Sign out*, the LE logo, *© 2025 Learning Equality", *Give feedback* + And I can click any of the options inside When I click the *X* button, or anywhere on the browser screen Then I don't see the sidebar menu anymore Scenario: Open and close the user menu When I click the user menu button in the upper right screen corner Then I see the user menu - And I can select any of the options inside + And I can see the following options: *Settings*, *Change language*, *Help and support*, *Sign out* + And I can click any of the options inside When I click the user menu button again, or anywhere on the browser screen - Then I don't see the user menu anymore + Then I don't see the user menu anymore diff --git a/integration_testing/features/manage-channels/create-a-channel.feature b/integration_testing/features/manage-channels/create-a-channel.feature index 5e4b357fd0..e117f3012a 100755 --- a/integration_testing/features/manage-channels/create-a-channel.feature +++ b/integration_testing/features/manage-channels/create-a-channel.feature @@ -4,16 +4,15 @@ Feature: Create a channel Given I am signed in to Studio And I am on the *My Channels* tab - Scenario: Create a channel + Scenario: Create a new channel + Given I am signed in to Studio + And I am at *My Channels* tab When I click the *New channel* button Then I see the *New channel* page - When I enter channel name - And I enter channel description - And I select a language - And I upload the image file as a channel thumbnail + When I enter a channel name + And I select a language + And I enter channel description (optional) + And I fill in the default copyright fields (optional) + And I upload an image file as a channel thumbnail (optional) And I click the *Create* button - Then I see the channel on *My Channels* list - - Examples: - | channel_name | channel_description | language | - | ck-12 | sample channel | english | + Then I am at the channel editor view diff --git a/integration_testing/features/studio-critical-workflows.feature b/integration_testing/features/studio-critical-workflows.feature index 4ebc438cda..9c05a2eb88 100644 --- a/integration_testing/features/studio-critical-workflows.feature +++ b/integration_testing/features/studio-critical-workflows.feature @@ -6,23 +6,23 @@ Feature: Studio critical workflows And I am at Studio's sign-in page Scenario: Create an account and sign in with the created account - When I click the *Create an account* button - Then I see the *Create an account* form - And I see the *Basic information* section containing the following fields: First name, Last name, Email, Password and Confirm password - And I see the *How do you plan on using Kolibri Studio (check all that apply)*, *Where do you plan to use Kolibri Studio? (check all that apply)*, *How did you hear about us?* and *I have read and agree to terms of service and the privacy policy* sections - And I see the *View Privacy Policy* and *View Terms of Service* links - When I input all the required fields - And I click the *Finish* button - Then I see the *Activation link sent* page - And I see *Thank you for creating an account! To complete the process, please check your email for the activation link we sent you.* - When I open the received email and click the activation link - Then I see the *Account successfully created* page - When I click the *Continue to sign-in page* button - Then I am at the sign-in page - When I fill in my email and password - And I click the *Sign in* button - Then I am able to sign in successfully - And I am at *My channels* page + When I click the *Create an account* button + Then I see the *Create an account* form + And I see the *Basic information* section containing the following fields: First name, Last name, Email, Password and Confirm password + And I see the *How do you plan on using Kolibri Studio (check all that apply)*, *Where do you plan to use Kolibri Studio? (check all that apply)*, *How did you hear about us?* and *I have read and agree to terms of service and the privacy policy* sections + And I see the *View Privacy Policy* and *View Terms of Service* links + When I input all the required fields + And I click the *Finish* button + Then I see the *Activation link sent* page + And I see *Thank you for creating an account! To complete the process, please check your email for the activation link we sent you.* + When I open the received email and click the activation link + Then I see the *Account successfully created* page + When I click the *Continue to sign-in page* button + Then I am at the sign-in page + When I fill in my email and password + And I click the *Sign in* button + Then I am able to sign in successfully + And I am at *My channels* page Scenario: Reset my password Given I've requested and received an email with a link to reset my password @@ -38,7 +38,7 @@ Feature: Studio critical workflows And I am on Studio sign-in page When I click the *Explore without an account* link Then I see the *Content Library* page with available public channels - And I can filter the search results + And I can filter the search results by keyword, language, license, format, resources for coach, available captions and subtitles And I can view or download the channel summary Scenario: Change the language when you are not signed-in @@ -57,21 +57,38 @@ Feature: Studio critical workflows And I click the *Confirm* button Then the interface language changes to the selected language + Scenario: Open and close the sidebar menu + When I click the hamburger menu button in the upper left screen corner + Then I see the sidebar menu + And I can see the following options: *Channels*, *Settings*, *Change language*, *Help and support*, *Sign out*, the LE logo, *© 2025 Learning Equality", *Give feedback* + And I can click any of the options inside + When I click the *X* button, or anywhere on the browser screen + Then I don't see the sidebar menu anymore + + Scenario: Open and close the user menu + When I click the user menu button in the upper right screen corner + Then I see the user menu + And I can see the following options: *Settings*, *Change language*, *Help and support*, *Sign out* + And I can click any of the options inside + When I click the user menu button again, or anywhere on the browser screen + Then I don't see the user menu anymore + Scenario: Create a new channel Given I am signed in to Studio And I am at *My Channels* tab When I click the *New channel* button Then I see the *New channel* page When I enter a channel name - And I enter channel description And I select a language - And I upload an image file as a channel thumbnail + And I enter channel description (optional) + And I fill in the default copyright fields (optional) + And I upload an image file as a channel thumbnail (optional) And I click the *Create* button - Then I see the newly created channel at *My Channels* page + Then I am at the channel editor view Scenario: Edit channel details Given I am signed in to Studio - And I am on the channel editor view + And I am at the channel editor view When I click the pencil icon next to the channel name Then I see a modal window with the channel details And I see the details for the channel - channel name, language, channel description etc. @@ -82,23 +99,23 @@ Feature: Studio critical workflows Scenario: Create a new folder Given I am signed in to Studio - And I am on the channel editor page - When I click the *Add* button in the top right corner + And I am at the channel editor page + When I click the *Add* button at the top right corner And I click the *New folder* option Then I see the *New folder* modal When I fill in the required field *Title* - And I fill in any of the other fields such as *Description*, *Tags* and *Language* - And I add a thumbnail image + And I fill in any of the other optional fields + And I add a thumbnail image (optional) And I click the *Finish* button Then I am on the channel editor page And I can see the newly created folder - Scenario: Upload files + Scenario: Upload all supported files When I click the *Add* button And I select the *Upload files* option Then I see the *Upload files* modal And I see the *Total storage used* indicator at the top - And I can see which are the supported file types: mp3, bloompub, bloomd, pdf, epub, h5p, mp4, webm, zip + And I can see which are the supported file types: mp3, bloompub, bloomd, pdf, epub, h5p, mp4, webm, zip, kpub When I click the *Select files* button Then I see a file explorer window And I can select one or several supported files for upload @@ -144,12 +161,10 @@ Feature: Studio critical workflows Given I am signed in to Studio And I am at the channel editor page And I have write access to the channel - And the channel has had modifications + And the channel contains unpublished resources or edits When I click the *Publish* button at the top right corner Then the *Publish modal* appears - And I see steps for resolving errors and describing new changes - When I click *Publish* - Then I see the *Describe what's new in this channel version* modal + And I see the *Describe what's new in this channel version* field and the *Language* drop-down When I fill in the required fields And I click *Publish* Then I see the *Publishing channel* progress indicator at the top right @@ -159,7 +174,7 @@ Feature: Studio critical workflows Scenario: Invite collaborators with *Can edit* permissions Given I am signed in to Studio - And I am on the channel editor page + And I am at the channel editor page When I click the *...* (options) button in the topbar And select the *Share channel* option Then I am at the *Sharing* tab for the channel @@ -171,7 +186,7 @@ Feature: Studio critical workflows Scenario: Sync resources Given I am signed in to Studio - And I am on the channel editor page for + And I am at the channel editor page for And there is a resource in the that has been imported from And there is new version of the resource file in the When I click on the *···* button in the top-right corner @@ -182,7 +197,7 @@ Feature: Studio critical workflows Then I see the *Confirm sync* modal When I click *Sync* Then the modal closes - When I refresh the page + When I after a period of time I refresh the page And click on the updated resource Then I can see that it's updated with any changes made to the original resource file @@ -191,7 +206,8 @@ Feature: Studio critical workflows And I am at the channel editor page And there are available resources of different types When I select at least two resources - And I click the *Edit language* icon + Then I see a toolbar with the available editing options + When I click the *Edit language* icon Then I see the *Edit language* modal When I select a new language And I click the *Save* button @@ -204,6 +220,56 @@ Feature: Studio critical workflows Then I am back at the page with the resources And I see a message: *Changes saved* + Scenario: Remove folders and resources by using the toolbar + Given I am signed in to Studio + And I am at the channel editor page + And there are available resources of different types + When I check a folder's checkbox + Then I see the toolbar options for the selected folder + When I click the *Remove* button + Then I can see the *Sent to trash* snackbar notification + And I see the *Undo* button + And I no longer see the folder + When I check the checkbox of a resource + Then I see the toolbar options for the resource + When I click the *Remove* button + Then I can see the *Sent to trash* snackbar notification + And I see the *Undo* button + And I no longer see the resource + + Scenario: Copy multiple resources + Given I am signed in to Studio + And I am at the channel editor page + And there are available resources of different types + When I select multiple items via checkboxes + Then I see that the select bar has changed to an actions bar + When I click the *Make a copy* button in the actions bar + Then I see a snackbar appears with a *Copying...* message + When the copy creation process is finished + Then the snackbar disappears + And a snackbar *Copy operation complete* appears + And I see that copies are created + + Scenario: Move resources into a new destination + When I click on a checkbox(s) and make a resource selection + And I click the move button + Then I am navigated to a screen that allows me to navigate and choose a destination to move the resource + When I navigate to an appropriate destination + And click the *Move here* button + Then I am redirected to the channel editor + And I see a snackbar confirmation that my resources are moved + And the resources are no longer in my original directory + + Scenario: Apply details from folder after adding a resource + Given I have created a folder with multiple metadata details such as categories, levels, requirements, language + When I attempt to import, copy or move a resource into that folder + Then I see the *Apply details from the folder * modal + And I see that all of the checkboxes for the available metadata are selected + When I click the *Continue* button + Then I see that the selected metadata is filled in + When I click the *Finish* button + Then I see that the resource is added in the folder + Scenario: Delete a channel Given I am signed in to Studio And I have permissions to edit @@ -234,6 +300,12 @@ Feature: Studio critical workflows And I can see the size of each resource types And I can see the *Request more space* section + Scenario: Submit more space request + When I fill in all the space request text fields + And I click the *Send request* submit button + Then I see all the text fields clear + And a snackbar appears to confirm the submission + Scenario: Create a collection by selecting channels Given I am signed in to Studio And I am on the *Collections* tab @@ -258,4 +330,3 @@ Feature: Studio critical workflows And I can view or download the channel summary When I click on a channel card Then I can see all of the channel's resources in *View-only* format -