github.com/quickfeed/quickfeed@v0.0.0-20240507093252-ed8ca812a09c/public/src/__tests__/e2e/E2ECourseVisibility.test.tsx (about)

     1  import { By, until } from 'selenium-webdriver'
     2  import { setupDrivers } from '../TestHelpers'
     3  
     4  
     5  describe("End to End course visibility", () => {
     6  
     7      const drivers = setupDrivers()
     8  
     9      drivers.forEach(driver => {
    10          it("Should not overlap on res 1920x1080", async () => {
    11              // Go to course page
    12              const hamburger = await driver.findElement(By.className("hamburger"))
    13              await driver.wait(until.elementIsVisible(hamburger), 100)
    14              await hamburger.click()
    15              const goToCourse = await driver.findElement(By.css(".courseLink"))
    16              await driver.wait(until.elementIsVisible(goToCourse), 100)
    17              await goToCourse.click()
    18  
    19              // Find course code from course card and hamburger menu
    20              const card = await driver.findElement(By.css(".card"))
    21              const cardCourseCode = await card.findElement(By.css(".card-header")).getText()
    22              const courseCode = cardCourseCode.split("\n")[0]
    23              const hamburgerCode = await driver.findElement(By.css("#title")).getText()
    24  
    25              // Unfavorite the course
    26              const star = await driver.findElement(By.css(".fa-star"))
    27              await driver.wait(until.elementIsVisible(star), 100)
    28              await star.click()
    29  
    30              // Get courseCode from myCourses section
    31              const myCourse = await driver.findElement(By.css(".myCourses"))
    32              const myCoursesCard = await myCourse.findElement(By.css(".card-header")).getText()
    33  
    34              const hasMoved = (courseCode === myCoursesCard.split("\n")[0])
    35  
    36              // Find course codes in navigator
    37              const navigatorCourses = await driver.findElement(By.css(".navigator"))
    38              const courses = await navigatorCourses.findElements(By.css("#title"))
    39  
    40              // Check if the course has moved from navigator
    41              let isInList = true
    42              for (let i = 0; i < courses.length; i++) {
    43                  if (await courses[i].getText() === hamburgerCode) {
    44                      isInList = false
    45                  }
    46              }
    47              const movedFromFavorites = (isInList && hasMoved)
    48  
    49              await driver.close()
    50              expect(movedFromFavorites).toBe((true))
    51          }, 50000)
    52      })
    53  })