test: add test case for login and register

This commit is contained in:
plumrx 2020-11-05 23:16:31 +08:00
parent 782d571221
commit 2efb929a0b
8 changed files with 110 additions and 4 deletions

View File

@ -1,5 +1,7 @@
{
"baseUrl": "http://localhost:3000",
"baseUrl": "https://mutoe.github.io/vue3-realworld-example-app",
"experimentalNetworkStubbing": true,
"chromeWebSecurity": false
}

View File

@ -0,0 +1,12 @@
{
"user": {
"id": 122907,
"email": "plumrx@qq.com",
"createdAt": "2020-11-04T14:43:31.622Z",
"updatedAt": "2020-11-04T14:43:31.628Z",
"username": "plumrx",
"bio": null,
"image": null,
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTIyOTA3LCJ1c2VybmFtZSI6InBsdW1yeDIiLCJleHAiOjE2MDk2ODUwMTF9.A-gAjGYC9u7_mwjNK61HqeR3jwrFPN-UDvUnMjyJfBo"
}
}

View File

@ -0,0 +1,12 @@
{
"loginPass": {
"username": "plumrx1",
"email": "plumrx1@qq.com",
"password": "12345678"
},
"loginFailed": {
"username": "plumrx2",
"email": "plumrx2@qq.com",
"password": "12345678"
}
}

View File

@ -1,4 +1,4 @@
describe('test for like-follow mode', () => {
describe('test for like-follow', () => {
beforeEach(() => {
cy.server()
cy.route2('GET', /articles\?tag=butt/, { fixture: 'article_of_tag' }).as('article_of_tag')
@ -20,7 +20,7 @@ describe('test for like-follow mode', () => {
.should('contain.text', ' Sign in ')
})
it.only('no-login:follow author', () => {
it('no-login:follow author', () => {
cy.get('.article-preview:first')
.click()

View File

@ -0,0 +1,21 @@
describe('test for login', () => {
beforeEach(() => {
cy.server()
cy.route2('GET', /articles\?tag=butt/, { fixture: 'article_of_tag' }).as('article_of_tag')
cy.route2('GET', /articles\?/, { fixture: 'articles.json' }).as('getArticles')
cy.route2('GET', /articles\//, { fixture: 'article.json' }).as('getArticle')
cy.route2('GET', /tags/, { fixture: 'tags.json' }).as('getTags')
cy.visit('/')
})
it('login in home page', () => {
// const usrname = 'plumrx1'
// const email = 'plumrx1@qq.com'
// const password = '12345678'
cy.fixture('users.json').then(users => {
cy.login(users.loginPass)
})
})
})

View File

@ -0,0 +1,23 @@
describe('test for register', () => {
beforeEach(() => {
cy.server()
cy.route2('POST', /users/, { fixture: 'register.json' }).as('register')
cy.route2('GET', /articles\?tag=butt/, { fixture: 'article_of_tag' }).as('article_of_tag')
cy.route2('GET', /articles\?/, { fixture: 'articles.json' }).as('getArticles')
cy.route2('GET', /articles\//, { fixture: 'article.json' }).as('getArticle')
cy.route2('GET', /tags/, { fixture: 'tags.json' }).as('getTags')
cy.visit('/')
})
it('ligin in home page', () => {
// click logup button in home page
const usrname = 'plumrx'
const email = 'plumrx@qq.com'
const password = '12345678'
cy.register(usrname, email, password)
cy.get('.navbar')
.should('contain', usrname)
})
})

View File

@ -1,4 +1,4 @@
describe('test for tag mode', () => {
describe('test for tag', () => {
beforeEach(() => {
cy.server()
cy.route2('GET', /articles\?tag=butt/, { fixture: 'article_of_tag' }).as('article_of_tag')

View File

@ -23,3 +23,39 @@
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
Cypress.Commands.add('login', (user) => {
// click sign in button in home page
cy.get('li.nav-item a.nav-link')
.contains(' Sign in')
.click()
cy.get('[type="email"]')
.type(user.email)
cy.get('[type="password"]')
.type(user.password)
cy.get('[type="submit"]')
.contains(' Sign in ')
.click()
cy.get('h1.logo-font')
.should('contain', ' conduit ')
cy.get('li.nav-item:last')
.should('contain.text', user.username)
})
Cypress.Commands.add('register', (usrname, email, password) => {
// click sign up button in home page
cy.get('li.nav-item a.nav-link')
.contains(' Sign up')
.click()
// []属性选择器
cy.get('[placeholder="Your Name"]')
.type(usrname)
cy.get('[placeholder="Email"]')
.type(email)
cy.get('[placeholder="Password"]')
.type(password)
cy.get('[type="submit"]')
.click()
})