mirror of
https://github.com/bitnami/charts.git
synced 2026-04-02 15:27:08 +08:00
[bitnami/jasperreports] Add tests and publishing using VIB (#13305)
* [bitnami/jasperreports] Add tests Signed-off-by: Jose Antonio Carmona <jcarmona@vmware.com> * Publish using VIB Signed-off-by: Jose Antonio Carmona <jcarmona@vmware.com> * Properly randomize Signed-off-by: Jose Antonio Carmona <jcarmona@vmware.com> * Remove unnecessary https insecure Signed-off-by: Jose Antonio Carmona <jcarmona@vmware.com> * Remove containerPort entry in runtime_params Signed-off-by: Jose Antonio Carmona <jcarmona@vmware.com> Signed-off-by: Jose Antonio Carmona <jcarmona@vmware.com>
This commit is contained in:
committed by
GitHub
parent
21f4d51b26
commit
2b274c2f94
8
.vib/jasperreports/cypress/cypress.json
Normal file
8
.vib/jasperreports/cypress/cypress.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"baseUrl": "http://localhost/",
|
||||
"env": {
|
||||
"username": "jaspervibadmin",
|
||||
"password": "ComplicatedPassword123!4"
|
||||
},
|
||||
"defaultCommandTimeout": 30000
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version = "1.0" encoding = "UTF-8"?>
|
||||
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
|
||||
|
||||
<jasperReport name="report" topMargin="20" bottomMargin="20" whenNoDataType="NoDataSection">
|
||||
<noData>
|
||||
<band height="15">
|
||||
<staticText>
|
||||
<reportElement x="0" y="0" width="200" height="15"/>
|
||||
<box>
|
||||
<bottomPen lineWidth="1.0" lineColor="#CCCCCC"/>
|
||||
</box>
|
||||
<textElement />
|
||||
<text><![CDATA[Cherries From Barn with ID]]></text>
|
||||
</staticText>
|
||||
</band>
|
||||
</noData>
|
||||
</jasperReport>
|
||||
7
.vib/jasperreports/cypress/cypress/fixtures/reports.json
Normal file
7
.vib/jasperreports/cypress/cypress/fixtures/reports.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"newReport": {
|
||||
"name": "ShoppingList",
|
||||
"file": "WorkingReport.jrxml",
|
||||
"textToRandomize": "Cherries From Barn with ID"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
/// <reference types="cypress" />
|
||||
import { random } from '../support/utils';
|
||||
|
||||
it('allows to upload and view a new Report', () => {
|
||||
cy.login();
|
||||
cy.visit('/jasperserver/flow.html?_flowId=reportUnitFlow&ParentFolderUri=/');
|
||||
|
||||
cy.fixture('reports').then((reports) => {
|
||||
const reportFile = `cypress/fixtures/${reports.newReport.file}`;
|
||||
cy.readFile(reportFile).then((data) => {
|
||||
const regex = new RegExp(
|
||||
`${reports.newReport.textToRandomize}[a-z0-9_]*`
|
||||
);
|
||||
const randomizedData = data.replace(
|
||||
regex,
|
||||
`${reports.newReport.textToRandomize}${random}`
|
||||
);
|
||||
cy.writeFile(reportFile, randomizedData);
|
||||
});
|
||||
|
||||
cy.get('[name="reportUnit.label"]')
|
||||
.click()
|
||||
.type(`${reports.newReport.name}_${random}`);
|
||||
cy.get('#fromLocal').click();
|
||||
cy.get('[type="file"]').selectFile(reportFile, { force: true });
|
||||
cy.contains('Submit').click();
|
||||
cy.get('#resultsContainer').within(() => {
|
||||
cy.contains(`${reports.newReport.name}_${random}`).click();
|
||||
});
|
||||
cy.contains(`${reports.newReport.textToRandomize}${random}`);
|
||||
});
|
||||
});
|
||||
36
.vib/jasperreports/cypress/cypress/support/commands.js
Normal file
36
.vib/jasperreports/cypress/cypress/support/commands.js
Normal file
@@ -0,0 +1,36 @@
|
||||
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('/jasperserver/login.html');
|
||||
cy.get('#j_username').click().type(username);
|
||||
cy.get('#j_password_pseudo').click().type(password);
|
||||
cy.get('#submitButton').click();
|
||||
|
||||
// The login process completes when the directory tree is fully loaded
|
||||
cy.get('#folders').within(() => {
|
||||
cy.contains('root');
|
||||
});
|
||||
cy.get('body').then(($body) => {
|
||||
// Close the pop-up if appears
|
||||
if ($body.find('#heartbeatOptin').is(':visible')) {
|
||||
cy.get('#heartbeatOptin').within(() => {
|
||||
cy.contains('button', 'OK').click();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
20
.vib/jasperreports/cypress/cypress/support/index.js
Normal file
20
.vib/jasperreports/cypress/cypress/support/index.js
Normal file
@@ -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')
|
||||
3
.vib/jasperreports/cypress/cypress/support/utils.js
Normal file
3
.vib/jasperreports/cypress/cypress/support/utils.js
Normal file
@@ -0,0 +1,3 @@
|
||||
/// <reference types="cypress" />
|
||||
|
||||
export let random = (Math.random() + 1).toString(36).substring(7);
|
||||
21
.vib/jasperreports/goss/goss.yaml
Normal file
21
.vib/jasperreports/goss/goss.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
command:
|
||||
check-user-info:
|
||||
exec: id
|
||||
exit-status: 0
|
||||
stdout:
|
||||
- uid={{ .Vars.containerSecurityContext.runAsUser }}
|
||||
- /groups=.*{{ .Vars.podSecurityContext.fsGroup }}/
|
||||
file:
|
||||
/opt/bitnami/jasperreports/META-INF/context.xml:
|
||||
exists: true
|
||||
filetype: file
|
||||
mode: '0644'
|
||||
contains:
|
||||
- /mysql.*{{ .Vars.mariadb.auth.database }}/
|
||||
- /username.*{{ .Vars.mariadb.auth.username }}/
|
||||
- /password.*{{ .Vars.mariadb.auth.password }}/
|
||||
/bitnami/jasperreports:
|
||||
exists: true
|
||||
filetype: directory
|
||||
mode: '2775'
|
||||
owner: root
|
||||
9
.vib/jasperreports/goss/vars.yaml
Normal file
9
.vib/jasperreports/goss/vars.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
podSecurityContext:
|
||||
fsGroup: 1002
|
||||
containerSecurityContext:
|
||||
runAsUser: 1002
|
||||
mariadb:
|
||||
auth:
|
||||
database: bitnami_test_jasperreports
|
||||
username: bn_test_jasperreports
|
||||
password: bitnami_test_password
|
||||
@@ -22,7 +22,7 @@
|
||||
"url": "{SHA_ARCHIVE}",
|
||||
"path": "/bitnami/jasperreports"
|
||||
},
|
||||
"runtime_parameters": "Imphc3BlcnJlcG9ydHNQYXNzd29yZCI6ICJTMzlCS1dqU2toIg==",
|
||||
"runtime_parameters": "amFzcGVycmVwb3J0c1VzZXJuYW1lOiBqYXNwZXJ2aWJhZG1pbgpqYXNwZXJyZXBvcnRzUGFzc3dvcmQ6ICJDb21wbGljYXRlZFBhc3N3b3JkMTIzITQiCnBvZFNlY3VyaXR5Q29udGV4dDoKICBlbmFibGVkOiB0cnVlCiAgZnNHcm91cDogMTAwMgpjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIHJ1bkFzVXNlcjogMTAwMgpwZXJzaXN0ZW5jZToKICBlbmFibGVkOiB0cnVlCnNlcnZpY2U6CiAgdHlwZTogTG9hZEJhbGFuY2VyCiAgcG9ydHM6CiAgICBodHRwOiA4MAptYXJpYWRiOgogIGVuYWJsZWQ6IHRydWUKICBhdXRoOgogICAgZGF0YWJhc2U6IGJpdG5hbWlfdGVzdF9qYXNwZXJyZXBvcnRzCiAgICB1c2VybmFtZTogYm5fdGVzdF9qYXNwZXJyZXBvcnRzCiAgICBwYXNzd29yZDogYml0bmFtaV90ZXN0X3Bhc3N3b3Jk",
|
||||
"target_platform": {
|
||||
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
|
||||
"size": {
|
||||
@@ -37,6 +37,32 @@
|
||||
"endpoint": "lb-jasperreports-http",
|
||||
"app_protocol": "HTTP"
|
||||
}
|
||||
},
|
||||
{
|
||||
"action_id": "goss",
|
||||
"params": {
|
||||
"resources": {
|
||||
"path": "/.vib/jasperreports/goss"
|
||||
},
|
||||
"remote": {
|
||||
"workload": "deploy-jasperreports"
|
||||
},
|
||||
"vars_file": "vars.yaml"
|
||||
}
|
||||
},
|
||||
{
|
||||
"action_id": "cypress",
|
||||
"params": {
|
||||
"resources": {
|
||||
"path": "/.vib/jasperreports/cypress"
|
||||
},
|
||||
"endpoint": "lb-jasperreports-http",
|
||||
"app_protocol": "HTTP",
|
||||
"env": {
|
||||
"username": "jaspervibadmin",
|
||||
"password": "ComplicatedPassword123!4"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
"url": "{SHA_ARCHIVE}",
|
||||
"path": "/bitnami/jasperreports"
|
||||
},
|
||||
"runtime_parameters": "Imphc3BlcnJlcG9ydHNQYXNzd29yZCI6ICJTMzlCS1dqU2toIg==",
|
||||
"runtime_parameters": "amFzcGVycmVwb3J0c1VzZXJuYW1lOiBqYXNwZXJ2aWJhZG1pbgpqYXNwZXJyZXBvcnRzUGFzc3dvcmQ6ICJDb21wbGljYXRlZFBhc3N3b3JkMTIzITQiCnBvZFNlY3VyaXR5Q29udGV4dDoKICBlbmFibGVkOiB0cnVlCiAgZnNHcm91cDogMTAwMgpjb250YWluZXJTZWN1cml0eUNvbnRleHQ6CiAgZW5hYmxlZDogdHJ1ZQogIHJ1bkFzVXNlcjogMTAwMgpwZXJzaXN0ZW5jZToKICBlbmFibGVkOiB0cnVlCnNlcnZpY2U6CiAgdHlwZTogTG9hZEJhbGFuY2VyCiAgcG9ydHM6CiAgICBodHRwOiA4MAptYXJpYWRiOgogIGVuYWJsZWQ6IHRydWUKICBhdXRoOgogICAgZGF0YWJhc2U6IGJpdG5hbWlfdGVzdF9qYXNwZXJyZXBvcnRzCiAgICB1c2VybmFtZTogYm5fdGVzdF9qYXNwZXJyZXBvcnRzCiAgICBwYXNzd29yZDogYml0bmFtaV90ZXN0X3Bhc3N3b3Jk",
|
||||
"target_platform": {
|
||||
"target_platform_id": "{VIB_ENV_TARGET_PLATFORM}",
|
||||
"size": {
|
||||
@@ -37,6 +37,32 @@
|
||||
"endpoint": "lb-jasperreports-http",
|
||||
"app_protocol": "HTTP"
|
||||
}
|
||||
},
|
||||
{
|
||||
"action_id": "goss",
|
||||
"params": {
|
||||
"resources": {
|
||||
"path": "/.vib/jasperreports/goss"
|
||||
},
|
||||
"remote": {
|
||||
"workload": "deploy-jasperreports"
|
||||
},
|
||||
"vars_file": "vars.yaml"
|
||||
}
|
||||
},
|
||||
{
|
||||
"action_id": "cypress",
|
||||
"params": {
|
||||
"resources": {
|
||||
"path": "/.vib/jasperreports/cypress"
|
||||
},
|
||||
"endpoint": "lb-jasperreports-http",
|
||||
"app_protocol": "HTTP",
|
||||
"env": {
|
||||
"username": "jaspervibadmin",
|
||||
"password": "ComplicatedPassword123!4"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user