From 82eb499b817bee98ee50ec4cbbbb2d483733e24d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Francisco=20de=20Paz=20Gal=C3=A1n?= Date: Fri, 26 Aug 2022 12:52:00 +0200 Subject: [PATCH] [bitnami/suitecrm] Revisit Helm Chart tests (#12141) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [bitnami/suitecrm] Revisit Helm Chart tests Signed-off-by: FraPazGal * Update .vib/suitecrm/cypress/cypress/integration/suitecrm_spec.js Co-authored-by: Jose Antonio Carmona Signed-off-by: Francisco de Paz Galán Signed-off-by: FraPazGal Signed-off-by: Francisco de Paz Galán Co-authored-by: Jose Antonio Carmona --- .vib/suitecrm/cypress/cypress.json | 7 +- .../cypress/cypress/fixtures/accounts.csv | 4 +- .../cypress/cypress/fixtures/contacts.json | 4 +- .../cypress/cypress/fixtures/users.json | 9 --- .../cypress/integration/suitecrm_spec.js | 74 +++++-------------- .vib/suitecrm/goss/goss.yaml | 41 +++++----- .vib/suitecrm/goss/vars.yaml | 11 +++ .vib/suitecrm/vib-publish.json | 7 +- .vib/suitecrm/vib-verify.json | 7 +- 9 files changed, 63 insertions(+), 101 deletions(-) delete mode 100644 .vib/suitecrm/cypress/cypress/fixtures/users.json create mode 100644 .vib/suitecrm/goss/vars.yaml diff --git a/.vib/suitecrm/cypress/cypress.json b/.vib/suitecrm/cypress/cypress.json index 529765e9473de6..ed136420178352 100644 --- a/.vib/suitecrm/cypress/cypress.json +++ b/.vib/suitecrm/cypress/cypress.json @@ -1,10 +1,7 @@ { "env": { - "username": "user", - "password": "ComplicatedPassword123!4", - "emailServer": "testhost", - "smtpPort": "9125", - "smtpUser": "testHostUser" + "username": "test_user", + "password": "ComplicatedPassword123!4" }, "hosts": { "vmware-suitecrm.my": "{{ TARGET_IP }}" diff --git a/.vib/suitecrm/cypress/cypress/fixtures/accounts.csv b/.vib/suitecrm/cypress/cypress/fixtures/accounts.csv index 7b4d9588157f32..684d875e6231db 100644 --- a/.vib/suitecrm/cypress/cypress/fixtures/accounts.csv +++ b/.vib/suitecrm/cypress/cypress/fixtures/accounts.csv @@ -1,3 +1,3 @@ Name,ID,Website,Email Address,Non Primary E-mails,Office Phone,Alternate Phone,Fax,Billing Street,Billing City,Billing State,Billing Postal Code,Billing Country,Shipping Street,Shipping City,Shipping State,Shipping Postal Code,Shipping Country,Description,Type,Industry,Annual Revenue,Employees,SIC Code,Ticker Symbol,Parent Account ID,Ownership,Campaign ID,Rating,Assigned to,Assigned User,Date Created,Date Modified,Modified By,Created By,Deleted,Longitude,Geocode Status,Address,Latitude -Test Account,c76e2660-6542-8b05-ff4d-628deed4e5f7,http:/website.com,address@email.com,,123-245-2345,,,Central Street,Central City,,,Country,,,,,,,,,,,,,,,,,user,1,05/25/2022 8:52,05/25/2022 8:52,1,1,0,0,,,0 -Test Account 2,c76e2660-6542-8b05-ff4d-628deed4e5f9,http:/website-one.com,address@email.com,,123-245-2345,,,Central Street,Central City,,,Country,,,,,,,,,,,,,,,,,user,1,05/25/2022 8:52,05/25/2022 8:52,1,1,0,0,,,0 +First Test Account random_id,c76e2660-6542-8b05-ff4d-628deed4e5f7,http:/website.com,address@email.com,,123-245-2345,,,Central Street,Central City,,,Country,,,,,,,,,,,,,,,,,user,1,05/25/2022 8:52,05/25/2022 8:52,1,1,0,0,,,0 +Second Test Account random_id,c76e2660-6542-8b05-ff4d-628deed4e5f9,http:/website-one.com,address@email.com,,123-245-2345,,,Central Street,Central City,,,Country,,,,,,,,,,,,,,,,,user,1,05/25/2022 8:52,05/25/2022 8:52,1,1,0,0,,,0 diff --git a/.vib/suitecrm/cypress/cypress/fixtures/contacts.json b/.vib/suitecrm/cypress/cypress/fixtures/contacts.json index f3ead45390dcd0..d054c8ac3d4639 100644 --- a/.vib/suitecrm/cypress/cypress/fixtures/contacts.json +++ b/.vib/suitecrm/cypress/cypress/fixtures/contacts.json @@ -1,7 +1,5 @@ { "newContact": { - "firstName": "Julius Francisco", - "lastName": "Doe", - "address": "Calle de Camino de Santiago" + "lastName": "Lastly" } } diff --git a/.vib/suitecrm/cypress/cypress/fixtures/users.json b/.vib/suitecrm/cypress/cypress/fixtures/users.json deleted file mode 100644 index 7e9aaa3fa3c965..00000000000000 --- a/.vib/suitecrm/cypress/cypress/fixtures/users.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "newUser": { - "firstName": "Jane Jessica", - "lastName": "Doe", - "username": "janedoe", - "password": "someComplicatedPass12345!", - "email": "testemails@email.com" - } -} diff --git a/.vib/suitecrm/cypress/cypress/integration/suitecrm_spec.js b/.vib/suitecrm/cypress/cypress/integration/suitecrm_spec.js index da008eaa3d20b1..fb83bf2766e11b 100644 --- a/.vib/suitecrm/cypress/cypress/integration/suitecrm_spec.js +++ b/.vib/suitecrm/cypress/cypress/integration/suitecrm_spec.js @@ -1,48 +1,26 @@ /// import { random } from '../support/utils'; -it('allows to log in/log out', () => { - cy.login(); - cy.get('span[class="error"]').should('not.exist'); - cy.contains('SUITECRM DASHBOARD'); - cy.visit('/index.php?module=Users&action=Logout'); - cy.contains('Log In'); -}); - -it('allows to import accounts', () => { +it('allows to import accounts and list them', () => { cy.login(); cy.visit('/index.php?module=Accounts&action=index'); cy.contains('Import Accounts').click({ force: true }); - cy.get('input[type="file"]').selectFile('cypress/fixtures/accounts.csv'); - cy.get('input#import_update').click(); - cy.get('#gonext').click(); - cy.contains('Here is how the first several rows'); - cy.get('#gonext').click(); - cy.contains('Check the mappings to make sure that they are what you expect'); - cy.get('#gonext').click(); - cy.contains('perform a duplicate check'); - cy.get('#importnow').click(); - cy.contains('View Import Result'); - cy.contains('View Accounts').click({ force: true }); - cy.get('[title="Edit"]').its('length').should('gt', 1); -}); -it('allows adding a new user', () => { - cy.login(); - cy.visit('index.php?module=Users&action=index'); - cy.contains('Create New User').click({ force: true }); - cy.fixture('users').then((user) => { - cy.get('#user_name').type(`${user.newUser.username}.${random}`); - cy.get('#first_name').type(`${user.newUser.firstName}.${random}`); - cy.get('#last_name').type(`${user.newUser.lastName}.${random}`); - cy.get('#Users0emailAddress0').type(`${user.newUser.email}.${random}`); - cy.get('#SAVE_FOOTER').click(); - cy.get('#tab2').click(); - cy.get('#new_password').type(`${user.newUser.password}.${random}`); - cy.get('#confirm_pwd').type(`${user.newUser.password}.${random}`); - cy.get('#SAVE_FOOTER').click({ force: true }); - cy.contains('View Users').click({ force: true }); - cy.contains(`${user.newUser.username}.${random}`); + const accountsFile = 'cypress/fixtures/accounts.csv'; + cy.readFile(accountsFile).then((data) => { + const randomizedData = data.replace(/Test Account [a-z0-9_]+,/g, `Test Account ${random},`); + cy.writeFile(accountsFile, randomizedData); + }); + cy.get('[type="file"]').selectFile(accountsFile); + cy.get('#import_update').click(); + for (let i = 2; i < 5; i++) { + cy.get('#gonext').click(); + cy.contains(`Step ${i}`); + } + cy.get('#importnow').click(); + cy.contains('Exit').click({ force: true }); + cy.get('.list').within(() => { + cy.contains(`Test Account ${random}`); }); }); @@ -51,24 +29,8 @@ it('allows adding a new contact', () => { cy.visit('/index.php?module=Contacts&action=index'); cy.contains('Create Contact').click({ force: true }); cy.fixture('contacts').then((contact) => { - cy.get('#account_name').type(`${contact.newContact.firstName}.${random}`); cy.get('#last_name').type(`${contact.newContact.lastName}.${random}`); - cy.get('#primary_address_street').type( - `${contact.newContact.address}.${random}` - ); - cy.get('#SAVE').click(); - cy.contains( - '.module-title-text', - `${contact.newContact.lastName}.${random}` - ); + cy.contains('Save').click(); + cy.contains('h2', `${contact.newContact.lastName}.${random}`); }); }); - -it('verifies SMTP configuration', () => { - cy.login(); - cy.visit('index.php?module=Administration&action=index'); - cy.contains('Email Settings').click(); - cy.get('#mail_smtpserver').should('have.value', Cypress.env('emailServer')); - cy.get('#mail_smtpport').should('have.value', Cypress.env('smtpPort')); - cy.get('#mail_smtpuser').should('have.value', Cypress.env('smtpUser')); -}); diff --git a/.vib/suitecrm/goss/goss.yaml b/.vib/suitecrm/goss/goss.yaml index 9c2c37e1314176..1e9d8488efcccc 100644 --- a/.vib/suitecrm/goss/goss.yaml +++ b/.vib/suitecrm/goss/goss.yaml @@ -1,26 +1,27 @@ +http: + https://suitecrm:{{ .Vars.service.ports.https }}: + status: 200 + allow-insecure: true command: - user-id-test: - exec: if [ "$(id -u)" -eq 0 ]; then exit 1; fi + check-user-info: + exec: id exit-status: 0 - stdout: [] - stderr: [] + stdout: + - uid={{ .Vars.containerSecurityContext.runAsUser }} + - /groups=.*{{ .Vars.podSecurityContext.fsGroup }}/ file: - /opt/bitnami/suitecrm/sugar_version.json: - mode: "0664" - filetype: file - contains: - - sugar_db_version - - sugar_version + /bitnami/suitecrm: exists: true - /opt/bitnami/suitecrm/config.php: - mode: "0755" - filetype: file - contains: - - vmware-suitecrm - - dbconfig + filetype: directory + mode: '2775' + owner: root + /etc/hosts: exists: true - /opt/bitnami/apache/conf/extra/httpd-manual.conf: - mode: "0664" filetype: file - exists: true - group: root + contains: + {{ range .Vars.hostAliases }} + {{ $ip := .ip }} + {{ range $host := .hostnames }} + - /{{ $ip }}.*{{$host}}/ + {{ end }} + {{ end }} diff --git a/.vib/suitecrm/goss/vars.yaml b/.vib/suitecrm/goss/vars.yaml new file mode 100644 index 00000000000000..52b9d063bce74b --- /dev/null +++ b/.vib/suitecrm/goss/vars.yaml @@ -0,0 +1,11 @@ +hostAliases: + - ip: "127.0.0.1" + hostnames: + - "status.localhost" +podSecurityContext: + fsGroup: 1002 +containerSecurityContext: + runAsUser: 1002 +service: + ports: + https: 444 diff --git a/.vib/suitecrm/vib-publish.json b/.vib/suitecrm/vib-publish.json index 7e801d449f12c2..51fda56cfcf402 100644 --- a/.vib/suitecrm/vib-publish.json +++ b/.vib/suitecrm/vib-publish.json @@ -22,7 +22,7 @@ "url": "{SHA_ARCHIVE}", "path": "/bitnami/suitecrm" }, - "runtime_parameters": "c2VydmljZToKICB0eXBlOiBMb2FkQmFsYW5jZXIKICBwb3J0czoKICAgIGh0dHA6IDgwCnN1aXRlY3JtVXNlcm5hbWU6IHVzZXIKc3VpdGVjcm1QYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0CnN1aXRlY3JtU210cEhvc3Q6IHRlc3Rob3N0CnN1aXRlY3JtU210cFBvcnQ6IDkxMjUKc3VpdGVjcm1TbXRwVXNlcjogdGVzdEhvc3RVc2VyCnN1aXRlY3JtSG9zdDogdm13YXJlLXN1aXRlY3JtLm15", + "runtime_parameters": "c3VpdGVjcm1Vc2VybmFtZTogdGVzdF91c2VyCnN1aXRlY3JtUGFzc3dvcmQ6IENvbXBsaWNhdGVkUGFzc3dvcmQxMjMhNApzdWl0ZWNybUhvc3Q6IHZtd2FyZS1zdWl0ZWNybS5teQpob3N0QWxpYXNlczoKICAtIGlwOiAiMTI3LjAuMC4xIgogICAgaG9zdG5hbWVzOgogICAgICAtICJzdGF0dXMubG9jYWxob3N0Igpjb250YWluZXJQb3J0czoKICBodHRwOiA4MDgxCiAgaHR0cHM6IDg0NDQKcG9kU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBmc0dyb3VwOiAxMDAyCmNvbnRhaW5lclNlY3VyaXR5Q29udGV4dDoKICBlbmFibGVkOiB0cnVlCiAgcnVuQXNVc2VyOiAxMDAyCm1hcmlhZGI6CiAgYXV0aDoKICAgIGRhdGFiYXNlOiB0ZXN0X3N1aXRlY3JtX2RhdGFiYXNlCiAgICB1c2VybmFtZTogdGVzdF9zdWl0ZWNybV91c2VybmFtZQogICAgcGFzc3dvcmQ6IHRlc3Rfc3VpdGVjcm1fcGFzc3dvcmQKc2VydmljZToKICB0eXBlOiBMb2FkQmFsYW5jZXIKICBwb3J0czoKICAgIGh0dHA6IDgwCiAgICBodHRwczogNDQ0", "target_platform": { "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "size": { @@ -46,7 +46,8 @@ }, "remote": { "workload": "deploy-suitecrm" - } + }, + "vars_file": "vars.yaml" } }, { @@ -58,7 +59,7 @@ "endpoint": "lb-suitecrm-http", "app_protocol": "HTTP", "env": { - "username": "user", + "username": "test_user", "password": "ComplicatedPassword123!4" } } diff --git a/.vib/suitecrm/vib-verify.json b/.vib/suitecrm/vib-verify.json index 28cd71abceadca..879204a223be44 100644 --- a/.vib/suitecrm/vib-verify.json +++ b/.vib/suitecrm/vib-verify.json @@ -22,7 +22,7 @@ "url": "{SHA_ARCHIVE}", "path": "/bitnami/suitecrm" }, - "runtime_parameters": "c2VydmljZToKICB0eXBlOiBMb2FkQmFsYW5jZXIKICBwb3J0czoKICAgIGh0dHA6IDgwCnN1aXRlY3JtVXNlcm5hbWU6IHVzZXIKc3VpdGVjcm1QYXNzd29yZDogQ29tcGxpY2F0ZWRQYXNzd29yZDEyMyE0CnN1aXRlY3JtU210cEhvc3Q6IHRlc3Rob3N0CnN1aXRlY3JtU210cFBvcnQ6IDkxMjUKc3VpdGVjcm1TbXRwVXNlcjogdGVzdEhvc3RVc2VyCnN1aXRlY3JtSG9zdDogdm13YXJlLXN1aXRlY3JtLm15", + "runtime_parameters": "c3VpdGVjcm1Vc2VybmFtZTogdGVzdF91c2VyCnN1aXRlY3JtUGFzc3dvcmQ6IENvbXBsaWNhdGVkUGFzc3dvcmQxMjMhNApzdWl0ZWNybUhvc3Q6IHZtd2FyZS1zdWl0ZWNybS5teQpob3N0QWxpYXNlczoKICAtIGlwOiAiMTI3LjAuMC4xIgogICAgaG9zdG5hbWVzOgogICAgICAtICJzdGF0dXMubG9jYWxob3N0Igpjb250YWluZXJQb3J0czoKICBodHRwOiA4MDgxCiAgaHR0cHM6IDg0NDQKcG9kU2VjdXJpdHlDb250ZXh0OgogIGVuYWJsZWQ6IHRydWUKICBmc0dyb3VwOiAxMDAyCmNvbnRhaW5lclNlY3VyaXR5Q29udGV4dDoKICBlbmFibGVkOiB0cnVlCiAgcnVuQXNVc2VyOiAxMDAyCm1hcmlhZGI6CiAgYXV0aDoKICAgIGRhdGFiYXNlOiB0ZXN0X3N1aXRlY3JtX2RhdGFiYXNlCiAgICB1c2VybmFtZTogdGVzdF9zdWl0ZWNybV91c2VybmFtZQogICAgcGFzc3dvcmQ6IHRlc3Rfc3VpdGVjcm1fcGFzc3dvcmQKc2VydmljZToKICB0eXBlOiBMb2FkQmFsYW5jZXIKICBwb3J0czoKICAgIGh0dHA6IDgwCiAgICBodHRwczogNDQ0", "target_platform": { "target_platform_id": "{VIB_ENV_TARGET_PLATFORM}", "size": { @@ -46,7 +46,8 @@ }, "remote": { "workload": "deploy-suitecrm" - } + }, + "vars_file": "vars.yaml" } }, { @@ -58,7 +59,7 @@ "endpoint": "lb-suitecrm-http", "app_protocol": "HTTP", "env": { - "username": "user", + "username": "test_user", "password": "ComplicatedPassword123!4" } }