Some cypress test cleanup and fixes

Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Julius Härtl
2022-08-28 14:37:11 +02:00
parent 74d9e63888
commit a0c47f8115
7 changed files with 213 additions and 142 deletions

View File

@@ -1,10 +1,10 @@
import { randHash } from "../utils"
import { randHash } from '../utils'
const randUser = randHash()
describe('Board', function () {
const password = 'pass123'
before(function () {
describe('Board', function() {
const password = 'pass123'
before(function() {
cy.nextcloudCreateUser(randUser, password)
})
@@ -12,30 +12,30 @@ describe('Board', function () {
cy.login(randUser, password)
})
it('Can create a board', function () {
let board = 'Test'
it('Can create a board', function() {
const board = 'Test'
cy.intercept({
method: 'POST',
url: '/index.php/apps/deck/boards',
}).as('createBoardRequest')
// Click "Add board"
cy.openLeftSidebar()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.eq(3).find('a').first().click({force: true})
cy.intercept({
method: 'POST',
url: '/index.php/apps/deck/boards',
}).as('createBoardRequest')
// Type the board title
cy.get('.board-create form input[type=text]')
.type(board, {force: true})
// Click "Add board"
cy.openLeftSidebar()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.eq(3).find('a').first().click({ force: true })
// Submit
cy.get('.board-create form input[type=submit]')
.first().click({force: true})
// Type the board title
cy.get('.board-create form input[type=text]')
.type(board, { force: true })
cy.wait('@createBoardRequest').its('response.statusCode').should('equal', 200)
cy.get('.app-navigation__list .app-navigation-entry__children .app-navigation-entry')
.contains(board).should('be.visible')
// Submit
cy.get('.board-create form input[type=submit]')
.first().click({ force: true })
cy.wait('@createBoardRequest').its('response.statusCode').should('equal', 200)
cy.get('.app-navigation__list .app-navigation-entry__children .app-navigation-entry')
.contains(board).should('be.visible')
})
})
})

View File

@@ -1,38 +1,67 @@
import { randHash } from '../utils'
const randUser = randHash()
describe('Card', function () {
const board = 'TestBoard'
const list = 'TestList'
const password = 'pass123'
const testBoardData = {
title: 'MyBoardTest',
color: '00ff00',
stacks: [
{
title: 'TestList',
cards: [
{
title: 'Hello world',
},
],
},
],
}
before(function () {
cy.nextcloudCreateUser(randUser, password)
cy.deckCreateBoard({ user: randUser, password }, board)
cy.deckCreateList({ user: randUser, password }, list)
})
describe('Card', function() {
before(function() {
cy.nextcloudCreateUser(randUser, randUser)
cy.createExampleBoard({
user: randUser,
password: randUser,
board: testBoardData,
})
})
beforeEach(function () {
cy.login(randUser, password)
})
beforeEach(function() {
cy.login(randUser, randUser)
})
it('Can add a card', function () {
let card = 'Card 1'
it('Can show card details modal', function() {
cy.openLeftSidebar()
cy.getNavigationEntry(testBoardData.title)
.first().click({ force: true })
cy.openLeftSidebar()
cy.get('#app-navigation-vue .app-navigation__list .app-navigation-entry')
.eq(3).find('a.app-navigation-entry-link')
.first().click({force: true})
cy.get('.board .stack').eq(0).within(() => {
cy.get('.card:contains("Hello world")').should('be.visible').click()
})
cy.get('.board .stack').eq(0).within(() => {
cy.get('button.action-item.action-item--single.icon-add')
.first().click()
cy.get('.modal__card').should('be.visible')
cy.get('.app-sidebar-header__maintitle').contains('Hello world')
})
cy.get('.stack__card-add form input#new-stack-input-main')
.type(card)
cy.get('.stack__card-add form input[type=submit]')
.first().click()
cy.get('.card').first().contains(card).should('be.visible')
})
})
})
it('Can add a card', function() {
const newCardTitle = 'Write some cypress tests'
cy.openLeftSidebar()
cy.getNavigationEntry(testBoardData.title)
.first().click({ force: true })
cy.get('.board .stack').eq(0).within(() => {
cy.get('.card:contains("Hello world")').should('be.visible')
cy.get('.button-vue[aria-label*="Add card"]')
.first().click()
cy.get('.stack__card-add form input#new-stack-input-main')
.type(newCardTitle)
cy.get('.stack__card-add form input[type=submit]')
.first().click()
cy.get(`.card:contains("${newCardTitle}")`).should('be.visible')
})
})
})

View File

@@ -4,7 +4,7 @@ const randUser = randHash()
describe('Deck dashboard', function() {
const password = 'pass123'
before(function () {
before(function() {
cy.nextcloudCreateUser(randUser, password)
})
@@ -18,15 +18,14 @@ describe('Deck dashboard', function() {
.should('have.text', 'Upcoming cards')
})
it('Can see the default "Personal Board" created for user by default', function () {
it('Can see the default "Personal Board" created for user by default', function() {
const defaultBoard = 'Personal'
cy.openLeftSidebar()
cy.get('.app-navigation__list .app-navigation-entry')
.eq(1)
.find('ul.app-navigation-entry__children li.app-navigation-entry')
cy.get('.app-navigation-entry-wrapper[icon=icon-deck]')
.find('ul.app-navigation-entry__children .app-navigation-entry:contains(' + defaultBoard + ')')
.first()
.contains(defaultBoard)
.should('be.visible')
})
})
})

View File

@@ -1,33 +1,30 @@
import { randHash } from "../utils";
const randUser = randHash();
import { randHash } from '../utils'
const randUser = randHash()
describe("Stack", function () {
const board = "TestBoard";
const password = "pass123";
const stack = "List 1";
describe('Stack', function() {
const board = 'TestBoard'
const password = 'pass123'
const stack = 'List 1'
before(function () {
before(function() {
cy.nextcloudCreateUser(randUser, password)
cy.deckCreateBoard({ user: randUser, password }, board)
})
beforeEach(function () {
beforeEach(function() {
cy.logout()
cy.login(randUser, password)
})
it("Can create a stack", function () {
it('Can create a stack', function() {
cy.openLeftSidebar()
cy.get("#app-navigation-vue .app-navigation__list .app-navigation-entry")
.eq(3)
.find("a.app-navigation-entry-link")
.first()
cy.getNavigationEntry(board)
.click({ force: true })
cy.get("#stack-add button").first().click()
cy.get("#stack-add form input#new-stack-input-main").type(stack)
cy.get("#stack-add form input[type=submit]").first().click()
cy.get('#stack-add button').first().click()
cy.get('#stack-add form input#new-stack-input-main').type(stack)
cy.get('#stack-add form input[type=submit]').first().click()
cy.get(".board .stack").eq(0).contains(stack).should("be.visible")
cy.get('.board .stack').eq(0).contains(stack).should('be.visible')
})
});
})