From 5d620a33fa4195cecae3746d8e726e427eaee89a Mon Sep 17 00:00:00 2001 From: Michiel Date: Wed, 14 Sep 2022 17:39:05 +0200 Subject: [PATCH] [bitnami/drupal] Add Cypress and Goss tests to Drupal Chart (#12159) * [bitnami/drupal] Add Cypress and Goss tests to Drupal Chart Signed-off-by: Michiel --- .github/workflows/cd-pipeline.yaml | 1 + .vib/drupal/cypress/cypress.json | 8 +++++ .../cypress/cypress/fixtures/articles.json | 6 ++++ .../cypress/fixtures/images/test_image.jpeg | Bin 0 -> 12265 bytes .../cypress/integration/drupal_spec.js | 15 +++++++++ .../cypress/cypress/support/commands.js | 24 ++++++++++++++ .vib/drupal/cypress/cypress/support/index.js | 20 +++++++++++ .vib/drupal/cypress/cypress/support/utils.js | 3 ++ .vib/drupal/goss/goss.yaml | 31 ++++++++++++++++++ .vib/drupal/goss/vars.yaml | 13 ++++++++ .vib/drupal/vib-publish.json | 28 +++++++++++++++- .vib/drupal/vib-verify.json | 28 +++++++++++++++- 12 files changed, 175 insertions(+), 2 deletions(-) create mode 100644 .vib/drupal/cypress/cypress.json create mode 100644 .vib/drupal/cypress/cypress/fixtures/articles.json create mode 100644 .vib/drupal/cypress/cypress/fixtures/images/test_image.jpeg create mode 100644 .vib/drupal/cypress/cypress/integration/drupal_spec.js create mode 100644 .vib/drupal/cypress/cypress/support/commands.js create mode 100644 .vib/drupal/cypress/cypress/support/index.js create mode 100644 .vib/drupal/cypress/cypress/support/utils.js create mode 100644 .vib/drupal/goss/goss.yaml create mode 100644 .vib/drupal/goss/vars.yaml diff --git a/.github/workflows/cd-pipeline.yaml b/.github/workflows/cd-pipeline.yaml index b6aa664e5..a9ad94ce7 100644 --- a/.github/workflows/cd-pipeline.yaml +++ b/.github/workflows/cd-pipeline.yaml @@ -11,6 +11,7 @@ on: # rebuild any PRs and main branch changes - 'bitnami/consul/**' - 'bitnami/discourse/**' - 'bitnami/dokuwiki/**' + - 'bitnami/drupal/**' - 'bitnami/elasticsearch/**' - 'bitnami/etcd/**' - 'bitnami/external-dns/**' diff --git a/.vib/drupal/cypress/cypress.json b/.vib/drupal/cypress/cypress.json new file mode 100644 index 000000000..de78431f7 --- /dev/null +++ b/.vib/drupal/cypress/cypress.json @@ -0,0 +1,8 @@ +{ + "baseUrl": "http://localhost", + "env": { + "username": "test_user", + "password": "ComplicatedPassword123!4" + }, + "defaultCommandTimeout": 30000 +} diff --git a/.vib/drupal/cypress/cypress/fixtures/articles.json b/.vib/drupal/cypress/cypress/fixtures/articles.json new file mode 100644 index 000000000..68c210822 --- /dev/null +++ b/.vib/drupal/cypress/cypress/fixtures/articles.json @@ -0,0 +1,6 @@ +{ + "newArticle": { + "title": "newarticle", + "altText": "Alternative image text" + } +} diff --git a/.vib/drupal/cypress/cypress/fixtures/images/test_image.jpeg b/.vib/drupal/cypress/cypress/fixtures/images/test_image.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..1d2a61929011dc51dc0717f675ba868a02bcfd85 GIT binary patch literal 12265 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 +import { random } from '../support/utils'; + +it('allows creating an article with an image', () => { + cy.login(); + cy.visit('/node/add/article'); + cy.fixture('articles').then((article) => { + cy.get('.text-full[name*=title]').type(`${article.newArticle.title} ${random}`); + cy.get('[type=file]').selectFile('cypress/fixtures/images/test_image.jpeg', { force: true }); + cy.get('input[id*="alt"]').type(`${article.newArticle.altText}`); + cy.contains('Save').click(); + cy.visit('/admin/content'); + cy.contains(`${article.newArticle.title} ${random}`); + }) +}); diff --git a/.vib/drupal/cypress/cypress/support/commands.js b/.vib/drupal/cypress/cypress/support/commands.js new file mode 100644 index 000000000..5e7f7a581 --- /dev/null +++ b/.vib/drupal/cypress/cypress/support/commands.js @@ -0,0 +1,24 @@ +const COMMAND_DELAY = 2000; + +for (const command of ['click']) { + Cypress.Commands.overwrite(command, (originalFn, ...args) => { + const origVal = originalFn(...args); + + return new Promise((resolve) => { + setTimeout(() => { + resolve(origVal); + }, COMMAND_DELAY); + }); + }); +} + +Cypress.Commands.add( + 'login', + (username = Cypress.env('username'), password = Cypress.env('password')) => { + cy.visit('/user/login'); + cy.get('#edit-name').type(username); + cy.get('#edit-pass').type(password); + cy.contains('input', 'Log in').click(); + } +); + diff --git a/.vib/drupal/cypress/cypress/support/index.js b/.vib/drupal/cypress/cypress/support/index.js new file mode 100644 index 000000000..37a498fb5 --- /dev/null +++ b/.vib/drupal/cypress/cypress/support/index.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands'; + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/.vib/drupal/cypress/cypress/support/utils.js b/.vib/drupal/cypress/cypress/support/utils.js new file mode 100644 index 000000000..f0217c977 --- /dev/null +++ b/.vib/drupal/cypress/cypress/support/utils.js @@ -0,0 +1,3 @@ +/// + +export let random = (Math.random() + 1).toString(36).substring(7); diff --git a/.vib/drupal/goss/goss.yaml b/.vib/drupal/goss/goss.yaml new file mode 100644 index 000000000..af7e6fe12 --- /dev/null +++ b/.vib/drupal/goss/goss.yaml @@ -0,0 +1,31 @@ +http: + https://drupal:{{ .Vars.service.ports.https }}: + status: 200 + allow-insecure: true +command: + check-user-info: + exec: id + exit-status: 0 + stdout: + - uid={{ .Vars.containerSecurityContext.runAsUser }} + - /groups=.*{{ .Vars.podSecurityContext.fsGroup }}/ +file: + /bitnami/drupal: + exists: true + filetype: directory + mode: '2775' + owner: root + /var/run/secrets/kubernetes.io/serviceaccount: + exists: {{ .Vars.serviceAccount.automountServiceAccountToken }} + filetype: directory + mode: "3777" + /etc/hosts: + exists: true + filetype: file + contains: + {{ range .Vars.hostAliases }} + {{ $ip := .ip }} + {{ range $host := .hostnames }} + - /{{ $ip }}.*{{ $host }}/ + {{ end }} + {{ end }} diff --git a/.vib/drupal/goss/vars.yaml b/.vib/drupal/goss/vars.yaml new file mode 100644 index 000000000..1401ab6eb --- /dev/null +++ b/.vib/drupal/goss/vars.yaml @@ -0,0 +1,13 @@ +service: + ports: + https: 444 +podSecurityContext: + fsGroup: 1002 +containerSecurityContext: + runAsUser: 1002 +serviceAccount: + automountServiceAccountToken: true +hostAliases: + - ip: 127.0.0.1 + hostnames: + - status.testhost diff --git a/.vib/drupal/vib-publish.json b/.vib/drupal/vib-publish.json index c51c87aaa..e4bae80d8 100644 --- a/.vib/drupal/vib-publish.json +++ b/.vib/drupal/vib-publish.json @@ -22,7 +22,7 @@ "url": "{SHA_ARCHIVE}", "path": "/bitnami/drupal" }, - "runtime_parameters": "ImRydXBhbFBhc3N3b3JkIjogIlMzOUJLV2pTa2gi", + "runtime_parameters": "ZHJ1cGFsVXNlcm5hbWU6IHRlc3RfdXNlcgpkcnVwYWxQYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0Cm1hcmlhZGI6CiAgYXV0aDoKICAgIGRhdGFiYXNlOiB0ZXN0X2RydXBhbF9kYXRhYmFzZQogICAgdXNlcm5hbWU6IHRlc3RfZHJ1cGFsX3VzZXJuYW1lCiAgICBwYXNzd29yZDogdGVzdF9kcnVwYWxfcGFzc3dvcmQKY29udGFpbmVyUG9ydHM6CiAgaHR0cDogODA4MQogIGh0dHBzOiA4NDQ0CnNlcnZpY2U6CiAgdHlwZTogTG9hZEJhbGFuY2VyCiAgcG9ydHM6CiAgICBodHRwOiA4MAogICAgaHR0cHM6IDQ0NApwb2RTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIGZzR3JvdXA6IDEwMDIKY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBydW5Bc1VzZXI6IDEwMDIKaG9zdEFsaWFzZXM6CiAgLSBpcDogMTI3LjAuMC4xCiAgICBob3N0bmFtZXM6CiAgICAgIC0gc3RhdHVzLnRlc3Rob3N0CnNlcnZpY2VBY2NvdW50OgogIGF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW46IHRydWU=", "target_platform": { "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "size": { @@ -37,6 +37,32 @@ "endpoint": "lb-drupal-http", "app_protocol": "HTTP" } + }, + { + "action_id": "goss", + "params": { + "resources": { + "path": "/.vib/drupal/goss" + }, + "remote": { + "workload": "deploy-drupal" + }, + "vars_file": "vars.yaml" + } + }, + { + "action_id": "cypress", + "params": { + "resources": { + "path": "/.vib/drupal/cypress" + }, + "endpoint": "lb-drupal-http", + "app_protocol": "HTTP", + "env": { + "username": "test_user", + "password": "ComplicatedPassword123!4" + } + } } ] }, diff --git a/.vib/drupal/vib-verify.json b/.vib/drupal/vib-verify.json index 07b09df6e..026095ef4 100644 --- a/.vib/drupal/vib-verify.json +++ b/.vib/drupal/vib-verify.json @@ -22,7 +22,7 @@ "url": "{SHA_ARCHIVE}", "path": "/bitnami/drupal" }, - "runtime_parameters": "ImRydXBhbFBhc3N3b3JkIjogIlMzOUJLV2pTa2gi", + "runtime_parameters": "ZHJ1cGFsVXNlcm5hbWU6IHRlc3RfdXNlcgpkcnVwYWxQYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0Cm1hcmlhZGI6CiAgYXV0aDoKICAgIGRhdGFiYXNlOiB0ZXN0X2RydXBhbF9kYXRhYmFzZQogICAgdXNlcm5hbWU6IHRlc3RfZHJ1cGFsX3VzZXJuYW1lCiAgICBwYXNzd29yZDogdGVzdF9kcnVwYWxfcGFzc3dvcmQKY29udGFpbmVyUG9ydHM6CiAgaHR0cDogODA4MQogIGh0dHBzOiA4NDQ0CnNlcnZpY2U6CiAgdHlwZTogTG9hZEJhbGFuY2VyCiAgcG9ydHM6CiAgICBodHRwOiA4MAogICAgaHR0cHM6IDQ0NApwb2RTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIGZzR3JvdXA6IDEwMDIKY29udGFpbmVyU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBydW5Bc1VzZXI6IDEwMDIKaG9zdEFsaWFzZXM6CiAgLSBpcDogMTI3LjAuMC4xCiAgICBob3N0bmFtZXM6CiAgICAgIC0gc3RhdHVzLnRlc3Rob3N0CnNlcnZpY2VBY2NvdW50OgogIGF1dG9tb3VudFNlcnZpY2VBY2NvdW50VG9rZW46IHRydWU=", "target_platform": { "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "size": { @@ -37,6 +37,32 @@ "endpoint": "lb-drupal-http", "app_protocol": "HTTP" } + }, + { + "action_id": "goss", + "params": { + "resources": { + "path": "/.vib/drupal/goss" + }, + "remote": { + "workload": "deploy-drupal" + }, + "vars_file": "vars.yaml" + } + }, + { + "action_id": "cypress", + "params": { + "resources": { + "path": "/.vib/drupal/cypress" + }, + "endpoint": "lb-drupal-http", + "app_protocol": "HTTP", + "env": { + "username": "test_user", + "password": "ComplicatedPassword123!4" + } + } } ] }