Skip to content

Commit

Permalink
Cypress test for issue 1944 (#2055)
Browse files Browse the repository at this point in the history
Co-authored-by: Dmitry Kruchinin <[email protected]>
  • Loading branch information
dvkruchinin and Dmitry Kruchinin authored Aug 21, 2020
1 parent 582e23b commit 822a3b5
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 5 deletions.
62 changes: 62 additions & 0 deletions tests/cypress/integration/issue_1944_loading_screen_switch_job.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Copyright (C) 2020 Intel Corporation
*
* SPDX-License-Identifier: MIT
*/

/// <reference types="cypress" />

context('Being able to return to the job list for a task and start a new job without an infinite loading screen.', () => {

const issueId = '1944'
const labelName = `Issue ${issueId}`
const taskName = `New annotation task for ${labelName}`
const attrName = `Attr for ${labelName}`
const textDefaultValue = 'Some default value for type Text'
const imagesCount = 4
let images = []
for ( let i = 1; i <= imagesCount; i++) {
images.push(`image_${issueId}_${i}.png`)
}
const width = 800
const height = 800
const posX = 10
const posY = 10
const color = 'gray'
const archiveName = `images_issue_${issueId}.zip`
const archivePath = `cypress/fixtures/${archiveName}`
const imagesFolder = `cypress/fixtures/image_issue_${issueId}`
const directoryToArchive = imagesFolder
const multiJobs = true

before(() => {
cy.visit('auth/login')
cy.login()
for (let img of images) {
cy.imageGenerator(imagesFolder, img, width, height, color, posX, posY, labelName)
}
cy.createZipArchive(directoryToArchive, archivePath)
})

describe(`Testing issue "${issueId}"`, () => {
it('Create a multijob task', () => {
cy.createAnnotationTask(taskName, labelName, attrName, textDefaultValue, archiveName, multiJobs)
})
it('Open the task. Open first job', () => {
cy.openTaskJob(taskName)
cy.get('input[role="spinbutton"]')
.should('have.value', '0')
})
it('Return to tasks page', () => {
cy.get('[value="tasks"]').click()
cy.url().should('include', '/tasks').and('not.contain', '/jobs')
})
it('Open the task. Open second job', () => {
cy.openTaskJob(taskName, 1)
cy.get('.cvat-annotation-header')
.should('exist')
cy.get('input[role="spinbutton"]')
.should('have.value', '1')
})
})
})
21 changes: 16 additions & 5 deletions tests/cypress/support/commands.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ Cypress.Commands.add('createAnnotationTask', (taksName='New annotation task',
labelName='Some label',
attrName='Some attr name',
textDefaultValue='Some default value for type Text',
image='image.png') => {
image='image.png',
multiJobs=false,
segmentSize=1) => {
cy.contains('button', 'Create new task').click()
cy.url().should('include', '/tasks/create')
cy.get('[id="name"]').type(taksName)
Expand All @@ -42,6 +44,11 @@ Cypress.Commands.add('createAnnotationTask', (taksName='New annotation task',
cy.get('[placeholder="Default value"]').type(textDefaultValue)
cy.contains('button', 'Done').click()
cy.get('input[type="file"]').attachFile(image, { subjectType: 'drag-n-drop' });
if (multiJobs) {
cy.contains('Advanced configuration').click()
cy.get('#segmentSize')
.type(segmentSize)
}
cy.contains('button', 'Submit').click()
cy.contains('The task has been created', {timeout: '8000'})
cy.get('[value="tasks"]').click()
Expand All @@ -55,14 +62,18 @@ Cypress.Commands.add('openTask', (taskName) => {
.click()
})

Cypress.Commands.add('openJob', () => {
cy.contains('a', 'Job #').click()
Cypress.Commands.add('openJob', (jobNumber=0) => {
cy.get('.ant-table-tbody')
.find('tr')
.eq(jobNumber)
.contains('a', 'Job #')
.click()
cy.url().should('include', '/jobs')
})

Cypress.Commands.add('openTaskJob', (taskName) => {
Cypress.Commands.add('openTaskJob', (taskName, jobNumber=0) => {
cy.openTask(taskName)
cy.openJob()
cy.openJob(jobNumber)
})

Cypress.Commands.add('createShape', (firstX, firstY, lastX, lastY) => {
Expand Down

0 comments on commit 822a3b5

Please sign in to comment.