Feature: 팀 참가하기
Scenario: 팀에 참가합니다.
Given agenda가 생성되어 있습니다.
And 팀이 생성되어 있습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
And 팀 키를 request body로 보냅니다.
When 해당 팀 참가하기 요청을 받으면
Then 팀 참가하기가 성공하고 204를 반환합니다.
Scenario: agenda가 없을 경우 생성에 실패합니다.
Given 없는 agenda의 정보를 쿼리파라미터로 받습니다.
When 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 404 에러코드를 반환합니다. // AGENDA_NOT_FOUND 404
Scenario: 팀의 식별키가 올바르지 않을 경우 취소에 실패합니다.
Given agenda가 생성되어 있습니다.
And 없는 팀의 식별 키에 대한 정보를 입력합니다.
When 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 404 에러코드를 반환합니다. // TEAM_NOT_FOUND 404
Scenario: deadline이 지난 agenda의 경우 참가에 실패합니다.
Given agenda가 생성되어 있습니다.
And 팀이 생성되어 있습니다.
And deadline이 지난 agenda의 정보를 쿼리파라미터로 받습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
When 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 400 에러코드를 반환합니다. // AGENDA_NOT_OPEN 400
Scenario: agenda 개최자일 경우 참가에 실패합니다.
Given 사용자가 만든 agenda가 생성되어 있습니다.
And 팀이 생성되어 있습니다.
And 개최자가 로그인되어 있습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
And 팀을 참가합니다.
When 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 403 에러코드를 반환합니다. // AGENDA_HOST_FORBIDDEN 403
Scenario: Location 제한과 다를 경우 생성에 실패합니다.
Given agenda가 생성되어 있습니다.
And 팀이 생성되어 있습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
And agenda조건에 맞지 않는 Location을 보냅니다.
When 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 400 에러코드를 반환합니다. // LOCATION_NOT_VALID 400
Scenario: 이미 같은 agenda에 참가한 팀이 있을 경우 참가에 실패합니다.
Given agenda가 생성되어 있습니다.
And 팀이 생성되어 있습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
And 사용자가 참가한 팀이 생성되어 있습니다.
And 팀에 참가합니다.
When 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 409 에러코드를 반환합니다. // TEAM_ALREADY_EXIST 409
Scenario: 이미 같은 agenda에 만든 팀이 있을 경우 참가에 실패합니다.
Given agenda가 생성되어 있습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
And 사용자가 만든 팀이 생성되어 있습니다.
And 팀에 참가합니다.
When 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 409 에러코드를 반환합니다. // TEAM_ALREADY_EXIST 409
Scenario: ticket이 없을 경우 참가에 실패합니다.
Given agenda가 생성되어 있습니다.
And 팀이 생성되어 있습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
When 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 403 에러코드를 반환합니다. // TICKET_NOT_EXIST 403
Scenario: 이미 참가한 팀에 참가할 경우 실패합니다.
Given agenda가 생성되어 있습니다.
And 사용자가 팀에 참가한 팀이 생성되어 있습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
And 팀 키를 request body로 보냅니다.
When 해당 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 409 에러코드를 반환합니다. // TEAM_ALREADY_EXIST 409
Scenario: 이미 확정한 팀에 참가할 경우 실패합니다.
Given agenda가 생성되어 있습니다.
And 확정한 팀이 생성되어 있습니다.
And 팀에 참가할 agenda_id를 쿼리파라미터로 받습니다.
And 팀 키를 request body로 보냅니다.
When 해당 팀 참가하기 요청을 받으면
Then 팀 참가하기 요청이 실패하고 400 에러코드를 반환합니다. // TEAM_NOT_OPEN 400
Description
Request
URI
POST /agenda/team/join?agenda_id=agenda_id
Request body
Response
Status code
Response body
GWT
Todo
ETC
No response