import {TeamFactory} from '../../factories/team' import {TeamMemberFactory} from '../../factories/team_member' import '../../support/authenticateUser' describe('Team', () => { it('Creates a new team', () => { TeamFactory.truncate() cy.visit('/teams') cy.get('a.button') .contains('New Team') .click() cy.url() .should('contain', '/teams/new') cy.get('h3') .contains('Create a new team') cy.get('input.input') .type('New Team') cy.get('button.is-success') .contains('Add') .click() cy.get('.fullpage') .should('not.exist') cy.url() .should('contain', '/edit') cy.get('.card-header .card-header-title') .first() .should('contain', 'Edit Team') }) 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') }) })