Laravel/Cypress Google SSO 테스트

이것은 작동하는 Google SSO Cypress 테스트입니다. 귀하의 마일리지가 다를 수 있습니다.

describe('Login', () => {
    it('Login through Google', () => {
        const username = Cypress.env('googleSocialLoginUsername')
        alert(username)
        const password = Cypress.env('googleSocialLoginPassword')
        const loginUrl = Cypress.env('loginUrl')
        const cookieName = Cypress.env('cookieName')
        const socialLoginOptions = {
            username: username,
            password: password,
            loginUrl: loginUrl,
            headless: true,
            logs: false,
            loginSelector: '[href="http://127.0.0.1:8000/auth/google"]',
            postLoginSelector: '.bg-scholarpath-500'
        }

        return cy.task('GoogleSocialLogin', socialLoginOptions).then(({cookies}) => {
            cy.clearCookies()

            const cookie = cookies.filter(cookie => cookie.name === cookieName).pop()
            if (cookie) {
                cy.setCookie(cookie.name, cookie.value, {
                    domain: cookie.domain,
                    expiry: cookie.expires,
                    httpOnly: cookie.httpOnly,
                    path: cookie.path,
                    secure: cookie.secure
                })

                Cypress.Cookies.defaults({
                    preserve: cookieName
                })
            }
        })
    })
})



참고: 다음 두 줄이 중요합니다.

loginSelector: '[href="http://127.0.0.1:8000/auth/google"]',
postLoginSelector: '.bg-somestyle-500'


이 URL이 Google 인증 경로의 URL과 일치하는지 확인하세요.
또한 postLoginSelector는 "Google로 로그인"버튼의 클래스입니다.

다음 플러그인도 필요합니다.

cypress-social-logins

plugins/index.js 파일에 다음을 추가하십시오.

const {GoogleSocialLogin} = require('cypress-social-logins').plugins

module.exports = (on, config) => {
    on('task', {
        GoogleSocialLogin: GoogleSocialLogin
    })
}



그게 다야! 이제 실행해 보세요.
npx cypress open

좋은 웹페이지 즐겨찾기