[bitnami/mediawiki] Review Cypress and Goss tests for Mediawiki Chart (#12702)

* [bitnami/charts] Review Cypress and Goss tests for Mediawiki Chart

Signed-off-by: Michiel <michield@vmware.com>
This commit is contained in:
Michiel
2022-10-13 11:27:45 +02:00
committed by GitHub
parent 404ae2bd74
commit f372764c5a
11 changed files with 58 additions and 82 deletions

View File

@@ -1,10 +1,10 @@
{ {
"env": { "env": {
"username": "user", "username": "test_user",
"password": "ComplicatedPassword123!4" "password": "ComplicatedPassword123!4"
}, },
"hosts": { "hosts": {
"bitnami-mediawiki.my": "{{ TARGET_IP }}" "vmware-mediawiki.my": "{{ TARGET_IP }}"
}, },
"defaultCommandTimeout": 30000 "defaultCommandTimeout": 30000
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -1,6 +0,0 @@
{
"user": {
"realName": "Magnus Developer",
"signature": "Creating exciting software since childhood"
}
}

View File

@@ -1,6 +0,0 @@
{
"newUser": {
"username": "NonTrivialUser",
"password": "N0ntR1Vi@lPaS$wOrD"
}
}

View File

@@ -1,29 +1,6 @@
/// <reference types="cypress" /> /// <reference types="cypress" />
import { random, getPageUrlFromTitle, confirmLogOut } from '../support/utils'; import { random, getPageUrlFromTitle, confirmLogOut } from '../support/utils';
it('allows to log in and out', () => {
cy.login();
cy.contains('li', 'Preferences');
cy.contains('Log out').click();
confirmLogOut();
cy.contains('You are now logged out');
});
it('allows to create user', () => {
cy.visit('/index.php?title=Special:CreateAccount');
cy.fixture('users').then((user) => {
cy.get('input[id="wpName2"]').type(`${user.newUser.username}-${random}`);
cy.get('input[id="wpPassword2"]').type(
`${user.newUser.password}-${random}`
);
cy.get('input[id="wpRetype"]').type(`${user.newUser.password}-${random}`);
});
cy.contains('button', 'Create your account').click();
cy.fixture('users').then((user) => {
cy.contains(`Welcome, ${user.newUser.username}-${random}`);
});
});
it('allows to create a new page', () => { it('allows to create a new page', () => {
cy.login(); cy.login();
cy.fixture('pages').then((page) => { cy.fixture('pages').then((page) => {
@@ -45,29 +22,14 @@ it('allows to create a new page', () => {
it('allows to upload a file', () => { it('allows to upload a file', () => {
cy.login(); cy.login();
cy.visit('/wiki/Special:Upload'); cy.visit('/wiki/Special:Upload');
cy.get('#wpUploadFile').selectFile('cypress/fixtures/images/post_image.png', { cy.get('#wpUploadFile').selectFile('cypress/fixtures/images/test_image.jpeg', {
force: true, force: true,
}); });
// We'll use a random fileName to bypass duplication-related errors // We'll use a random fileName to bypass duplication-related errors
cy.get('input[name="wpDestFile"]').type(`${random}.png`); cy.get('[name="wpDestFile"]').clear().type(`testfile-${random}.jpeg`);
// If Mediawiki detects that an identical file was already uploaded // If Mediawiki detects that an identical file was already uploaded
// it will ask for confirmation, requiring additional steps cy.get('[name="wpIgnoreWarning"]').click();
cy.get('input[name="wpIgnoreWarning"]').click(); cy.get('[name="wpUpload"]').click();
cy.get('input[name="wpUpload"]').click(); cy.contains(`File:testfile-${random}.jpeg`, { matchCase: false });
cy.contains('h1', `File:${random}.png`, { matchCase: false });
}); });
it('allows to change users settings', () => {
cy.login();
cy.visit('/wiki/Special:Preferences');
cy.fixture('user-settings').then((userSettings) => {
cy.get('input[name="wprealname"]')
.clear({ force: true })
.type(`${userSettings.user.realName} ${random}`);
cy.get('input[name="wpnickname"]')
.clear({ force: true })
.type(`${userSettings.user.signature}`);
});
cy.contains('button', 'Save').should('not.be.disabled').click();
cy.contains('Your preferences have been saved');
});

View File

@@ -1,5 +1,5 @@
const COMMAND_DELAY = 2000; const COMMAND_DELAY = 2000;
const BASE_URL = 'http://bitnami-mediawiki.my'; const BASE_URL = 'http://vmware-mediawiki.my';
for (const command of ['click']) { for (const command of ['click']) {
Cypress.Commands.overwrite(command, (originalFn, ...args) => { Cypress.Commands.overwrite(command, (originalFn, ...args) => {

View File

@@ -1,28 +1,36 @@
file: file:
/opt/bitnami/mediawiki/cache: /bitnami/mediawiki:
exists: true exists: true
filetype: directory filetype: directory
mode: "0775" mode: "2775"
owner: daemon owner: root
group: root /etc/hosts:
/opt/bitnami/mediawiki/images:
filetype: symlink
linked-to: /bitnami/mediawiki/images
exists: true exists: true
/bitnami/mediawiki/LocalSettings.php:
mode: "0644"
filetype: file filetype: file
exists: true contains:
# Checks the user running the container is non-root {{ range .Vars.hostAliases }}
{{ $ip := .ip }}
{{ range $host := .hostnames }}
- /{{ $ip }}.*{{ $host }}/
{{ end }}
{{ end }}
http:
https://mediawiki:{{ .Vars.service.ports.https }}:
## Only checking for status code 301 to avoid the automatic redirect to the domain.
status: 301
no-follow-redirects: true
allow-insecure: true
command: command:
user-id-test: check-user-info:
exec: if [ "$(id -u)" -eq 0 ]; then exit 1; fi exec: id
exit-status: 0
stdout: []
stderr: []
which-php:
exec: which php
exit-status: 0 exit-status: 0
stdout: stdout:
- "/opt/bitnami/php/bin/php" - uid={{ .Vars.containerSecurityContext.runAsUser }}
stderr: [] - /groups=.*{{ .Vars.podSecurityContext.fsGroup }}/
check-db-credentials:
exec: env
exit-status: 0
stdout:
- /MEDIAWIKI_DATABASE_NAME.*{{ .Vars.mariadb.auth.database }}/
- /MEDIAWIKI_DATABASE_USER.*{{ .Vars.mariadb.auth.username }}/
- /MEDIAWIKI_DATABASE_PASSWORD.*{{ .Vars.mariadb.auth.password }}/

View File

@@ -0,0 +1,16 @@
hostAliases:
- ip: 127.0.0.1
hostnames:
- status.testhost
containerSecurityContext:
runAsUser: 1002
podSecurityContext:
fsGroup: 1002
service:
ports:
https: 444
mariadb:
auth:
database: test_db_database
username: test_db_user
password: test_db_password

View File

@@ -22,7 +22,7 @@
"url": "{SHA_ARCHIVE}", "url": "{SHA_ARCHIVE}",
"path": "/bitnami/mediawiki" "path": "/bitnami/mediawiki"
}, },
"runtime_parameters": "bWVkaWF3aWtpVXNlcjogdXNlcgptZWRpYXdpa2lQYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0Cm1lZGlhd2lraUVtYWlsOiB1c2VyQGV4YW1wbGUuY29tCm1lZGlhd2lraUhvc3Q6IGJpdG5hbWktbWVkaWF3aWtpLm15CnNlcnZpY2U6CiAgdHlwZTogTG9hZEJhbGFuY2VyCiAgcG9ydHM6CiAgICBodHRwOiA4MA==", "runtime_parameters": "bWVkaWF3aWtpSG9zdDogdm13YXJlLW1lZGlhd2lraS5teQptZWRpYXdpa2lVc2VyOiB0ZXN0X3VzZXIKbWVkaWF3aWtpUGFzc3dvcmQ6IENvbXBsaWNhdGVkUGFzc3dvcmQxMjMhNApwZXJzaXN0ZW5jZToKICBlbmFibGVkOiB0cnVlCmhvc3RBbGlhc2VzOgogIC0gaXA6IDEyNy4wLjAuMQogICAgaG9zdG5hbWVzOgogICAgICAtIHN0YXR1cy50ZXN0aG9zdApjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIHJ1bkFzVXNlcjogMTAwMgpwb2RTZWN1cml0eUNvbnRleHQ6CiAgZnNHcm91cDogMTAwMgogIGVuYWJsZWQ6IHRydWUKc2VydmljZToKICB0eXBlOiBMb2FkQmFsYW5jZXIKICBwb3J0czoKICAgIGh0dHA6IDgwCiAgICBodHRwczogNDQ0Cm1hcmlhZGI6CiAgZW5hYmxlZDogdHJ1ZQogIGF1dGg6CiAgICBkYXRhYmFzZTogdGVzdF9kYl9kYXRhYmFzZQogICAgdXNlcm5hbWU6IHRlc3RfZGJfdXNlcgogICAgcGFzc3dvcmQ6IHRlc3RfZGJfcGFzc3dvcmQK",
"target_platform": { "target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": { "size": {
@@ -44,6 +44,7 @@
"resources": { "resources": {
"path": "/.vib/mediawiki/goss" "path": "/.vib/mediawiki/goss"
}, },
"vars_file": "vars.yaml",
"remote": { "remote": {
"workload": "deploy-mediawiki" "workload": "deploy-mediawiki"
} }
@@ -58,7 +59,7 @@
"endpoint": "lb-mediawiki-http", "endpoint": "lb-mediawiki-http",
"app_protocol": "HTTP", "app_protocol": "HTTP",
"env": { "env": {
"username": "user", "username": "test_user",
"password": "ComplicatedPassword123!4" "password": "ComplicatedPassword123!4"
} }
} }

View File

@@ -22,7 +22,7 @@
"url": "{SHA_ARCHIVE}", "url": "{SHA_ARCHIVE}",
"path": "/bitnami/mediawiki" "path": "/bitnami/mediawiki"
}, },
"runtime_parameters": "bWVkaWF3aWtpVXNlcjogdXNlcgptZWRpYXdpa2lQYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0Cm1lZGlhd2lraUVtYWlsOiB1c2VyQGV4YW1wbGUuY29tCm1lZGlhd2lraUhvc3Q6IGJpdG5hbWktbWVkaWF3aWtpLm15CnNlcnZpY2U6CiAgdHlwZTogTG9hZEJhbGFuY2VyCiAgcG9ydHM6CiAgICBodHRwOiA4MA==", "runtime_parameters": "bWVkaWF3aWtpSG9zdDogdm13YXJlLW1lZGlhd2lraS5teQptZWRpYXdpa2lVc2VyOiB0ZXN0X3VzZXIKbWVkaWF3aWtpUGFzc3dvcmQ6IENvbXBsaWNhdGVkUGFzc3dvcmQxMjMhNApwZXJzaXN0ZW5jZToKICBlbmFibGVkOiB0cnVlCmhvc3RBbGlhc2VzOgogIC0gaXA6IDEyNy4wLjAuMQogICAgaG9zdG5hbWVzOgogICAgICAtIHN0YXR1cy50ZXN0aG9zdApjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIHJ1bkFzVXNlcjogMTAwMgpwb2RTZWN1cml0eUNvbnRleHQ6CiAgZnNHcm91cDogMTAwMgogIGVuYWJsZWQ6IHRydWUKc2VydmljZToKICB0eXBlOiBMb2FkQmFsYW5jZXIKICBwb3J0czoKICAgIGh0dHA6IDgwCiAgICBodHRwczogNDQ0Cm1hcmlhZGI6CiAgZW5hYmxlZDogdHJ1ZQogIGF1dGg6CiAgICBkYXRhYmFzZTogdGVzdF9kYl9kYXRhYmFzZQogICAgdXNlcm5hbWU6IHRlc3RfZGJfdXNlcgogICAgcGFzc3dvcmQ6IHRlc3RfZGJfcGFzc3dvcmQK",
"target_platform": { "target_platform": {
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
"size": { "size": {
@@ -44,6 +44,7 @@
"resources": { "resources": {
"path": "/.vib/mediawiki/goss" "path": "/.vib/mediawiki/goss"
}, },
"vars_file": "vars.yaml",
"remote": { "remote": {
"workload": "deploy-mediawiki" "workload": "deploy-mediawiki"
} }
@@ -58,7 +59,7 @@
"endpoint": "lb-mediawiki-http", "endpoint": "lb-mediawiki-http",
"app_protocol": "HTTP", "app_protocol": "HTTP",
"env": { "env": {
"username": "user", "username": "test_user",
"password": "ComplicatedPassword123!4" "password": "ComplicatedPassword123!4"
} }
} }