logins:
  - login:
    discriminator: DataGenSmallProject
    developer: 1
    qa: 1
    projectAdmin: 1
    devLead: 1
    qaLead: 1
    reviewer: 1
  - login:
    discriminator: DataGenBigProject
    developer: 1
    qa: 1
    projectAdmin: 1
    devLead: 1
    qaLead: 1
    reviewer: 1
  - login:
    discriminator: DataGenMassEditProject
    projectAdmin: 1

scenarios:
  - scenario: Developer is checking his / her task
    discriminator: DataGenSmallProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Developer
      - visit: userHomePage
      - visit: visitProjectDashboardPage
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: TASK
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: kanbanBoardPage
        parameters:
          trackerType: TASK
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: addComment
        pause: 1s
        parameters:
          trackerType: TASK
      - visit: trackerDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadDescriptionTooltip
        parameters:
          trackerType: USERSTORY
      - visit: trackerItemPage
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: TASK
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: TASK

  - scenario: QA is checking his / her task
    discriminator: DataGenSmallProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: QA
      - visit: userHomePage
      - visit: visitProjectDashboardPage
      - visit: trackersPage
      - visit: trackerDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: addComment
        pause: 1s
        parameters:
          trackerType: TASK
      - visit: kanbanBoardPage
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        pause: 1s
        parameters:
          trackerType: TASK
          tabs: WORKLOG,SCM,HISTORY,ALLHISTORY
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: modifyTestCaseTestSteps
        pause: 1s
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: createTestRunOnDocumentView
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItemDocumentView
        pause: 1s
        parameters:
          trackerType: TESTCASE

  - scenario: Project admin manages given project
    discriminator: DataGenSmallProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Project Admin
      - visit: projectsPage
      - visit: projectPage
      - visit: baselinesPage
        pause: 1s
      - visit: userPhotoPage
      - visit: projectDocumentPage
      - visit: projectDocumentPageDirectoryPage
      - visit: projectDocumentPageDirectoryPropertiesPage
      - visit: projectDocumentPageFilePropertiesPage
      - visit: projectMembersPage
        pause: 1s
      - visit: visitReportsPage
      - visit: visitReportFinderDialog
      - visit: openReport
      - visit: openReportForEdit

  - scenario: Dev Lead is checking progress of a given release and sprint
    discriminator: DataGenSmallProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Dev Lead
      - visit: visitUserDashboardPage
      - visit: visitProjectDashboardPage
      - visit: visitProjectWikiPage
      - visit: trackersTabPopupMenu
        parameters:
          tabType: TRACKER
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: USERSTORY
      - visit: openReferenceSelectorDialog
        parameters:
          trackerType: USERSTORY
          fieldName: Requirements
      - visit: trackerPage
        parameters:
          trackerType: EPIC
      - visit: reportPage
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: reportPage
        pause: 1s
        parameters:
          trackerType: EPIC
          showAncestorItems: true
      - visit: trackerDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: openTrackerItemTraceability
        parameters:
          trackerType: USERSTORY
      - visit: trackerTraceabilityReportPage
        parameters:
          trackerType: EPIC
          traceabilityConfigType: DEV
      - visit: projectBacklog
        pause: 1s
      - visit: visitReleasePage
        pause: 1s
      - visit: visitReleaseStatsPage
        parameters:
          releaseStatusFilter: OPEN
          releaseTypeFilter: ALL_TRACKER_ITEMS
      - visit: createTrackerItemOnPlannerView
        pause: 1s
        parameters:
          trackerType: EPIC
      - visit: createTrackerItemOnPlannerView
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: EPIC
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: EPIC
      - visit: updateDescription
        pause: 1s
        parameters:
          trackerType: EPIC
      - visit: updateDescription
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: updateSubject
        pause: 1s
        parameters:
          trackerType: USERSTORY
          associatedTrackerType: EPIC
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItemDocumentEditView
        pause: 1s
        parameters:
          trackerType: TASK

  - scenario: QA Lead is checking progress of a given release and sprint
    discriminator: DataGenSmallProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: QA Lead
      - visit: visitUserDashboardPage
      - visit: visitProjectDashboardPage
      - visit: visitProjectWikiPage
      - visit: trackersTabPopupMenu
        parameters:
          tabType: TRACKER
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerPage
        parameters:
          trackerType: TASK
      - visit: reportPage
        pause: 1s
        parameters:
          trackerType: TESTCASE
          showDescendantItems: true
      - visit: reportPage
        pause: 1s
        parameters:
          trackerType: TASK
      - visit: trackerDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: trackerDocumentEditView
        parameters:
          trackerType: TESTCASE
      - visit: trackerTraceabilityTableView
        pause: 1s
      - visit: trackerTraceabilityReportPage
        parameters:
          trackerType: USERSTORY
          traceabilityConfigType: QA
      - visit: projectBacklog
        pause: 1s
      - visit: createTrackerItemOnPlannerView
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItemOnPlannerView
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItemDocumentEditView
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: trackerPage
        parameters:
          trackerType: BUG
      - visit: trackerItemPage
        parameters:
          trackerType: BUG
      - visit: addAssociation
        parameters:
          trackerType: TESTCASE
          associatedTrackerType: TESTCASE
      - visit: updateSubject
        parameters:
          trackerType: TESTCASE
          associatedTrackerType: TASK

  - scenario: Reviewer checking and manage reviews
    discriminator: DataGenSmallProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Reviewer
      - visit: userHomePage
      - visit: reviewsPage
        pause: 1s
      - visit: reviewPage
        pause: 1s
      - visit: reviewStatisticsPage
        pause: 1s


  - scenario: Developer is checking his / her task - in Big project
    discriminator: DataGenBigProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Developer
      - visit: userHomePage
      - visit: visitProjectDashboardPage
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: TASK
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: kanbanBoardPage
        parameters:
          trackerType: TASK
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: addComment
        pause: 1s
        parameters:
          trackerType: TASK
      - visit: trackerDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadDescriptionTooltip
        parameters:
          trackerType: USERSTORY
      - visit: trackerItemPage
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: TASK
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: TASK

  - scenario: QA is checking his / her task - in Big project
    discriminator: DataGenBigProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: QA
      - visit: userHomePage
      - visit: visitProjectDashboardPage
      - visit: trackersPage
      - visit: trackerDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TASK
      - visit: addComment
        pause: 1s
        parameters:
          trackerType: TASK
      - visit: kanbanBoardPage
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerItemPage
        pause: 1s
        parameters:
          trackerType: TASK
          tabs: WORKLOG,SCM,HISTORY,ALLHISTORY
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: modifyTestCaseTestSteps
        pause: 1s
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: createTestRunOnDocumentView
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItemDocumentView
        pause: 1s
        parameters:
          trackerType: TESTCASE

  - scenario: Project admin manages given project - in Big project
    discriminator: DataGenBigProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Project Admin
      - visit: projectsPage
      - visit: projectPage
      - visit: baselinesPage
        pause: 1s
      - visit: userPhotoPage
      - visit: projectDocumentPage
      - visit: projectDocumentPageDirectoryPage
      - visit: projectDocumentPageDirectoryPropertiesPage
      - visit: projectDocumentPageFilePropertiesPage
      - visit: projectMembersPage
        pause: 1s
      - visit: visitReportsPage
      - visit: visitReportFinderDialog
      - visit: openReport
      - visit: openReportForEdit

  - scenario: Dev Lead is checking progress of a given release and sprint - in Big project
    discriminator: DataGenBigProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Dev Lead
      - visit: visitUserDashboardPage
      - visit: visitProjectDashboardPage
      - visit: visitProjectWikiPage
      - visit: trackersTabPopupMenu
        parameters:
          tabType: TRACKER
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: USERSTORY
      - visit: openReferenceSelectorDialog
        parameters:
          trackerType: USERSTORY
          fieldName: Requirements
      - visit: trackerPage
        parameters:
          trackerType: EPIC
      - visit: reportPage
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: reportPage
        pause: 1s
        parameters:
          trackerType: EPIC
          showAncestorItems: true
      - visit: trackerDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: USERSTORY
      - visit: openTrackerItemTraceability
        parameters:
          trackerType: USERSTORY
      - visit: trackerTraceabilityReportPage
        parameters:
          trackerType: EPIC
          traceabilityConfigType: DEV
      - visit: projectBacklog
        pause: 1s
      - visit: visitReleasePage
        pause: 1s
      - visit: visitReleaseStatsPage
        parameters:
          releaseStatusFilter: OPEN
          releaseTypeFilter: ALL_TRACKER_ITEMS
      - visit: createTrackerItemOnPlannerView
        pause: 1s
        parameters:
          trackerType: EPIC
      - visit: createTrackerItemOnPlannerView
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: EPIC
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: EPIC
      - visit: updateStoryPoint
        pause: 1s
        parameters:
          trackerType: EPIC
      - visit: updateDescription
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: updateSubject
        pause: 1s
        parameters:
          trackerType: USERSTORY
          associatedTrackerType: EPIC
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItemDocumentEditView
        pause: 1s
        parameters:
          trackerType: TASK

  - scenario: QA Lead is checking progress of a given release and sprint - in Big project
    discriminator: DataGenBigProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: QA Lead
      - visit: visitUserDashboardPage
      - visit: visitProjectDashboardPage
      - visit: visitProjectWikiPage
      - visit: trackersTabPopupMenu
        parameters:
          tabType: TRACKER
      - visit: trackersPage
      - visit: trackerPage
        parameters:
          trackerType: TESTCASE
      - visit: trackerPage
        parameters:
          trackerType: TASK
      - visit: reportPage
        pause: 1s
        parameters:
          trackerType: TESTCASE
          showDescendantItems: true
      - visit: reportPage
        pause: 1s
        parameters:
          trackerType: TASK
      - visit: trackerDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: loadNextPageOnDocumentView
        parameters:
          trackerType: TESTCASE
      - visit: trackerDocumentEditView
        parameters:
          trackerType: TESTCASE
      - visit: trackerTraceabilityTableView
        pause: 1s
      - visit: trackerTraceabilityReportPage
        parameters:
          trackerType: USERSTORY
          traceabilityConfigType: QA
      - visit: projectBacklog
        pause: 1s
      - visit: createTrackerItemOnPlannerView
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItemOnPlannerView
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: createTrackerItem
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: updateTrackerItemStatus
        pause: 1s
        parameters:
          trackerType: USERSTORY
      - visit: createTrackerItemDocumentEditView
        pause: 1s
        parameters:
          trackerType: TESTCASE
      - visit: trackerPage
        parameters:
          trackerType: BUG
      - visit: trackerItemPage
        parameters:
          trackerType: BUG
      - visit: addAssociation
        parameters:
          trackerType: TESTCASE
          associatedTrackerType: TESTCASE
      - visit: updateSubject
        parameters:
          trackerType: TESTCASE
          associatedTrackerType: TASK

  - scenario: Reviewer checking and manage reviews  - in Big project
    discriminator: DataGenBigProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        pause: 1s
        parameters:
          roleName: Reviewer
      - visit: userHomePage
      - visit: reviewsPage
        pause: 1s
      - visit: reviewPage
        pause: 1s
      - visit: reviewStatisticsPage
        pause: 1s


  - scenario: Testing mass edit test cases
    discriminator: DataGenMassEditProject
    pause: 1s
    inject:
      from: 1
      to: 1
      during: 1s
      hold: 1s
    steps:
      - visit: authenticate
        parameters:
          roleName: Project Admin
      - visit: trackerPage
        parameters:
          trackerType: TESTCASE
      - visit: massEditTrackerItems
        pause: 1s
        parameters:
          trackerType: TESTCASE
          trackerItemsCount: 100