Skip to content

Commit

Permalink
Merge pull request #1568 from woowacourse/refactor/guest-권한
Browse files Browse the repository at this point in the history
Refactor/guest 권한
  • Loading branch information
splitCoding authored Oct 4, 2023
2 parents 2292d67 + 778fc15 commit d3343e9
Show file tree
Hide file tree
Showing 32 changed files with 620 additions and 413 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@
import wooteco.prolog.AcceptanceSteps;
import wooteco.prolog.fixtures.GithubResponses;
import wooteco.prolog.login.application.dto.TokenResponse;
import wooteco.prolog.member.application.dto.MemberResponse;

public class LoginStepDefinitions extends AcceptanceSteps {

@Given("{string}(이)(가) 로그인을 하고")
public void 멤버가로그인을하고(String member) {
@Given("{string}(이)(가) 크루역할로 로그인을 하고")
public void 멤버가크루역할로로그인을하고(String member) {
HashMap<String, Object> data = new HashMap<>();
data.put("code", GithubResponses.findByName(member).getCode());

Expand All @@ -22,6 +23,23 @@ public class LoginStepDefinitions extends AcceptanceSteps {
context.accessToken = tokenResponse.getAccessToken();

context.storage.put("username", GithubResponses.findByName(member).getLogin());
updateRoleToCrew();
}

private void updateRoleToCrew() {
final String loginUsername = (String) context.storage.get("username");
final Long memberId = findMemberIdByUsername(loginUsername);

HashMap<String, Object> data = new HashMap<>();
data.put("role", "CREW");

context.invokeHttpPatchWithToken("/members/" + memberId + "/role", data);
}

private Long findMemberIdByUsername(final String username) {
context.invokeHttpGet("/members/" + username);
final MemberResponse memberResponse = context.response.as(MemberResponse.class);
return memberResponse.getId();
}

@When("{string}(이)(가) 로그인을 하면")
Expand Down
40 changes: 20 additions & 20 deletions backend/src/acceptanceTest/resources/wooteco/prolog/article.feature
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
@api
Feature: 아티클 관련 기능

Background: 사전 작업
Given "브라운"이 로그인을 하고
Background: 사전 작업
Given "브라운" 크루역할로 로그인을 하고

Scenario: 아티클을 작성하기
When 아티클을 작성하면
Then 아티클이 작성된다
Scenario: 아티클을 작성하기
When 아티클을 작성하면
Then 아티클이 작성된다

Scenario: 아티클을 전체 조회하기
Given 아티클을 여러개 작성하고
When 아티클을 전체 조회 하면
Then 아티클이 전체 조회 된다
Scenario: 아티클을 전체 조회하기
Given 아티클을 여러개 작성하고
When 아티클을 전체 조회 하면
Then 아티클이 전체 조회 된다

Scenario: 아티클을 수정하기
Given 아티클을 여러개 작성하고
When 1번 아티클을 수정하면
Then 아티클이 수정된다
Scenario: 아티클을 수정하기
Given 아티클을 여러개 작성하고
When 1번 아티클을 수정하면
Then 아티클이 수정된다

Scenario: 아티클을 삭제하기
Given 아티클을 여러개 작성하고
When 1번 아티클을 삭제하면
Then 아티클이 삭제된다
Scenario: 아티클을 삭제하기
Given 아티클을 여러개 작성하고
When 1번 아티클을 삭제하면
Then 아티클이 삭제된다

Scenario: Url og태그 파싱하기
When Url을 입력하면
Then og태그를 파싱해서 반환한다.
Scenario: Url og태그 파싱하기
When Url을 입력하면
Then og태그를 파싱해서 반환한다.
22 changes: 11 additions & 11 deletions backend/src/acceptanceTest/resources/wooteco/prolog/badges.feature
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
@api
Feature: 배지 관련 기능

Background: 사전 작업
Given 세션 여러개를 생성하고
And 미션 여러개를 생성하고
Background: 사전 작업
Given 세션 여러개를 생성하고
And 미션 여러개를 생성하고

Scenario: 존재하지 않는 멤버로 배지 조회하기
When 존재하지 않는 멤버의 배지를 조회하면
Then 존재하지 않는 멤버 관련 예외가 발생한다
Scenario: 존재하지 않는 멤버로 배지 조회하기
When 존재하지 않는 멤버의 배지를 조회하면
Then 존재하지 않는 멤버 관련 예외가 발생한다

Scenario: 배지목록 조회하기
Given "브라운"이 로그인을 하고
And 여러개의 스터디로그를 작성하고
When 배지를 조회하면
Then 열정왕 배지를 부여한다.
Scenario: 배지목록 조회하기
Given "브라운" 크루역할로 로그인을 하고
And 여러개의 스터디로그를 작성하고
When 배지를 조회하면
Then 열정왕 배지를 부여한다.


44 changes: 22 additions & 22 deletions backend/src/acceptanceTest/resources/wooteco/prolog/comment.feature
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
@api
Feature: 댓글 관련 기능

Background: 사전 작업
Given "브라운"이 로그인을 하고
And 세션 여러개를 생성하고
And 미션 여러개를 생성하고
And 스터디로그를 작성하면
Background: 사전 작업
Given "브라운" 크루역할로 로그인을 하고
And 세션 여러개를 생성하고
And 미션 여러개를 생성하고
And 스터디로그를 작성하면

Scenario: 댓글 작성하기
When 1번 스터디로그에 대한 댓글을 작성하면
Then 댓글이 작성된다
Scenario: 댓글 작성하기
When 1번 스터디로그에 대한 댓글을 작성하면
Then 댓글이 작성된다

Scenario: 스터디로그의 댓글 목록 조회하기
Given 1번 스터디로그에 대한 댓글을 작성하고
And "웨지"가 로그인을 하고
And 1번 스터디로그에 대한 댓글을 작성하고
When 1번 스터디로그의 댓글을 조회하면
Then 해당 스터디로그의 댓글 목록을 조회한다
Scenario: 스터디로그의 댓글 목록 조회하기
Given 1번 스터디로그에 대한 댓글을 작성하고
And "웨지" 크루역할로 로그인을 하고
And 1번 스터디로그에 대한 댓글을 작성하고
When 1번 스터디로그의 댓글을 조회하면
Then 해당 스터디로그의 댓글 목록을 조회한다

Scenario: 댓글 수정하기
Given 1번 스터디로그에 대한 댓글을 작성하고
When 1번 스터디로그에 대한 1번 댓글을 수정하면
Then 댓글이 수정된다
Scenario: 댓글 수정하기
Given 1번 스터디로그에 대한 댓글을 작성하고
When 1번 스터디로그에 대한 1번 댓글을 수정하면
Then 댓글이 수정된다

Scenario: 댓글 삭제하기
Given 1번 스터디로그에 대한 댓글을 작성하고
When 1번 스터디로그에 대한 1번 댓글을 삭제하면
Then 댓글이 삭제된다
Scenario: 댓글 삭제하기
Given 1번 스터디로그에 대한 댓글을 작성하고
When 1번 스터디로그에 대한 1번 댓글을 삭제하면
Then 댓글이 삭제된다
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
@api
Feature: 커리큘럼 관련 기능

Background: 사전 작업
Given "수달"이 로그인을 하고
Background: 사전 작업
Given "수달" 크루역할로 로그인을 하고

Scenario: 커리큘럼 생성하기
When 커리큘럼을 생성하면
Then 커리큘럼이 생성된다
Scenario: 커리큘럼 생성하기
When 커리큘럼을 생성하면
Then 커리큘럼이 생성된다

Scenario: 커리큘럼 목록 조회하기
When 커리큘럼을 생성하고
And 커리쿨럼을 조회하면
Then 커리큘럼이 조회된다
Scenario: 커리큘럼 목록 조회하기
When 커리큘럼을 생성하고
And 커리쿨럼을 조회하면
Then 커리큘럼이 조회된다

Scenario: 커리큘럼 수정하기
When 커리큘럼을 생성하고
And 1번 커리쿨럼을 수정하면
Then 커리큘럼이 수정된다
Scenario: 커리큘럼 수정하기
When 커리큘럼을 생성하고
And 1번 커리쿨럼을 수정하면
Then 커리큘럼이 수정된다

Scenario: 커리큘럼 삭제하기
When 커리큘럼을 생성하고
And 1번 커리쿨럼을 삭제하면
Then 커리큘럼이 삭제된다
Scenario: 커리큘럼 삭제하기
When 커리큘럼을 생성하고
And 1번 커리쿨럼을 삭제하면
Then 커리큘럼이 삭제된다

Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
@api
Feature: 로드맵 답변 관련 기능

Background: 사전 작업
Given "2022 백엔드 레벨1" 세션을 생성하고 - 1번 세션
And 1번 세션에 "자바"라는 키워드를 순서 1, 중요도 1로 작성하고
And 1번 세션, 1번 키워드에 퀴즈를 작성하고
And "브라운"이 로그인을 하고
Background: 사전 작업
Given "2022 백엔드 레벨1" 세션을 생성하고 - 1번 세션
And 1번 세션에 "자바"라는 키워드를 순서 1, 중요도 1로 작성하고
And 1번 세션, 1번 키워드에 퀴즈를 작성하고
And "브라운" 크루역할로 로그인을 하고

Scenario: 답변 생성하기
When 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하면
Then 답변이 생성된다
Scenario: 답변 생성하기
When 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하면
Then 답변이 생성된다

Scenario: 답변 조회하기
Given 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하고
When 1번 답변을 조회하면
Then 답변이 조회된다
Scenario: 답변 조회하기
Given 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하고
When 1번 답변을 조회하면
Then 답변이 조회된다

Scenario: 답변 수정하기
Given 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하고
When 1번 답변을 "Integer은 wrapper 클래스"로 수정하면
Then 답변이 수정된다
Scenario: 답변 수정하기
Given 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하고
When 1번 답변을 "Integer은 wrapper 클래스"로 수정하면
Then 답변이 수정된다

Scenario: 답변 삭제하기
Given 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하고
When 1번 답변을 삭제하면
Then 답변이 삭제된다
Scenario: 답변 삭제하기
Given 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하고
When 1번 답변을 삭제하면
Then 답변이 삭제된다

Scenario: 퀴즈에 대한 모든 답변 조회하기
Given 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하고
When 1번 퀴즈에 대한 답변들을 조회하면
Then 답변들이 조회된다
Scenario: 퀴즈에 대한 모든 답변 조회하기
Given 1번 퀴즈에 "varargs는 가변 인자"라는 답변을 생성하고
When 1번 퀴즈에 대한 답변들을 조회하면
Then 답변들이 조회된다
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
@api
Feature: 필터 관련 기능

Background: 사전 작업
Given "현구막"이 로그인을 하고
And "브라운"이 로그인을 하고
And "서니"가 로그인을 하고
Background: 사전 작업
Given "현구막" 크루역할로 로그인을 하고
And "브라운" 크루역할로 로그인을 하고
And "서니" 크루역할로 로그인을 하고

Scenario: 필터 목록 조회하기
When 필터요청이 들어오면
Then nickname을 기준으로 멤버데이터들을 오름차순 정렬하여 반환한다
Scenario: 필터 목록 조회하기
When 필터요청이 들어오면
Then nickname을 기준으로 멤버데이터들을 오름차순 정렬하여 반환한다
Original file line number Diff line number Diff line change
@@ -1,25 +1,25 @@
@api
Feature: 레벨 로그 관련 기능

Background: 사전 작업
Given "브라운"이 로그인을 하고
Background: 사전 작업
Given "브라운" 크루역할로 로그인을 하고

Scenario: 레벨 로그 작성하기
When 레벨로그를 작성하면
Then 레벨로그가 조회된다
Scenario: 레벨 로그 작성하기
When 레벨로그를 작성하면
Then 레벨로그가 조회된다

Scenario: 레벨 로그 삭제하기
When 레벨로그를 작성하고
And 레벨로그를 삭제하면
Then 레벨로그가 삭제된다
Scenario: 레벨 로그 삭제하기
When 레벨로그를 작성하고
And 레벨로그를 삭제하면
Then 레벨로그가 삭제된다

Scenario: 레벨 로그 수정하기
When 레벨로그를 작성하고
And 레벨로그를 수정하면
Then 레벨로그가 수정된다
Scenario: 레벨 로그 수정하기
When 레벨로그를 작성하고
And 레벨로그를 수정하면
Then 레벨로그가 수정된다


Scenario: 레벨 로그 목록 조회하기
When 레벨로그를 여러개 작성하면
Then 레벨로그가 여러개 조회된다
Scenario: 레벨 로그 목록 조회하기
When 레벨로그를 여러개 작성하면
Then 레벨로그가 여러개 조회된다

Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
@api
Feature: 멤버 관련 기능

Scenario: 자신의 멤버정보 조회하기
Given "브라운"이 로그인을 하고
When 자신의 멤버 정보를 조회하면
Then 멤버 정보가 조회된다
Scenario: 자신의 멤버정보 조회하기
Given "브라운" 크루역할로 로그인을 하고
When 자신의 멤버 정보를 조회하면
Then 멤버 정보가 조회된다

Scenario: 자신의 정보를 수정하기
Given "브라운"이 로그인을 하고
When 자신의 닉네임을 "brown"으로 수정하면
Then "브라운"의 닉네임이 "brown"으로 수정
Scenario: 자신의 정보를 수정하기
Given "브라운" 크루역할로 로그인을 하고
When 자신의 닉네임을 "brown"으로 수정하면
Then "브라운"의 닉네임이 "brown"으로 수정
32 changes: 16 additions & 16 deletions backend/src/acceptanceTest/resources/wooteco/prolog/mission.feature
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
@api
Feature: 로그인 기능

Background: 사전 작업
Given 세션 여러개를 생성하고
Background: 사전 작업
Given 세션 여러개를 생성하고

Scenario: 미션 등록하기
Given "브라운"이 로그인을 하고
When "이런저런" 미션 등록을 하면
Then 미션이 등록된다
Scenario: 미션 등록하기
Given "브라운" 크루역할로 로그인을 하고
When "이런저런" 미션 등록을 하면
Then 미션이 등록된다

Scenario: 미션 조회하기
Given "브라운"이 로그인을 하고
And "이런저런" 미션 등록을 하고
When 미션 목록을 조회하면
Then 미션 목록을 받는다
Scenario: 미션 조회하기
Given "브라운" 크루역할로 로그인을 하고
And "이런저런" 미션 등록을 하고
When 미션 목록을 조회하면
Then 미션 목록을 받는다

Scenario: 중복된 이름으로 미션 등록하기
Given "브라운"이 로그인을 하고
And "이런저런" 미션 등록을 하고
When "이런저런" 미션 등록을 하면
Then 미션을 실패한다
Scenario: 중복된 이름으로 미션 등록하기
Given "브라운" 크루역할로 로그인을 하고
And "이런저런" 미션 등록을 하고
When "이런저런" 미션 등록을 하면
Then 미션을 실패한다
Loading

0 comments on commit d3343e9

Please sign in to comment.