mirror of
https://github.com/bitnami/charts.git
synced 2026-03-03 06:58:45 +08:00
[bitnami/wordpress] Update the tests to follow the test strategy (#9985)
* Syncing WP tests with the test strategy Signed-off-by: alukic <alukic@vmware.com> * Added back SMTP runtime params Signed-off-by: alukic <alukic@vmware.com> * Simplified SMTP test, applied PR suggestions Signed-off-by: alukic <alukic@vmware.com> * CSS selector instead of text Signed-off-by: alukic <alukic@vmware.com> * Added improvemets for fixture usage Signed-off-by: alukic <alukic@vmware.com> * Improved fixture uage Signed-off-by: alukic <alukic@vmware.com> * Fixed an error with not using the TYPE const Signed-off-by: alukic <alukic@vmware.com> * Moved test data to arrays Signed-off-by: alukic <alukic@vmware.com> * Removed the test post fixture Signed-off-by: alukic <alukic@vmware.com>
This commit is contained in:
@@ -2,14 +2,7 @@
|
||||
"baseUrl": "http://localhost/",
|
||||
"env": {
|
||||
"username": "test_user",
|
||||
"password": "ComplicatedPassword123!4",
|
||||
"wordpressBlogname": "Test_Users's Blog!",
|
||||
"wordpressEmail": "test_user_email@email.com",
|
||||
"smtpMailServer": "mail.server.com",
|
||||
"smtpPort": "120",
|
||||
"smtpUser": "test_mail_user",
|
||||
"wordpressFirstName": "TestName",
|
||||
"wordpressLastName": "TestLastName"
|
||||
"password": "ComplicatedPassword123!4"
|
||||
},
|
||||
"defaultCommandTimeout": 30000
|
||||
}
|
||||
|
||||
5
.vib/wordpress/cypress/cypress/fixtures/admins.json
Normal file
5
.vib/wordpress/cypress/cypress/fixtures/admins.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"defaultAdmin": {
|
||||
"email": "test_user_email@email.com"
|
||||
}
|
||||
}
|
||||
6
.vib/wordpress/cypress/cypress/fixtures/comments.json
Normal file
6
.vib/wordpress/cypress/cypress/fixtures/comments.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"newComment": {
|
||||
"commenter": "A WordPress Commenter",
|
||||
"comment": "This is a test comment."
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"title": "Hello world!",
|
||||
"content": "Welcome to WordPress.",
|
||||
"commenter": "A WordPress Commenter",
|
||||
"comment": "This is a test comment."
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"username": "randomuser",
|
||||
"password": "randompassword",
|
||||
"email": "randomuser@foo.bar"
|
||||
}
|
||||
6
.vib/wordpress/cypress/cypress/fixtures/users.json
Normal file
6
.vib/wordpress/cypress/cypress/fixtures/users.json
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"randomUser": {
|
||||
"userEmail": "random@email.com",
|
||||
"userName": "Random"
|
||||
}
|
||||
}
|
||||
@@ -2,88 +2,30 @@
|
||||
|
||||
import { random } from './utils';
|
||||
|
||||
it('contains the sample blogpost and a comment', () => {
|
||||
it('allows login/logout', () => {
|
||||
cy.login();
|
||||
cy.get('#login_error').should('not.exist');
|
||||
cy.visit('wp-login.php?loggedout=true&wp_lang=en_US');
|
||||
cy.contains('.message', 'logged out');
|
||||
});
|
||||
|
||||
it('allows adding a comment to the sample blogpost', () => {
|
||||
cy.visit('/');
|
||||
cy.get('.wp-block-query');
|
||||
cy.get('.wp-block-post-title a').click();
|
||||
cy.fixture('helloworld').then((hw) => {
|
||||
cy.contains('.wp-block-post-title', hw.title);
|
||||
cy.contains('.wp-block-post-content', hw.content);
|
||||
|
||||
cy.fixture('comments').then((comment) => {
|
||||
cy.get('.commentlist').should('have.length', 1);
|
||||
cy.contains('.comment-author', comment.newComment.commenter);
|
||||
cy.get('#comment').type(`${comment.newComment.comment}.${random}`);
|
||||
});
|
||||
cy.fixture('users').then((user) => {
|
||||
cy.get('#author').type(user.randomUser.userName);
|
||||
cy.get('#email').type(user.randomUser.userEmail);
|
||||
});
|
||||
|
||||
cy.get('.wp-block-post-title').click();
|
||||
cy.get('.commentlist').should('have.length', 1);
|
||||
cy.fixture('helloworld').then((hw) => {
|
||||
cy.get('.comment-author').should('contain.text', hw.commenter);
|
||||
|
||||
cy.fixture('helloworld').then((hw) => {
|
||||
cy.get('#comment').type(hw.comment).should('have.value', hw.comment);
|
||||
});
|
||||
|
||||
cy.fixture('user').then((user) => {
|
||||
cy.get('#author').type(user.username).should('have.value', user.username);
|
||||
cy.get('#email').type(user.email).should('have.value', user.email);
|
||||
});
|
||||
|
||||
cy.get('#submit').click();
|
||||
});
|
||||
});
|
||||
|
||||
it('disallows login to an invalid user', () => {
|
||||
cy.clearCookies();
|
||||
cy.visit('/wp-login.php');
|
||||
cy.fixture('user').then((user) => {
|
||||
cy.get('#user_login')
|
||||
.type(user.username)
|
||||
.should('have.value', user.username); // Since login can be flaky, leaving additional asserts
|
||||
cy.get('#user_pass')
|
||||
.type(user.password)
|
||||
.should('have.value', user.password);
|
||||
});
|
||||
cy.get('#wp-submit').click();
|
||||
cy.fixture('user').then((user) => {
|
||||
cy.get('#login_error').should(
|
||||
'contain.text',
|
||||
`The username ${user.username} is not registered on this site.`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it('disallows login to a valid user with wrong password', () => {
|
||||
cy.clearCookies();
|
||||
cy.visit('/wp-login.php');
|
||||
cy.get('#user_login')
|
||||
.type(Cypress.env('username'))
|
||||
.should('have.value', Cypress.env('username'));
|
||||
cy.fixture('user').then((user) => {
|
||||
cy.get('#user_pass')
|
||||
.type(user.password)
|
||||
.should('have.value', user.password);
|
||||
});
|
||||
cy.get('#wp-submit').click();
|
||||
cy.get('#login_error').should(
|
||||
'contain.text',
|
||||
`Error: The password you entered for the username ${Cypress.env(
|
||||
'username'
|
||||
)} is incorrect. Lost your password?`
|
||||
);
|
||||
});
|
||||
|
||||
it('checks the blog name and user email configuration', () => {
|
||||
cy.login();
|
||||
cy.visit('/wp-admin/options-general.php');
|
||||
cy.get('#new_admin_email').should(
|
||||
'have.value',
|
||||
Cypress.env('wordpressEmail')
|
||||
);
|
||||
cy.get('#blogname').should('have.value', Cypress.env('wordpressBlogname'));
|
||||
});
|
||||
|
||||
it('checks if admin can edit a site', () => {
|
||||
cy.login();
|
||||
cy.visit('/wp-admin/index.php');
|
||||
cy.contains('Open site editor').click();
|
||||
cy.url().should('include', '/wp-admin/site-editor.php');
|
||||
cy.get('#submit').click();
|
||||
cy.contains('your comment will be visible after it has been approved');
|
||||
});
|
||||
|
||||
it('checks if admin can create a post', () => {
|
||||
@@ -95,32 +37,20 @@ it('checks if admin can create a post', () => {
|
||||
.clear()
|
||||
.type(`Test Hello World!${random}`);
|
||||
cy.get('.editor-post-save-draft').click();
|
||||
cy.get('.editor-post-saved-state').and('have.text', 'Saved');
|
||||
cy.contains('.editor-post-saved-state', 'Saved');
|
||||
});
|
||||
|
||||
/* TEMPORARILY SHUTTING DOWN THIS TEST DUE TO MAINTENANCE */
|
||||
|
||||
it.skip('checks the SMTP configuration', () => {
|
||||
it('shows the SMTP configuration', () => {
|
||||
cy.login();
|
||||
cy.visit('/wp-admin/admin.php?page=wp-mail-smtp');
|
||||
cy.reload();
|
||||
cy.contains('div', 'WP Mail SMTP');
|
||||
cy.get('#wp-mail-smtp-setting-smtp-host').should(
|
||||
'have.value',
|
||||
Cypress.env('smtpMailServer')
|
||||
);
|
||||
cy.get('#wp-mail-smtp-setting-smtp-port').should(
|
||||
'have.value',
|
||||
Cypress.env('smtpPort')
|
||||
);
|
||||
cy.get('#wp-mail-smtp-setting-smtp-user').should(
|
||||
'have.value',
|
||||
Cypress.env('smtpUser')
|
||||
);
|
||||
cy.get('#wp-mail-smtp-setting-from_name').should(
|
||||
'have.value',
|
||||
`${Cypress.env('wordpressFirstName')} ${Cypress.env('wordpressLastName')}`
|
||||
);
|
||||
cy.contains('WP Mail SMTP');
|
||||
cy.contains('Email Test').click();
|
||||
cy.fixture('admins').then((admin) => {
|
||||
cy.get('#wp-mail-smtp-setting-test_email').should(
|
||||
'have.value',
|
||||
`${admin.defaultAdmin.email}`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
it('allows the upload of a file', () => {
|
||||
@@ -134,9 +64,3 @@ it('allows the upload of a file', () => {
|
||||
);
|
||||
cy.get('.attachment');
|
||||
});
|
||||
|
||||
it('allows to log out', () => {
|
||||
cy.login();
|
||||
cy.visit('wp-login.php?loggedout=true&wp_lang=en_US');
|
||||
cy.contains('.message', 'logged out');
|
||||
});
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
/// <reference types="cypress" />
|
||||
// ***********************************************************
|
||||
// This example plugins/index.js can be used to load plugins
|
||||
//
|
||||
// You can change the location of this file or turn off loading
|
||||
// the plugins file with the 'pluginsFile' configuration option.
|
||||
//
|
||||
// You can read more here:
|
||||
// https://on.cypress.io/plugins-guide
|
||||
// ***********************************************************
|
||||
|
||||
// This function is called when a project is opened or re-opened (e.g. due to
|
||||
// the project's config changing)
|
||||
|
||||
/**
|
||||
* @type {Cypress.PluginConfig}
|
||||
*/
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
module.exports = (on, config) => {
|
||||
// `on` is used to hook into various events Cypress emits
|
||||
// `config` is the resolved Cypress config
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
// Added to slow down Cypress test execution without using hardcoded waits. If removed, there will be false positives.
|
||||
|
||||
const COMMAND_DELAY = 1000;
|
||||
const TYPE_DELAY = 100;
|
||||
|
||||
for (const command of ['click']) {
|
||||
Cypress.Commands.overwrite(command, (originalFn, ...args) => {
|
||||
@@ -15,6 +14,8 @@ for (const command of ['click']) {
|
||||
});
|
||||
}
|
||||
|
||||
const TYPE_DELAY = 100;
|
||||
|
||||
for (const command of ['type']) {
|
||||
Cypress.Commands.overwrite(command, (originalFn, ...args) => {
|
||||
const origVal = originalFn(...args);
|
||||
@@ -22,7 +23,7 @@ for (const command of ['type']) {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(() => {
|
||||
resolve(origVal);
|
||||
}, COMMAND_DELAY);
|
||||
}, TYPE_DELAY);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"url": "{SHA_ARCHIVE}",
|
||||
"path": "/bitnami/wordpress"
|
||||
},
|
||||
"runtime_parameters": "d29yZHByZXNzVXNlcm5hbWU6IHRlc3RfdXNlcgp3b3JkcHJlc3NQYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0CndvcmRwcmVzc0VtYWlsOiB0ZXN0X3VzZXJfZW1haWxAZW1haWwuY29tCndvcmRwcmVzc0ZpcnN0TmFtZTogVGVzdE5hbWUKd29yZHByZXNzTGFzdE5hbWU6IFRlc3RMYXN0TmFtZQp3b3JkcHJlc3NCbG9nTmFtZTogVGVzdF9Vc2VycydzIEJsb2chCnNtdHBIb3N0OiBtYWlsLnNlcnZlci5jb20Kc210cFBvcnQ6IDEyMApzbXRwVXNlcjogdGVzdF9tYWlsX3VzZXIKc210cFBhc3N3b3JkOiB0ZXN0X21haWxfcGFzc3dvcmQKbWFyaWFkYjoKICBhdXRoOgogICAgZGF0YWJhc2U6IHRlc3Rfd29yZHByZXNzX2RhdGFiYXNlCiAgICB1c2VybmFtZTogdGVzdF93b3JkcHJlc3NfdXNlcm5hbWUKICAgIHBhc3N3b3JkOiB0ZXN0X3dvcmRwcmVzc19wYXNzd29yZApjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIHJ1bkFzVXNlcjogMTAwMgogIHJ1bkFzTm9uUm9vdDogdHJ1ZQp3b3JkcHJlc3NUYWJsZVByZWZpeDogd29yZHByZXNzXw==",
|
||||
"runtime_parameters": "d29yZHByZXNzVXNlcm5hbWU6IHRlc3RfdXNlcgp3b3JkcHJlc3NQYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0CndvcmRwcmVzc0VtYWlsOiB0ZXN0X3VzZXJfZW1haWxAZW1haWwuY29tCndvcmRwcmVzc0ZpcnN0TmFtZTogVGVzdE5hbWUKd29yZHByZXNzTGFzdE5hbWU6IFRlc3RMYXN0TmFtZQpzbXRwSG9zdDogbWFpbC5zZXJ2ZXIuY29tCnNtdHBQb3J0OiAxMjAKc210cFVzZXI6IHRlc3RfbWFpbF91c2VyCnNtdHBQYXNzd29yZDogdGVzdF9tYWlsX3Bhc3N3b3JkCm1hcmlhZGI6CiAgYXV0aDoKICAgIGRhdGFiYXNlOiB0ZXN0X3dvcmRwcmVzc19kYXRhYmFzZQogICAgdXNlcm5hbWU6IHRlc3Rfd29yZHByZXNzX3VzZXJuYW1lCiAgICBwYXNzd29yZDogdGVzdF93b3JkcHJlc3NfcGFzc3dvcmQKY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBydW5Bc1VzZXI6IDEwMDIKICBydW5Bc05vblJvb3Q6IHRydWUKd29yZHByZXNzVGFibGVQcmVmaXg6IHdvcmRwcmVzc18K",
|
||||
"target_platform": {
|
||||
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
|
||||
"size": {
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"url": "{SHA_ARCHIVE}",
|
||||
"path": "/bitnami/wordpress"
|
||||
},
|
||||
"runtime_parameters": "d29yZHByZXNzVXNlcm5hbWU6IHRlc3RfdXNlcgp3b3JkcHJlc3NQYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0CndvcmRwcmVzc0VtYWlsOiB0ZXN0X3VzZXJfZW1haWxAZW1haWwuY29tCndvcmRwcmVzc0ZpcnN0TmFtZTogVGVzdE5hbWUKd29yZHByZXNzTGFzdE5hbWU6IFRlc3RMYXN0TmFtZQp3b3JkcHJlc3NCbG9nTmFtZTogVGVzdF9Vc2VycydzIEJsb2chCnNtdHBIb3N0OiBtYWlsLnNlcnZlci5jb20Kc210cFBvcnQ6IDEyMApzbXRwVXNlcjogdGVzdF9tYWlsX3VzZXIKc210cFBhc3N3b3JkOiB0ZXN0X21haWxfcGFzc3dvcmQKbWFyaWFkYjoKICBhdXRoOgogICAgZGF0YWJhc2U6IHRlc3Rfd29yZHByZXNzX2RhdGFiYXNlCiAgICB1c2VybmFtZTogdGVzdF93b3JkcHJlc3NfdXNlcm5hbWUKICAgIHBhc3N3b3JkOiB0ZXN0X3dvcmRwcmVzc19wYXNzd29yZApjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIHJ1bkFzVXNlcjogMTAwMgogIHJ1bkFzTm9uUm9vdDogdHJ1ZQp3b3JkcHJlc3NUYWJsZVByZWZpeDogd29yZHByZXNzXw==",
|
||||
"runtime_parameters": "d29yZHByZXNzVXNlcm5hbWU6IHRlc3RfdXNlcgp3b3JkcHJlc3NQYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0CndvcmRwcmVzc0VtYWlsOiB0ZXN0X3VzZXJfZW1haWxAZW1haWwuY29tCndvcmRwcmVzc0ZpcnN0TmFtZTogVGVzdE5hbWUKd29yZHByZXNzTGFzdE5hbWU6IFRlc3RMYXN0TmFtZQpzbXRwSG9zdDogbWFpbC5zZXJ2ZXIuY29tCnNtdHBQb3J0OiAxMjAKc210cFVzZXI6IHRlc3RfbWFpbF91c2VyCnNtdHBQYXNzd29yZDogdGVzdF9tYWlsX3Bhc3N3b3JkCm1hcmlhZGI6CiAgYXV0aDoKICAgIGRhdGFiYXNlOiB0ZXN0X3dvcmRwcmVzc19kYXRhYmFzZQogICAgdXNlcm5hbWU6IHRlc3Rfd29yZHByZXNzX3VzZXJuYW1lCiAgICBwYXNzd29yZDogdGVzdF93b3JkcHJlc3NfcGFzc3dvcmQKY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBydW5Bc1VzZXI6IDEwMDIKICBydW5Bc05vblJvb3Q6IHRydWUKd29yZHByZXNzVGFibGVQcmVmaXg6IHdvcmRwcmVzc18K",
|
||||
"target_platform": {
|
||||
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
|
||||
"size": {
|
||||
|
||||
Reference in New Issue
Block a user