Merge remote-tracking branch 'origin/main' into feature/check_permissions_on_group_and_model_list

This commit is contained in:
jasquat 2023-05-08 11:34:33 -04:00
commit ee8f7637a8
9 changed files with 1067 additions and 939 deletions

View File

@ -7,10 +7,15 @@ function error_handler() {
trap 'error_handler ${LINENO} $?' ERR
set -o errtrace -o errexit -o nounset -o pipefail
port="${SPIFFWORKFLOW_BACKEND_PORT:-7000}"
arg="${1:-}"
if [[ "$arg" == "acceptance" ]]; then
export SPIFFWORKFLOW_BACKEND_LOAD_FIXTURE_DATA=true
export SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_NAME=acceptance_tests.yml
elif [[ "$arg" == "localopenid" ]]; then
export SPIFFWORKFLOW_BACKEND_OPEN_ID_SERVER_URL="http://localhost:$port/openid"
export SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_NAME="example.yml"
fi
if [[ -z "${SPIFFWORKFLOW_BACKEND_ENV:-}" ]]; then
@ -38,5 +43,5 @@ else
fi
# this line blocks
SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER="${SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER}" FLASK_APP=src/spiffworkflow_backend poetry run flask run -p 7000
SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER="${SPIFFWORKFLOW_BACKEND_RUN_BACKGROUND_SCHEDULER}" FLASK_APP=src/spiffworkflow_backend poetry run flask run -p "$port"
fi

View File

@ -62,13 +62,16 @@ SPIFFWORKFLOW_BACKEND_OPEN_ID_CLIENT_SECRET_KEY = environ.get(
default="JXeQExm0JhQPLumgHtIIqf52bDalHz0q",
) # noqa: S105
# Tenant specific fields is a comma separated list of field names that we will convert to list of strings
# Tenant specific fields is a comma separated list of field names that we will be converted to list of strings
# and store in the user table's tenant_specific_field_n columns. You can have up to three items in this
# comma-separated list.
SPIFFWORKFLOW_BACKEND_OPEN_ID_TENANT_SPECIFIC_FIELDS = environ.get(
"SPIFFWORKFLOW_BACKEND_OPEN_ID_TENANT_SPECIFIC_FIELDS"
)
# loggers to use is a comma separated list of logger prefixes that we will be converted to list of strings
SPIFFWORKFLOW_BACKEND_LOGGERS_TO_USE = environ.get("SPIFFWORKFLOW_BACKEND_LOGGERS_TO_USE")
# cryptography or simple-crypt
SPIFFWORKFLOW_BACKEND_ENCRYPTION_LIB = environ.get(
# "SPIFFWORKFLOW_BACKEND_ENCRYPTION_LIB", default="cryptography"

View File

@ -129,8 +129,27 @@ def setup_logger(app: Flask) -> None:
spiff_logger_filehandler.setFormatter(log_formatter)
# these loggers have been deemed too verbose to be useful
garbage_loggers_to_exclude = ["connexion", "flask_cors.extension"]
loggers_to_exclude_from_debug = ["sqlalchemy"]
garbage_loggers_to_exclude = ["connexion", "flask_cors.extension", "flask_cors.core", "sqlalchemy"]
# if you actually want one of these excluded loggers, there is a config option to turn it on
loggers_to_use = app.config.get("SPIFFWORKFLOW_BACKEND_LOGGERS_TO_USE", [])
if loggers_to_use is None or loggers_to_use == "":
loggers_to_use = []
else:
loggers_to_use = loggers_to_use.split(",")
for logger_to_use in loggers_to_use:
if logger_to_use in garbage_loggers_to_exclude:
garbage_loggers_to_exclude.remove(logger_to_use)
else:
app.logger.warning(
f"Logger '{logger_to_use}' not found in garbage_loggers_to_exclude. You do not need to add it to"
" SPIFFWORKFLOW_BACKEND_LOGGERS_TO_USE."
)
loggers_to_exclude_from_debug = []
if "sqlalchemy" not in garbage_loggers_to_exclude:
loggers_to_exclude_from_debug.append("sqlalchemy")
# make all loggers act the same
for name in logging.root.manager.loggerDict:

View File

@ -13,6 +13,7 @@ const submitWithUser = (
cy.wait(1000);
cy.log('=======visit find by id : ');
cy.visit('/admin/process-instances/find-by-id');
cy.wait(3000);
cy.get('#process-instance-id-input').type(processInstanceId);
cy.get('button')
@ -53,8 +54,8 @@ const submitWithUser = (
cy.get('.cds--text-area__wrapper').find('#root').clear().type('Providing additional info. It\s free and easy to post a job. Simply fill in a title, description and budget and competitive bids come within minutes. No job is too big or too small. We\'ve got people for jobs of any size.');
cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.contains('Submit the Request').click();
//cy.get('input[value="Submit the Request"]').click();
} else {
@ -182,9 +183,9 @@ describe('Consulting Fees Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('For professionals working in the professional services, \consultant\ and advisor\ are often used and fall under common terminology. Consultancy.uk zooms in on this field to get a closer look. \n https://www.consultancy.uk/career/what-is-consulting');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -311,9 +312,9 @@ describe('Consulting Fees Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('For professionals working in the professional services, consultant and advisor are often used and fall under common terminology. Consultancy.uk zooms in on this field to get a closer look. \n https://www.consultancy.uk/career/what-is-consulting');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -441,9 +442,9 @@ describe('Consulting Fees Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('It\s free and easy to post a job. Simply fill in a title, description and budget and competitive bids come within minutes. No job is too big or too small. We\'ve got freelancers for jobs of any size or budget across 1800 skills. No job is too complex.');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -636,9 +637,9 @@ describe('Consulting Fees Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -804,9 +805,9 @@ describe('Consulting Fees Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -974,9 +975,9 @@ describe('Consulting Fees Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')

View File

@ -13,6 +13,7 @@ const submitWithUser = (
cy.wait(1000);
cy.log('=======visit find by id : ');
cy.visit('/admin/process-instances/find-by-id');
cy.wait(3000);
cy.get('#process-instance-id-input').type(processInstanceId);
cy.get('button')
@ -57,8 +58,8 @@ const submitWithUser = (
cy.get('.cds--text-area__wrapper').find('#root').clear().type('Providing additional info. Computer hardware includes the physical parts of a computer, such as the case, central processing unit (CPU), random access memory (RAM), monitor, mouse, keyboard, computer data storage, graphics card, sound card');
cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.contains('Submit the Request').click();
//cy.get('input[value="Submit the Request"]').click();
} else {
@ -196,9 +197,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('The template for all modern computers is the Von Neumann architecture, detailed in a 1945 paper by Hungarian mathematician John von Neumann. This describes a design architecture for a electronic digital computer with subdivisions of a processing unit');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -322,9 +323,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('When using computer hardware, an upgrade means adding new or additional hardware to a computer that improves its performance, increases its capacity, or adds new features. For example, \nhttps://en.wikipedia.org/wiki/Computer_hardware');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -443,9 +444,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('A supercomputer is superficially similar to a mainframe but is instead intended for extremely demanding computational tasks. As of November 2021, the fastest supercomputer on the TOP500 supercomputer list is Fugaku, in Japan');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -591,9 +592,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('Computer hardware contain dangerous chemicals such as lead, mercury, nickel, and cadmium. According to the EPA these e-wastes have a harmful effect on the environment unless they are disposed properly. \nhttps://en.wikipedia.org/wiki/Computer_hardware');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -699,9 +700,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('For professionals working in the professional services, \consultant\ and advisor\ are often used and fall under common terminology. Consultancy.uk zooms in on this field to get a closer look. \n https://www.consultancy.uk/career/what-is-consulting');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -807,9 +808,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('The template for all modern computers is the Von Neumann architecture, detailed in a 1945 paper by Hungarian mathematician John von Neumann. \nhttps://en.wikipedia.org/wiki/Computer_hardware');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -933,9 +934,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('The template for all modern computers is the Von Neumann architecture, detailed in a 1945 paper by Hungarian mathematician John von Neumann. \nhttps://en.wikipedia.org/wiki/Computer_hardware');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1055,9 +1056,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('The personal computer is one of the most common types of computer due to its versatility and relatively low price. Desktop personal computers have a monitor, a keyboard, a mouse, and a computer case.\nhttps://en.wikipedia.org/wiki/Computer_hardware');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1176,9 +1177,9 @@ describe('Equipment Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('The personal computer is one of the most common types of computer due to its versatility and relatively low price. Desktop personal computers have a monitor, a keyboard, a mouse, and a computer case.\nhttps://en.wikipedia.org/wiki/Computer_hardware');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1394,9 +1395,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1557,9 +1558,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1719,9 +1720,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1909,9 +1910,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -2059,9 +2060,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -2208,9 +2209,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -2375,9 +2376,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -2538,9 +2539,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -2701,9 +2702,9 @@ describe('Equipment Path - With Files', () => {
.attachFile(['png-5mb-2.png']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')

View File

@ -87,9 +87,9 @@ describe('Initiate a Request - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('2021 Newest HP 17.3 inch FHD Laptop, AMD Ryzen 5 5500U 6core(Beat i7-1160G7, up to 4.0GHz),16GB RAM, 1TB PCIe SSD, Bluetooth 4.2, WiFi, HDMI, USB-A&C, Windows 10 S, w/Ghost Manta Accessories, Silver\nhttps://www.amazon.com/HP-i7-11G7-Bluetooth-Windows');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -179,9 +179,9 @@ describe('Initiate a Request - Without Files', () => {
//cy.get('.cds--text-area__wrapper').find('#root').type('For professionals working in the professional services, consultant and advisor are often used and fall under common terminology. Consultancy.uk zooms in on this field to get a closer look. \n https://www.consultancy.uk/career/what-is-consulting');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -282,15 +282,15 @@ describe('Initiate a Request - Without Files', () => {
{ timeout: 60000 }
);
cy.get('.cds--text-area__wrapper').find('#root').type('2021 Newest HP 17.3 inch FHD Laptop, AMD Ryzen 5 5500U 6core(Beat i7-1160G7, up to 4.0GHz),16GB RAM, 1TB PCIe SSD, Bluetooth 4.2, WiFi, HDMI, USB-A&C, Windows 10 S, w/Ghost Manta Accessories, Silver\nhttps://www.amazon.com/HP-i7-11G7-Bluetooth-Windows');
cy.get('.cds--text-area__wrapper').find('#root').type('2021 Newest HP 17.3 inch FHD Laptop, AMD Ryzen 5 5500U 6core(Beat i7-1160G7, up to 4.0GHz),16GB RAM, 1TB PCIe SSD, Bluetooth 4.2, WiFi, HDMI, USB-A&C, Windows 10 S,\nhttps://www.amazon.com/HP-i7-11G7-Bluetooth-Windows');
cy.contains('Edit the Request').click();
//cy.contains('Edit the Request').click();
cy.get('input[value="Edit the Request"]').click();
//cy.get('input[value="Edit the Request"]').click();
cy.get('button')
.contains(/^Submit$/)
.contains(/^Edit Request$/)
.click();
@ -312,10 +312,10 @@ describe('Initiate a Request - Without Files', () => {
'Task: Review the Request',
{ timeout: 60000 });
cy.get('.cds--text-area__wrapper').find('#root').type('EDITING INFO : 2021 Newest HP 17.3 inch FHD Laptop, AMD Ryzen 5 5500U 6core(Beat i7-1160G7, up to 4.0GHz),16GB RAM, 1TB PCIe SSD, Bluetooth 4.2, WiFi, HDMI, USB-A&C, Silver\nhttps://www.amazon.com/HP-i7-11G7-Bluetooth-Windows');
cy.get('.cds--text-area__wrapper').find('#root').type('EDITING INFO');
cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.contains('Submit the Request').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
.contains(/^Submit$/)
@ -331,8 +331,8 @@ describe('Initiate a Request - Without Files', () => {
});
});
//Save as Draft a Software and License request - Without Files
it.only('Save as Draft a Software and License request', () => {
//Save as Draft a Software and License request 1 - Without Files
it('Save as Draft a Software and License request 1', () => {
let username = Cypress.env('requestor_username');
let password = Cypress.env('requestor_password');
cy.log('=====username : ' + username);
@ -408,9 +408,9 @@ describe('Initiate a Request - Without Files', () => {
.contains(/^Save as draft$/)
.click();
cy.get('button')
.contains(/^Return to Home$/)
.click();
//cy.get('button')
// .contains(/^Return to Home$/)
// .click();
cy.contains('Started by me', { timeout: 60000 });
cy.logout();
@ -419,98 +419,8 @@ describe('Initiate a Request - Without Files', () => {
});
});
//Cancel a Software and License request 1- Without Files
it('Cancel a Software and License request 1', () => {
let username = Cypress.env('requestor_username');
let password = Cypress.env('requestor_password');
cy.log('=====username : ' + username);
cy.log('=====password : ' + password);
cy.login(username, password);
cy.visit('/');
cy.contains('Start New +').click();
cy.contains('Request Goods or Services');
cy.runPrimaryBpmnFile(true);
/* cy.contains('Please select the type of request to start the process.');
// wait a second to ensure we can click the radio button
cy.wait(2000);
cy.get('input#root-procurement').click();
cy.wait(2000);
cy.get('button')
.contains(/^Submit$/)
.click();
*/
cy.contains(
'Request Goods or Services',
{ timeout: 60000 }
);
cy.url().then((currentUrl) => {
// if url is "/tasks/8/d37c2f0f-016a-4066-b669-e0925b759560"
// extract the digits after /tasks
const processInstanceId = currentUrl.match(/(?<=\/tasks\/)\d+/)[0];
cy.log('==###############===processInstanceId : ', processInstanceId);
let projectId = Cypress.env('project_id');
cy.wait(2000);
cy.get('#root_project').select(projectId);
cy.get('#root_category').select('soft_and_lic');
cy.get('#root_purpose').clear().type('Sware\nA software license is a document that provides legally binding guidelines for the use and distribution of software.\nSoftware licenses typically provide end users with the right to one or more copies of the software without violating copyrights');
cy.get('#root_criticality').select('High');
cy.get('#root_period').clear().type('25-11-2025');
cy.get('body').click();
cy.get('#root_vendor').clear().type('Microsoft');
cy.get('#root_payment_method').select('Reimbursement');
/* cy.get('button')
.contains(/^Submit$/)
.click();
cy.contains('Task: Enter NDR Items', { timeout: 60000 });
*/
//item 0
cy.get('#root_item_0_sub_category').select('op_src');
cy.get('#root_item_0_item_name').clear().type('Open source software is code that is designed to be publicly accessible anyone can see, modify, END');
cy.get('#root_item_0_qty').clear().type('2');
cy.get('#root_item_0_currency_type').select('Crypto');
cy.get('#root_item_0_currency').select('SNT');
cy.get('#root_item_0_unit_price').type('1915');
cy.get('#root_item > div:nth-child(3) > p > button').click();
//item 1
cy.get('#root_item_1_sub_category').select('lic_and_sub');
cy.get('#root_item_1_item_name').clear().type('A software license is a document that provides legally binding guidelines for the use and distri END');
cy.get('#root_item_1_qty').clear().type('1');
cy.get('#root_item_1_currency_type').select('Fiat');
cy.get('#root_item_1_currency').select('AED');
cy.get('#root_item_1_unit_price').type('4500');
cy.get('#root-Yes').click();
cy.get('button')
.contains(/^Submit$/)
.click();
cy.get('button')
.contains(/^Return to Home$/)
.click();
cy.contains('Started by me', { timeout: 60000 });
cy.logout();
});
});
//Cancel a Software and License request 2- Without Files
it('Cancel a Software and License request 2', () => {
//Save as Draft a Software and License request 2- Without Files
it('Save as Draft a Software and License request 2', () => {
let username = Cypress.env('requestor_username');
let password = Cypress.env('requestor_password');
cy.log('=====username : ' + username);
@ -594,12 +504,98 @@ describe('Initiate a Request - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('2021 Newest HP 17.3 inch FHD Laptop, AMD Ryzen 5 5500U 6core(Beat i7-1160G7, up to 4.0GHz),16GB RAM, 1TB PCIe SSD, Bluetooth 4.2, WiFi, HDMI, USB-A&C, Windows 10 S, w/Ghost Manta Accessories, Silver\nhttps://www.amazon.com/HP-i7-11G7-Bluetooth-Windows');
cy.contains('Cancel the Request').click();
cy.get('button')
.contains(/^Save as draft$/)
.click();
cy.get('input[value="Cancel the Request"]').click();
// cy.get('button')
// .contains(/^Return to Home$/)
// .click();
cy.contains('Started by me', { timeout: 60000 });
cy.logout();
});
});
//Cancel a Software and License request 1- Without Files
it('Cancel a Software and License request 1', () => {
let username = Cypress.env('requestor_username');
let password = Cypress.env('requestor_password');
cy.log('=====username : ' + username);
cy.log('=====password : ' + password);
cy.login(username, password);
cy.visit('/');
cy.contains('Start New +').click();
cy.contains('Request Goods or Services');
cy.runPrimaryBpmnFile(true);
/* cy.contains('Please select the type of request to start the process.');
// wait a second to ensure we can click the radio button
cy.wait(2000);
cy.get('input#root-procurement').click();
cy.wait(2000);
cy.get('button')
.contains(/^Submit$/)
.click();
*/
cy.contains(
'Request Goods or Services',
{ timeout: 60000 }
);
cy.url().then((currentUrl) => {
// if url is "/tasks/8/d37c2f0f-016a-4066-b669-e0925b759560"
// extract the digits after /tasks
const processInstanceId = currentUrl.match(/(?<=\/tasks\/)\d+/)[0];
cy.log('==###############===processInstanceId : ', processInstanceId);
let projectId = Cypress.env('project_id');
cy.wait(2000);
cy.get('#root_project').select(projectId);
cy.get('#root_category').select('soft_and_lic');
cy.get('#root_purpose').clear().type('Sware\nA software license is a document that provides legally binding guidelines for the use and distribution of software.\nSoftware licenses typically provide end users with the right to one or more copies of the software without violating copyrights');
cy.get('#root_criticality').select('High');
cy.get('#root_period').clear().type('25-11-2025');
cy.get('body').click();
cy.get('#root_vendor').clear().type('Microsoft');
cy.get('#root_payment_method').select('Reimbursement');
/* cy.get('button')
.contains(/^Submit$/)
.click();
cy.contains('Task: Enter NDR Items', { timeout: 60000 });
*/
//item 0
cy.get('#root_item_0_sub_category').select('op_src');
cy.get('#root_item_0_item_name').clear().type('Open source software is code that is designed to be publicly accessible anyone can see, modify, END');
cy.get('#root_item_0_qty').clear().type('2');
cy.get('#root_item_0_currency_type').select('Crypto');
cy.get('#root_item_0_currency').select('SNT');
cy.get('#root_item_0_unit_price').type('1915');
cy.get('#root_item > div:nth-child(3) > p > button').click();
//item 1
cy.get('#root_item_1_sub_category').select('lic_and_sub');
cy.get('#root_item_1_item_name').clear().type('A software license is a document that provides legally binding guidelines for the use and distri END');
cy.get('#root_item_1_qty').clear().type('1');
cy.get('#root_item_1_currency_type').select('Fiat');
cy.get('#root_item_1_currency').select('AED');
cy.get('#root_item_1_unit_price').type('4500');
//cy.get('#root-Yes').click();
cy.get('button')
.contains(/^Submit$/)
.contains(/^Cancel Request$/)
.click();
cy.get('button')
@ -610,6 +606,106 @@ describe('Initiate a Request - Without Files', () => {
cy.logout();
});
});
//Cancel a Software and License request 2- Without Files
it.only('Cancel a Software and License request 2', () => {
let username = Cypress.env('requestor_username');
let password = Cypress.env('requestor_password');
cy.log('=====username : ' + username);
cy.log('=====password : ' + password);
cy.login(username, password);
cy.visit('/');
cy.contains('Start New +').click();
cy.contains('Request Goods or Services');
cy.runPrimaryBpmnFile(true);
/* cy.contains('Please select the type of request to start the process.');
// wait a second to ensure we can click the radio button
cy.wait(2000);
cy.get('input#root-procurement').click();
cy.wait(2000);
cy.get('button')
.contains(/^Submit$/)
.click();
*/
cy.contains(
'Request Goods or Services',
{ timeout: 60000 }
);
cy.url().then((currentUrl) => {
// if url is "/tasks/8/d37c2f0f-016a-4066-b669-e0925b759560"
// extract the digits after /tasks
const processInstanceId = currentUrl.match(/(?<=\/tasks\/)\d+/)[0];
cy.log('==###############===processInstanceId : ', processInstanceId);
let projectId = Cypress.env('project_id');
cy.wait(2000);
cy.get('#root_project').select(projectId);
cy.get('#root_category').select('soft_and_lic');
cy.get('#root_purpose').clear().type('Sware\nA software license is a document that provides legally binding guidelines for the use and distribution of software.\nSoftware licenses typically provide end users with the right to one or more copies of the software without violating copyrights');
cy.get('#root_criticality').select('High');
cy.get('#root_period').clear().type('25-11-2025');
cy.get('body').click();
cy.get('#root_vendor').clear().type('Microsoft');
cy.get('#root_payment_method').select('Reimbursement');
/* cy.get('button')
.contains(/^Submit$/)
.click();
cy.contains('Task: Enter NDR Items', { timeout: 60000 });
*/
//item 0
cy.get('#root_item_0_sub_category').select('op_src');
cy.get('#root_item_0_item_name').clear().type('Open source software is code that is designed to be publicly accessible anyone can see, modify, END');
cy.get('#root_item_0_qty').clear().type('2');
cy.get('#root_item_0_currency_type').select('Crypto');
cy.get('#root_item_0_currency').select('SNT');
cy.get('#root_item_0_unit_price').type('1915');
cy.get('#root_item > div:nth-child(3) > p > button').click();
//item 1
cy.get('#root_item_1_sub_category').select('lic_and_sub');
cy.get('#root_item_1_item_name').clear().type('A software license is a document that provides legally binding guidelines for the use and distri END');
cy.get('#root_item_1_qty').clear().type('1');
cy.get('#root_item_1_currency_type').select('Fiat');
cy.get('#root_item_1_currency').select('AED');
cy.get('#root_item_1_unit_price').type('4500');
cy.get('button')
.contains(/^Submit$/)
.click();
cy.contains(
'Review and provide any supporting information or files for your request.',
{ timeout: 60000 }
);
cy.get('.cds--text-area__wrapper').find('#root').type('2021 Newest HP 17.3 inch FHD Laptop, AMD Ryzen 5 5500U 6core(Beat i7-1160G7, up to 4.0GHz),16GB RAM, 1TB PCIe SSD, Bluetooth 4.2, WiFi, HDMI, USB-A&C, Windows 10 S, w/Ghost Manta Accessories, Silver\nhttps://www.amazon.com/HP-i7-11G7-Bluetooth-Windows');
//cy.contains('Cancel the Request').click();
//cy.get('input[value="Cancel the Request"]').click();
cy.get('button')
.contains(/^Cancel Request$/)
.click();
cy.contains('Started by me', { timeout: 60000 });
cy.logout();
});
});
});
@ -744,9 +840,9 @@ describe('Initiate a Request - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -903,9 +999,9 @@ describe('Initiate a Request - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1051,13 +1147,13 @@ describe('Initiate a Request - With Files', () => {
cy.wait(2000);
cy.contains('Edit the Request').click();
//cy.contains('Edit the Request').click();
cy.get('input[value="Edit the Request"]').click();
//cy.get('input[value="Edit the Request"]').click();
cy.get('button')
.contains(/^Submit$/)
.contains(/^Edit Request$/)
.click();
@ -1079,8 +1175,8 @@ describe('Initiate a Request - With Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('EDITING INFO : 2021 Newest HP 17.3 inch FHD Laptop, AMD Ryzen 5 5500U 6core(Beat i7-1160G7, up to 4.0GHz),16GB RAM, 1TB PCIe SSD, Bluetooth 4.2, WiFi, HDMI, USB-A&C, Silver\nhttps://www.amazon.com/HP-i7-11G7-Bluetooth-Windows');
cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.contains('Submit the Request').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
.contains(/^Submit$/)
@ -1224,9 +1320,9 @@ describe('Initiate a Request - With Files', () => {
cy.wait(2000);
cy.contains('Cancel the Request').click();
//cy.contains('Cancel the Request').click();
cy.get('input[value="Cancel the Request"]').click();
//cy.get('input[value="Cancel the Request"]').click();
cy.get('button')
.contains(/^Submit$/)

View File

@ -13,6 +13,7 @@ const submitWithUser = (
cy.wait(1000);
cy.log('=======visit find by id : ');
cy.visit('/admin/process-instances/find-by-id');
cy.wait(3000);
cy.get('#process-instance-id-input').type(processInstanceId);
cy.get('button')
@ -53,8 +54,8 @@ const submitWithUser = (
cy.get('.cds--text-area__wrapper').find('#root').clear().type('Providing additional info. Learning and development (L&D) is a function within an organization that is responsible for empowering employees\ growth and developing their knowledge, skills, and capabilities to drive better business performance.');
cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.contains('Submit the Request').click();
//cy.get('input[value="Submit the Request"]').click();
} else {
@ -161,9 +162,9 @@ describe('Learning and Development Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('A L&D strategy should be aligned to the organization\s business strategy and goals with the aim of developing the workforce\s capability and driving business results.');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -269,9 +270,9 @@ describe('Learning and Development Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('The function may be organized centrally, either independently or sitting under human resources (HR); decentralized throughout different business units; or be a hybrid (sometimes referred to as federated) structure.');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -376,9 +377,9 @@ describe('Learning and Development Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('Current and aspiring talent development professionals can enhance their skills with the various professional education courses offered by ATD Education \nhttps://www.aihr.com/blog/learning-and-development/');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -524,9 +525,9 @@ describe('Learning and Development Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('Learning and development is a systematic process to enhance an employee\s skills, knowledge, and competency, resulting in better performance in a work setting. \nhttps://www.aihr.com/blog/learning-and-development/');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -645,9 +646,9 @@ describe('Learning and Development Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('A L&D strategy should be aligned to the organization\s business strategy and goals with the aim of developing the workforce\s capability and driving business results.');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -752,9 +753,9 @@ describe('Learning and Development Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('Learning and development is a systematic process to enhance an employee\s skills, knowledge, and competency, resulting in better performance in a work setting. \nhttps://www.aihr.com/blog/learning-and-development/');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -928,9 +929,9 @@ describe('Learning and Development Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1078,9 +1079,9 @@ describe('Learning and Development Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1227,9 +1228,9 @@ describe('Learning and Development Path - With Files', () => {
.attachFile(['sampletext.txt']);
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1418,9 +1419,9 @@ describe('Learning and Development Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1581,9 +1582,9 @@ describe('Learning and Development Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -1731,9 +1732,9 @@ describe('Learning and Development Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')

View File

@ -13,6 +13,7 @@ const submitWithUser = (
cy.wait(1000);
cy.log('=======visit find by id : ');
cy.visit('/admin/process-instances/find-by-id');
cy.wait(3000);
cy.get('#process-instance-id-input').type(processInstanceId);
cy.get('button')
@ -53,8 +54,8 @@ const submitWithUser = (
cy.get('.cds--text-area__wrapper').find('#root').clear().type('Providing additional info. Coworking tends to fall into two sides: Those that are real-estate-centric (all about selling desks and offices first) while others are community-centric (focused on building community that happens to also have offices)');
cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.contains('Submit the Request').click();
//cy.get('input[value="Submit the Request"]').click();
} else {
@ -173,9 +174,9 @@ describe('Other Fees Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('For professionals working in the professional services, consultant and advisor are often used and fall under common terminology. Consultancy.uk zooms in on this field to get a closer look. \n https://www.consultancy.uk/career/what-is-consulting');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -281,9 +282,9 @@ describe('Other Fees Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('For professionals working in the professional services, consultant and advisor are often used and fall under common terminology. Consultancy.uk zooms in on this field to get a closer look. \n https://www.consultancy.uk/career/what-is-consulting');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -388,9 +389,9 @@ describe('Other Fees Path - Without Files', () => {
cy.get('.cds--text-area__wrapper').find('#root').type('It\s free and easy to post a job. Simply fill in a title, description and budget and competitive bids come within minutes. No job is too big or too small. We\'ve got freelancers for jobs of any size or budget across 1800 skills. No job is too complex.');
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -571,16 +572,16 @@ describe('Other Fees Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
.contains(/^Submit$/)
.click();
cy.wait(9000);
cy.wait(20000);
cy.get('button')
.contains(/^Return to Home$/)
.click();
@ -721,9 +722,9 @@ describe('Other Fees Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')
@ -871,9 +872,9 @@ describe('Other Fees Path - With Files', () => {
cy.wait(2000);
cy.contains('Submit the Request').click();
//cy.contains('Submit the Request').click();
cy.get('input[value="Submit the Request"]').click();
//cy.get('input[value="Submit the Request"]').click();
cy.get('button')