Структура Dynamic TestCafe запускается - PullRequest
0 голосов
/ 02 декабря 2018

Я пытаюсь проверить, что несколько типов пользователей (разделенных на роли) могут войти в систему и просмотреть страницу со списком и каждый применимый тип фильтра.Поскольку излишне писать это N раз для каждого пользователя, объединенного с каждым фильтром, я использую следующее:

export const filters = {
  typeOne: {
    'Alerts': 'alerts',
    'Open': 'open',
    'Pending': 'pending',
    'Finished': 'finished',
    'Closed': 'closed'
  },
  /* ... */
}

export const roleTitles = {
  typeOne: 'User Type One',
  typeTwo: 'User Type Two',
  /* ... */
}

const getSelectorMenuItem = (label) => Selector('.marketplace-side-nav.menu').find('.item').withText(label)
const selectorMap = Selector('.map-container')
const selectorMarketplaceList = Selector('.marketplace-list')

Object.keys(roles).map(async (role) => {
  await Promise.all(Object.keys(filters[role]).map(async (filterTitle) => {
    test(`${roleTitles[role]} Can open ${filterTitle} filter`, async t => {
      const expectedPath = `marketplace/all/${filters[role][filterTitle]}`
      await t.useRole(roles[role])
        .click(getSelectorMenuItem(filterTitle))
        .expect(getLocation()).contains(expectedPath, { timeout: 3000 })
        .expect(selectorMap.exists).ok()
        .expect(selectorMarketplaceList.exists).ok()
      })
  }))
})

Это работает, однако, это очень медленно.Мне не чужд тот факт, что тесты e2e занимают время, но кажется, что они зависают, когда достигают последнего элемента в любом из типов фильтров.

...