128 lines
3.4 KiB
TypeScript
128 lines
3.4 KiB
TypeScript
import {TeamFactory} from '../../factories/team'
|
|
import {TeamMemberFactory} from '../../factories/team_member'
|
|
import {UserFactory} from '../../factories/user'
|
|
import '../../support/authenticateUser'
|
|
|
|
describe('Team', () => {
|
|
it('Creates a new team', () => {
|
|
TeamFactory.truncate()
|
|
cy.visit('/teams')
|
|
|
|
const newTeamName = 'New Team'
|
|
|
|
cy.get('a.button')
|
|
.contains('Create a new team')
|
|
.click()
|
|
cy.url()
|
|
.should('contain', '/teams/new')
|
|
cy.get('.card-header-title')
|
|
.contains('Create a new team')
|
|
cy.get('input.input')
|
|
.type(newTeamName)
|
|
cy.get('.button')
|
|
.contains('Create')
|
|
.click()
|
|
|
|
cy.url()
|
|
.should('contain', '/edit')
|
|
cy.get('input#teamtext')
|
|
.should('have.value', newTeamName)
|
|
})
|
|
|
|
it('Shows all teams', () => {
|
|
TeamMemberFactory.create(10, {
|
|
team_id: '{increment}',
|
|
})
|
|
const teams = TeamFactory.create(10, {
|
|
id: '{increment}',
|
|
})
|
|
|
|
cy.visit('/teams')
|
|
|
|
cy.get('.teams.box')
|
|
.should('not.be.empty')
|
|
teams.forEach(t => {
|
|
cy.get('.teams.box')
|
|
.should('contain', t.name)
|
|
})
|
|
})
|
|
|
|
it('Allows an admin to edit the team', () => {
|
|
TeamMemberFactory.create(1, {
|
|
team_id: 1,
|
|
admin: true,
|
|
})
|
|
const teams = TeamFactory.create(1, {
|
|
id: 1,
|
|
})
|
|
|
|
cy.visit('/teams/1/edit')
|
|
cy.get('.card input.input')
|
|
.first()
|
|
.type('{selectall}New Team Name')
|
|
|
|
cy.get('.card .button')
|
|
.contains('Save')
|
|
.click()
|
|
|
|
cy.get('table.table td')
|
|
.contains('Admin')
|
|
.should('exist')
|
|
cy.get('.global-notification')
|
|
.should('contain', 'Success')
|
|
})
|
|
|
|
it('Does not allow a normal user to edit the team', () => {
|
|
TeamMemberFactory.create(1, {
|
|
team_id: 1,
|
|
admin: false,
|
|
})
|
|
const teams = TeamFactory.create(1, {
|
|
id: 1,
|
|
})
|
|
|
|
cy.visit('/teams/1/edit')
|
|
cy.get('.card input.input')
|
|
.should('not.exist')
|
|
cy.get('table.table td')
|
|
.contains('Member')
|
|
.should('exist')
|
|
})
|
|
|
|
it('Allows an admin to add members to the team', () => {
|
|
TeamMemberFactory.create(1, {
|
|
team_id: 1,
|
|
admin: true,
|
|
})
|
|
TeamFactory.create(1, {
|
|
id: 1,
|
|
})
|
|
const users = UserFactory.create(5)
|
|
|
|
cy.visit('/teams/1/edit')
|
|
cy.get('.card')
|
|
.contains('Team Members')
|
|
.get('.card-content .multiselect .input-wrapper input')
|
|
.type(users[1].username)
|
|
cy.get('.card')
|
|
.contains('Team Members')
|
|
.get('.card-content .multiselect .search-results')
|
|
.children()
|
|
.first()
|
|
.click()
|
|
cy.get('.card')
|
|
.contains('Team Members')
|
|
.get('.card-content .button')
|
|
.contains('Add to team')
|
|
.click()
|
|
|
|
cy.get('table.table td')
|
|
.contains('Admin')
|
|
.should('exist')
|
|
cy.get('table.table tr')
|
|
.should('contain', users[1].username)
|
|
.should('contain', 'Member')
|
|
cy.get('.global-notification')
|
|
.should('contain', 'Success')
|
|
})
|
|
})
|