feat: Add possibility to clone cards when cloning a board
Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> Adjust BoardServiceTest to new dependencies Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> Add BoardCloneModal vue component to frontend. Adjust BoardApi and store to support clone options Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> Add license and credits Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> Fix PHP code style Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> Change default clone settings Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> Add accordion for advanced settings Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> Fix bug which caused board to be cloned when clicking out of the modal Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> Change wording of clone options Signed-off-by: Max Bachhuber <max.bachhuber@bahuma.io> fix: Rebase failures Signed-off-by: Julius Härtl <jus@bitgrid.net> update cloneBoards phpdoc make error message clear SPDX Header BoardCloneModal.vue Signed-off-by: grnd-alt <salimbelakkaf@outlook.de>
This commit is contained in:
committed by
Julius Knorr
parent
bdaf28eef4
commit
f2c30afe8a
@@ -5,6 +5,7 @@
|
||||
import { randUser } from '../utils/index.js'
|
||||
const user = randUser()
|
||||
const recipient = randUser()
|
||||
import { sampleBoard } from '../utils/sampleBoard'
|
||||
|
||||
describe('Board', function() {
|
||||
|
||||
@@ -58,3 +59,73 @@ describe('Board', function() {
|
||||
.should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
describe('Board cloning', function() {
|
||||
before(function() {
|
||||
cy.createUser(user)
|
||||
})
|
||||
|
||||
it('Clones a board without cards', function() {
|
||||
const boardName = 'Clone board original'
|
||||
const board = sampleBoard(boardName)
|
||||
cy.createExampleBoard({ user, board }).then((board) => {
|
||||
const boardId = board.id
|
||||
cy.visit(`/apps/deck/board/${boardId}`)
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.parent()
|
||||
.find('button[aria-label="Actions"]')
|
||||
.click()
|
||||
cy.get('button:contains("Clone board")')
|
||||
.click()
|
||||
|
||||
cy.get('.modal-container button:contains("Clone")')
|
||||
.click()
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + ' (copy)")')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.board-title h2').contains(boardName + ' (copy)')
|
||||
|
||||
cy.get('h3[aria-label="TestList"]')
|
||||
.should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
it('Clones a board with cards', function() {
|
||||
const boardName = 'Clone with cards'
|
||||
const board = sampleBoard(boardName)
|
||||
cy.createExampleBoard({ user, board }).then((board) => {
|
||||
const boardId = board.id
|
||||
cy.visit(`/apps/deck/board/${boardId}`)
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.parent()
|
||||
.find('button[aria-label="Actions"]')
|
||||
.click()
|
||||
cy.get('button:contains("Clone board")')
|
||||
.click()
|
||||
|
||||
cy.get('.checkbox-content__text:contains("Clone cards")')
|
||||
.click()
|
||||
|
||||
cy.get('.modal-container button:contains("Clone")')
|
||||
.click()
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + '")')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.app-navigation__list .app-navigation-entry:contains("' + boardName + ' (copy)")')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.board-title h2').contains(boardName + ' (copy)')
|
||||
|
||||
cy.get('h3[aria-label="TestList"]')
|
||||
.should('be.visible')
|
||||
|
||||
cy.get('.card:contains("Hello world")')
|
||||
.should('be.visible')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user