diff --git a/.github/workflows/automatic-trigger.yml b/.github/workflows/automatic-trigger.yml index 226eedfa7..234005024 100644 --- a/.github/workflows/automatic-trigger.yml +++ b/.github/workflows/automatic-trigger.yml @@ -5,24 +5,24 @@ jobs: e2e-system-tests: runs-on: ubuntu-latest #strategy: - #max-parallel: 1 - #fail-fast: false - #matrix: - #spec: - #[ - #'account', - #'addons', - #'courses', - #'dashboard', - #'files', - #'help', - #'login', - #'management', - #'news', - #'tasks', - #'team', - #'topics' - #] + #max-parallel: 1 + #fail-fast: false + #matrix: + #spec: + #[ + #'account', + #'addons', + #'courses', + #'dashboard', + #'files', + #'help', + #'login', + #'management', + #'news', + #'tasks', + #'team', + #'topics' + #] steps: - name: Setup Node uses: actions/setup-node@v3 @@ -57,14 +57,17 @@ jobs: CYPRESS_EXPERT_1_PASSWORD: ${{ secrets.CYPRESS_EXPERT_1_PASSWORD }} CYPRESS_STUDENT_EXTERN: ${{ secrets.CYPRESS_STUDENT_EXTERN }} CYPRESS_STUDENT_EXTERN_PASSWORD: ${{ secrets.CYPRESS_STUDENT_EXTERN_PASSWORD }} - CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL}} - CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD}} - CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD}} + CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL }} + CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD }} + CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD }} + CYPRESS_TEACHER_1_FIRST_NAME: ${{ secrets.CYPRESS_TEACHER_1_FIRST_NAME }} + CYPRESS_TEACHER_1_LAST_NAME: ${{ secrets.CYPRESS_TEACHER_1_LAST_NAME }} + CYPRESS_TEACHER_2_FIRST_NAME: ${{ secrets.CYPRESS_TEACHER_2_FIRST_NAME }} + CYPRESS_TEACHER_2_LAST_NAME: ${{ secrets.CYPRESS_TEACHER_2_LAST_NAME }} DEBUG: '@cypress/github-action' with: #command: npm run tag:stable:${{ matrix.spec }} browser: chrome - command-prefix: "--" - name: 📬 Upload test artifacts 📬 uses: actions/upload-artifact@v3 diff --git a/.github/workflows/manual-trigger.yml b/.github/workflows/manual-trigger.yml index b0f006a9a..f2a9c60d6 100644 --- a/.github/workflows/manual-trigger.yml +++ b/.github/workflows/manual-trigger.yml @@ -19,24 +19,24 @@ jobs: e2e-system-tests: runs-on: ubuntu-latest #strategy: - #fail-fast: false - #max-parallel: 1 - #matrix: - #spec: - #[ - #'account', - #'addons', - #'courses', - #'dashboard', - #'files', - #'help', - #'login', - #'management', - #'news', - #'tasks', - #'team', - #'topics' - #] + #fail-fast: false + #max-parallel: 1 + #matrix: + #spec: + #[ + #'account', + #'addons', + #'courses', + #'dashboard', + #'files', + #'help', + #'login', + #'management', + #'news', + #'tasks', + #'team', + #'topics' + #] steps: - name: Setup Node @@ -72,14 +72,17 @@ jobs: CYPRESS_EXPERT_1_PASSWORD": ${{ secrets.CYPRESS_EXPERT_1_PASSWORD }} CYPRESS_STUDENT_EXTERN: ${{ secrets.CYPRESS_STUDENT_EXTERN }} CYPRESS_STUDENT_EXTERN_PASSWORD: ${{ secrets.CYPRESS_STUDENT_EXTERN_PASSWORD }} - CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL}} - CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD}} - CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD}} + CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL }} + CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD }} + CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD }} + CYPRESS_TEACHER_1_FIRST_NAME: ${{ secrets.CYPRESS_TEACHER_1_FIRST_NAME }} + CYPRESS_TEACHER_1_LAST_NAME: ${{ secrets.CYPRESS_TEACHER_1_LAST_NAME }} + CYPRESS_TEACHER_2_FIRST_NAME: ${{ secrets.CYPRESS_TEACHER_2_FIRST_NAME }} + CYPRESS_TEACHER_2_LAST_NAME: ${{ secrets.CYPRESS_TEACHER_2_LAST_NAME }} DEBUG: '@cypress/github-action' with: #command: npm run tag:stable:${{ matrix.spec }} browser: chrome - command-prefix: "--" - name: 📬 Upload test artifacts 📬 uses: actions/upload-artifact@v3 diff --git a/.github/workflows/scheduled-trigger.yml b/.github/workflows/scheduled-trigger.yml index db937b560..3f9ac8b02 100644 --- a/.github/workflows/scheduled-trigger.yml +++ b/.github/workflows/scheduled-trigger.yml @@ -6,24 +6,24 @@ jobs: e2e-system-tests: runs-on: ubuntu-latest #strategy: - #fail-fast: false - #max-parallel: 1 - #matrix: - #spec: - #[ - #'account', - #'addons', - #'courses', - #'dashboard', - #'files', - #'help', - #'login', - #'management', - #'news', - #'tasks', - #'team', - #'topics' - #] + #fail-fast: false + #max-parallel: 1 + #matrix: + #spec: + #[ + #'account', + #'addons', + #'courses', + #'dashboard', + #'files', + #'help', + #'login', + #'management', + #'news', + #'tasks', + #'team', + #'topics' + #] steps: - name: Setup Node uses: actions/setup-node@v3 @@ -58,14 +58,17 @@ jobs: CYPRESS_EXPERT_1_PASSWORD": ${{ secrets.CYPRESS_EXPERT_1_PASSWORD }} CYPRESS_STUDENT_EXTERN: ${{ secrets.CYPRESS_STUDENT_EXTERN }} CYPRESS_STUDENT_EXTERN_PASSWORD: ${{ secrets.CYPRESS_STUDENT_EXTERN_PASSWORD }} - CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL}} - CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD}} - CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD}} + CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_EMAIL }} + CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_OLD_PWD }} + CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD: ${{ secrets.CYPRESS_STUDENT_PASSWORD_CHANGE_NEW_PWD }} + CYPRESS_TEACHER_1_FIRST_NAME: ${{ secrets.CYPRESS_TEACHER_1_FIRST_NAME }} + CYPRESS_TEACHER_1_LAST_NAME: ${{ secrets.CYPRESS_TEACHER_1_LAST_NAME }} + CYPRESS_TEACHER_2_FIRST_NAME: ${{ secrets.CYPRESS_TEACHER_2_FIRST_NAME }} + CYPRESS_TEACHER_2_LAST_NAME: ${{ secrets.CYPRESS_TEACHER_2_LAST_NAME }} DEBUG: '@cypress/github-action' with: #command: npm run tag:stable:${{ matrix.spec }} browser: chrome - command-prefix: "--" - name: 📬 Upload test artifacts 📬 uses: actions/upload-artifact@v3 diff --git a/cypress/e2e/course/addSubstituteTeacherToCourse.feature b/cypress/e2e/course/addSubstituteTeacherToCourse.feature new file mode 100644 index 000000000..f278e82b0 --- /dev/null +++ b/cypress/e2e/course/addSubstituteTeacherToCourse.feature @@ -0,0 +1,18 @@ +#@courses @stable_test +Feature: Course - Add substitute teacher to course + + As a teacher I want to add substitute teacher to the course. + +Scenario: Adding substitute teacher to course + Given I am logged in as a 'teacher1' at 'brb' + When I go to rooms overview + And I go to room 'Biologie' + When I open course edit page + Then I can see course edit page + And I clear substitute teacher field + And I add substitute teacher 'teacher2' + And I click on save changes + Then I log out + Given I am logged in as a 'teacher2' at 'brb' + When I go to rooms overview + And I go to room 'Biologie' diff --git a/cypress/support/pages/course/pageCourses.js b/cypress/support/pages/course/pageCourses.js index aa6a8ea80..8e04c6990 100644 --- a/cypress/support/pages/course/pageCourses.js +++ b/cypress/support/pages/course/pageCourses.js @@ -40,6 +40,9 @@ class Courses { '[data-testid="room-detail-task-chip-submitted"]' static #contentCardTaskInfoGradingsChip = '[data-testid="room-detail-task-chip-graded"]' + static #addSubstituteTeacher = '[id="substituteTeacher_chosen"]' + static #chosenResults = '.chosen-results li' + static #chosenContainer = '.chosen-container span' courseIsVisiblOnOverviewPage (courseName) { cy.contains(courseName).should('be.visible').and('contain.text', courseName) @@ -367,5 +370,30 @@ class Courses { expect(interceptions.response.statusCode).to.equal(200) }) } + + clearSubstituteTeacherField() { + cy.get(Courses.#addSubstituteTeacher).click().type('{selectall}{backspace}') + } + + addSubstituteTeacher (username) { + let userFirstName + let userLastName + switch (username) { + case 'teacher1': + userFirstName = Cypress.env('TEACHER_1_FIRST_NAME') + userLastName = Cypress.env('TEACHER_1_LAST_NAME') + break + case 'teacher2': + userFirstName = Cypress.env('TEACHER_2_FIRST_NAME') + userLastName = Cypress.env('TEACHER_2_LAST_NAME') + break + } + let userFullName = userLastName + ", " + userFirstName + cy.get(Courses.#chosenResults).contains(userFullName).click() + cy.get(Courses.#chosenContainer).should('contain', userFullName) + } + + + } export default Courses diff --git a/cypress/support/step_definition/course/commonCourseSteps.spec.js b/cypress/support/step_definition/course/commonCourseSteps.spec.js index 5e1e6f91b..489f8954f 100644 --- a/cypress/support/step_definition/course/commonCourseSteps.spec.js +++ b/cypress/support/step_definition/course/commonCourseSteps.spec.js @@ -138,3 +138,11 @@ Then('I see task {string} contains buttons', taskTitle => { Then('I can see topic {string} on course page', topicTitle => { courses.topicIsVisibleOnCoursePage(topicTitle) }) + +And('I clear substitute teacher field', () => { + courses.clearSubstituteTeacherField() +}) + +And('I add substitute teacher {string}', username => { + courses.addSubstituteTeacher(username) +}) \ No newline at end of file