login test and active tainacan plugin
This commit is contained in:
parent
a56e677d98
commit
312ef3e2ce
|
@ -1,3 +1,4 @@
|
||||||
{
|
{
|
||||||
"projectId": "tubzok"
|
"projectId": "tubzok",
|
||||||
|
"videoRecording": false
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
context('HTML form submission', function(){
|
||||||
|
beforeEach(function(){
|
||||||
|
cy.visit('/login')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('displays errors on login', function(){
|
||||||
|
cy.get('input[name=log]').type('admin')
|
||||||
|
cy.get('input[name=pwd]').type('senhaerrada{enter}')
|
||||||
|
|
||||||
|
// and still be on the same URL
|
||||||
|
cy.url().should('include', '/wp-login.php')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('redirects to /dashboard on success', function(){
|
||||||
|
cy.get('input[name=log]').type('admin')
|
||||||
|
cy.get('input[name=pwd]').type('admin{enter}')
|
||||||
|
|
||||||
|
// we should be redirected to /wp-admin
|
||||||
|
cy.url().should('include', '/wp-admin')
|
||||||
|
cy.get('h1').should('contain', 'Dashboard')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
context('HTML form submission with cy.request', function(){
|
||||||
|
it('can bypass the UI and yet still test log in', function(){
|
||||||
|
// oftentimes once we have a proper e2e test around logging in
|
||||||
|
// there is NO more reason to actually use our UI to log in users
|
||||||
|
// doing so wastes is slow because our entire page has to load,
|
||||||
|
// all associated resources have to load, we have to fill in the
|
||||||
|
// form, wait for the form submission and redirection process
|
||||||
|
//
|
||||||
|
// with cy.request we can bypass this because it automatically gets
|
||||||
|
// and sets cookies under the hood. This acts exactly as if the requests
|
||||||
|
// came from the browser
|
||||||
|
cy.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: '/login', // baseUrl will be prepended to this url
|
||||||
|
form: true, // indicates the body should be form urlencoded and sets Content-Type: application/x-www-form-urlencoded headers
|
||||||
|
body: {
|
||||||
|
log: 'admin',
|
||||||
|
pwd: 'admin'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// just to prove we have a session
|
||||||
|
cy.getCookie('cypress-session-cookie').should('null')
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
context('Reusable "login" custom command', function(){
|
||||||
|
// typically we'd put this in cypress/support/commands.js
|
||||||
|
// but because this custom command is specific to this example
|
||||||
|
// we'll keep it here
|
||||||
|
Cypress.Commands.add('loginByForm', (username, password) => {
|
||||||
|
|
||||||
|
Cypress.log({
|
||||||
|
name: 'loginByForm',
|
||||||
|
message: username + ' | ' + password
|
||||||
|
})
|
||||||
|
|
||||||
|
return cy.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: '/login',
|
||||||
|
form: true,
|
||||||
|
body: {
|
||||||
|
log: username,
|
||||||
|
pwd: password
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// we should be redirected to /wp-admin
|
||||||
|
cy.url().should('include', '/wp-admin')
|
||||||
|
cy.get('h1').should('contain', 'Dashboard')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('test loginByForm', function() {
|
||||||
|
// login before each test
|
||||||
|
cy.loginByForm('admin', 'admin')
|
||||||
|
})
|
||||||
|
})
|
|
@ -0,0 +1,15 @@
|
||||||
|
describe('Plugin active Test', function () {
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.loginByForm('admin', 'admin')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('Visit users page', function () {
|
||||||
|
cy.visit('/wp-admin/users.php')
|
||||||
|
cy.get('h1').should('contain', 'Users')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('plugin active', function () {
|
||||||
|
cy.contains('Tainacan').click()
|
||||||
|
cy.get('h1').should('contain', 'Collections Page')
|
||||||
|
})
|
||||||
|
})
|
|
@ -10,23 +10,7 @@
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// -- This is a parent command --
|
// -- This is a parent command --
|
||||||
Cypress.Commands.add("login", (log, pwd) => {
|
// Cypress.Commands.add("login", (email, password) => { ... })
|
||||||
// cy.request({
|
|
||||||
// method: 'POST'
|
|
||||||
// url: baseUrl
|
|
||||||
// body: {
|
|
||||||
// email: 'admin@admin.com'
|
|
||||||
// password 'admin'
|
|
||||||
// }
|
|
||||||
// })
|
|
||||||
// .then((resp) => {
|
|
||||||
// window.localStorage.setItem('jwt', resp.body.user.token)
|
|
||||||
// })
|
|
||||||
cy.visit('/wp-login.php')
|
|
||||||
cy.get('[id=user_login]').type('admin@admin.com')
|
|
||||||
cy.get('[id=user_pass]').type('admin{enter}')
|
|
||||||
cy.hash().should('/wp-admin')
|
|
||||||
})
|
|
||||||
//
|
//
|
||||||
//
|
//
|
||||||
// -- This is a child command --
|
// -- This is a child command --
|
||||||
|
@ -39,3 +23,20 @@
|
||||||
//
|
//
|
||||||
// -- This is will overwrite an existing command --
|
// -- This is will overwrite an existing command --
|
||||||
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|
||||||
|
Cypress.Commands.add('loginByForm', (username, password) => {
|
||||||
|
|
||||||
|
Cypress.log({
|
||||||
|
name: 'loginByForm',
|
||||||
|
message: username + ' | ' + password
|
||||||
|
})
|
||||||
|
|
||||||
|
cy.request({
|
||||||
|
method: 'POST',
|
||||||
|
url: '/wp-login.php', // baseUrl will be prepended to this url
|
||||||
|
form: true, // indicates the body should be form urlencoded and sets Content-Type: application/x-www-form-urlencoded headers
|
||||||
|
body: {
|
||||||
|
log: username,
|
||||||
|
pwd: password
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
// ***********************************************************
|
// ***********************************************************
|
||||||
|
|
||||||
// Import commands.js using ES2015 syntax:
|
// Import commands.js using ES2015 syntax:
|
||||||
//import './commands'
|
import './commands'
|
||||||
|
|
||||||
// Alternatively you can use CommonJS syntax:
|
// Alternatively you can use CommonJS syntax:
|
||||||
// require('./commands')
|
// require('./commands')
|
||||||
|
|
Loading…
Reference in New Issue