107 lines
No EOL
2.6 KiB
TypeScript
107 lines
No EOL
2.6 KiB
TypeScript
import {UserListFactory} from '../../factories/users_list'
|
|
import {TaskFactory} from '../../factories/task'
|
|
import {UserFactory} from '../../factories/user'
|
|
import {ListFactory} from '../../factories/list'
|
|
import {prepareLists} from './prepareLists'
|
|
|
|
import '../../support/authenticateUser'
|
|
|
|
describe('List View List', () => {
|
|
prepareLists()
|
|
|
|
it('Should be an empty list', () => {
|
|
cy.visit('/lists/1')
|
|
cy.url()
|
|
.should('contain', '/lists/1/list')
|
|
cy.get('.list-title h1')
|
|
.should('contain', 'First List')
|
|
cy.get('.list-title .dropdown')
|
|
.should('exist')
|
|
cy.get('p')
|
|
.contains('This list is currently empty.')
|
|
.should('exist')
|
|
})
|
|
|
|
it('Should create a new task', () => {
|
|
const newTaskTitle = 'New task'
|
|
|
|
cy.visit('/lists/1')
|
|
cy.get('.task-add textarea')
|
|
.type(newTaskTitle+'{enter}')
|
|
cy.get('.tasks')
|
|
.should('contain.text', newTaskTitle)
|
|
})
|
|
|
|
it('Should navigate to the task when the title is clicked', () => {
|
|
const tasks = TaskFactory.create(5, {
|
|
id: '{increment}',
|
|
list_id: 1,
|
|
})
|
|
cy.visit('/lists/1/list')
|
|
|
|
cy.get('.tasks .task .tasktext')
|
|
.contains(tasks[0].title)
|
|
.first()
|
|
.click()
|
|
|
|
cy.url()
|
|
.should('contain', `/tasks/${tasks[0].id}`)
|
|
})
|
|
|
|
it('Should not see any elements for a list which is shared read only', () => {
|
|
UserFactory.create(2)
|
|
UserListFactory.create(1, {
|
|
list_id: 2,
|
|
user_id: 1,
|
|
right: 0,
|
|
})
|
|
const lists = ListFactory.create(2, {
|
|
owner_id: '{increment}',
|
|
namespace_id: '{increment}',
|
|
})
|
|
cy.visit(`/lists/${lists[1].id}/`)
|
|
|
|
cy.get('.list-title .icon')
|
|
.should('not.exist')
|
|
cy.get('input.input[placeholder="Add a new task..."')
|
|
.should('not.exist')
|
|
})
|
|
|
|
it('Should only show the color of a list in the navigation and not in the list view', () => {
|
|
const lists = ListFactory.create(1, {
|
|
hex_color: '00db60',
|
|
})
|
|
TaskFactory.create(10, {
|
|
list_id: lists[0].id,
|
|
})
|
|
cy.visit(`/lists/${lists[0].id}/`)
|
|
|
|
cy.get('.menu-list li .list-menu-link .color-bubble')
|
|
.should('have.css', 'background-color', 'rgb(0, 219, 96)')
|
|
cy.get('.tasks-container .tasks .color-bubble')
|
|
.should('not.exist')
|
|
})
|
|
|
|
it('Should paginate for > 50 tasks', () => {
|
|
const tasks = TaskFactory.create(100, {
|
|
id: '{increment}',
|
|
title: i => `task${i}`,
|
|
list_id: 1,
|
|
})
|
|
cy.visit('/lists/1/list')
|
|
|
|
cy.get('.tasks-container .tasks')
|
|
.should('contain', tasks[99].title)
|
|
|
|
cy.get('.card-content .pagination .pagination-link')
|
|
.contains('2')
|
|
.click()
|
|
|
|
cy.url()
|
|
.should('contain', '?page=2')
|
|
cy.get('.tasks-container .tasks')
|
|
.should('contain', tasks[1].title)
|
|
cy.get('.tasks-container .tasks')
|
|
.should('not.contain', tasks[99].title)
|
|
})
|
|
}) |