Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Cypress baseUrl 설정 문제 #782

Open
yoouyeon opened this issue May 19, 2023 · 0 comments
Open

[Bug] Cypress baseUrl 설정 문제 #782

yoouyeon opened this issue May 19, 2023 · 0 comments
Assignees
Labels
bug Something isn't working

Comments

@yoouyeon
Copy link
Member

Desc

cypress 테스트의 baseUrl을 http://localhost:3000 으로 설정한 뒤에 42 로그인을 하면 에러가 남.

Reproduce

  1. cy.login command 정의 중 (cypress/support/commands.ts 파일) intra login 부분 아래와 같이 cy.origin 커맨드 내부에 넣어주기
cy.origin(
    'https://auth.42.fr',
    { args: { username, password } },
    ({ username, password }) => {
      // intra student login 링크 이동
      // 아이디, 비밀번호 입력, 확인 버튼 클릭까지
    }
  );
  1. cy.login command 정의 중 cy.origin(Cypress.env('HOME'), ...) command 내부에 있던 내용 command 밖으로 빼내기
  2. cypress.config.ts 파일에 아래와 같이 baseUrl 설정
e2e: {
    // ... 위 내용 생략
    baseUrl: 'http://localhost:3000/',
  },

=> Could not authenticate you from KeycloakStudent because "Csrf detected". 에러 발생
=> (uncaught exception)Error: Cannot read properties of undefined (reading 'reset') 에러 발생

Wanted

테스트 코드의 대부분이 localhost에서 진행되기 때문에 baseUrllocalhost로 설정하면 불필요한 cy.origin 커맨드를 쓰지 않아도 되는데,
baseUrllocalhost로 설정하지 못하고 테스트 가장 처음에 접근하는 https://auth.42.fr 로 설정하다보니 반복적으로 cy.origin 커맨드를 쓰게 되어 작성된 코드도 복잡하고, 테스트 작성에도 불편함이 있습니다.

Bug img / video

기존에는 baseUrlhttps://auth.42.fr 라 모든 테스트가 https://auth.42.fr 에서 진행중입니다.
Screen Shot 2023-05-19 at 5 11 18 PM
로그인 실패 문제
Screen Shot 2023-05-19 at 4 50 20 PM
콘솔에 출력된 에러
Screen Shot 2023-05-19 at 4 51 17 PM

Etc

지금은 baseUrl을 https://auth.42.fr 로 설정하는 방법으로 로그인 시의 위 오류를 해결했지만, 로그아웃 커맨드에서는 이 방법으로도 해결이 안되어 해당 오류를 무시하는 방법으로 문제를 해결해 둔 상태입니다.

Cypress.on('uncaught:exception', (err: Error, runnable: Mocha.Runnable) => {
    // FIXME : 원인 모를 에러 임시 처리. 해결 필요.
    if (
      err.message.includes(
        "Cannot read properties of undefined (reading 'reset')"
      )
    ) {
      return false;
    }
  });
@yoouyeon yoouyeon added the bug Something isn't working label May 19, 2023
@yoouyeon yoouyeon self-assigned this May 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant