Skip to content

Commit

Permalink
moving repeated things to commands
Browse files Browse the repository at this point in the history
  • Loading branch information
dangunter committed Jun 18, 2024
1 parent be17341 commit 5611d36
Show file tree
Hide file tree
Showing 4 changed files with 82 additions and 206 deletions.
39 changes: 9 additions & 30 deletions electron/ui/cypress/e2e/DisplayDataRounding.cy.js
Original file line number Diff line number Diff line change
@@ -1,61 +1,40 @@
describe('Display Data Rounding', () => {
it('test that values rounded to and displayed as 0 retain their original value', () => {
// XXX: This doesn't really test anything different
// XXX: because the flowsheet was changed.

let sc_count = 0

//load webpage
// Load webpage
cy.visit('/')
cy.screenshot(sc_count+'_loaded homepage')
sc_count+=1
cy.wait (5000)

//click on all flowsheets
// cy.findByText("All Flowsheets").click()
// cy.screenshot(sc_count+'_clicked all flowsheets')
// sc_count+=1

const set_flowrate = () => {
let input_textbox_name = "Water mass flowrate";
let input_textbox = cy.findByRole('textbox', { name: input_textbox_name});
input_textbox.click({force:true});
input_textbox = cy.findByRole('textbox', { name: input_textbox_name});
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}0.96');
cy.wait(500);
}

//click flowsheet and wait for api response
// Click flowsheet and wait for response
var flowsheet_name = "RO with energy recovery flowsheet"
cy.intercept({
method: "GET",
url: "http://localhost:8001/flowsheets/**",
}).as("loadFlowsheet");
// cy.findByRole('link', { name: flowsheet_name}).click()
cy.findByText(flowsheet_name).click()
cy.wait("@loadFlowsheet");
cy.screenshot(sc_count+'_loaded flowsheet')
sc_count+=1
cy.wait (5000)
//click on update and wait for api response
// cy.intercept({
// method: "POST",
// url: "http://localhost:8001/flowsheets/**",
// }).as("saveChanges");
// cy.findAllByRole('button', { name: /update flowsheet/i}).eq(0).click()
// cy.wait("@saveChanges")
// cy.screenshot(sc_count+'_updated')
// sc_count+=1

set_flowrate();

//click on solve and wait for api response
// Click on solve and wait for response
cy.intercept({
method: "POST",
url: "http://localhost:8001/flowsheets/**",
}).as("run");
cy.findAllByRole('button', { name: /run/i}).eq(0).click()
cy.findAllByRole('button', {name: /run/i}).eq(0).click()
cy.wait("@run").its('response.statusCode').should('eq', 200);
cy.screenshot(sc_count+'_solved')
sc_count+=1

// XXX: Test something??

cy.screenshot(sc_count+'_end-test')
sc_count+=1
})
Expand Down
122 changes: 28 additions & 94 deletions electron/ui/cypress/e2e/FlowsheetOutput.cy.js
Original file line number Diff line number Diff line change
@@ -1,123 +1,57 @@
describe('Flowsheet Output Test', () => {
it('test output page when valid input is solved', () => {
let sc_count = 0
let sc_count = 1

//load webpage
cy.visit('/')
cy.screenshot(sc_count+'_loaded homepage')
sc_count+=1
cy.load_homepage()
cy.load_ro_flowsheet()

//click on all flowsheets
// cy.findByText("All Flowsheets").click()
cy.set_ro_flowrate('0.96')
cy.set_ro_flowrate('0.96')
cy.screenshot(sc_count + '_input1')
sc_count += 1

//click flowsheet and wait for api response
var flowsheet_name = "RO with energy recovery flowsheet"
cy.intercept({
method: "GET",
url: "http://localhost:8001/flowsheets/**",
}).as("loadFlowsheet");
// cy.findByRole('link', { name: flowsheet_name}).click()
cy.findByText(flowsheet_name).click()
cy.wait("@loadFlowsheet");
cy.screenshot(sc_count+'_loaded flowsheet')
sc_count+=1

//enter valid value for recovery rate twice to ensure it registers
// var input_textbox_name = "COD concentration"
var input_textbox_name = "Water mass flowrate"
var input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.click({force:true})
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}0.96')
cy.wait(500)
var input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.click({force:true})
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}0.96')
cy.screenshot(sc_count+'_input1')
sc_count+=1

//click on save and wait for api response
// cy.intercept({
// method: "POST",
// url: "http://localhost:8001/flowsheets/**",
// }).as("saveChanges");
// cy.findAllByRole('button', { name: /update flowsheet/i}).eq(0).click()
// cy.wait("@saveChanges");
// cy.screenshot(sc_count+'_saved1')
// sc_count+=1

//need to do it twice to ensure changes are saved
//enter valid value for recovery rate
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.click({force:true})
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}0.96')
cy.wait(500)
var input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.click({force:true})
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}0.96')
cy.screenshot(sc_count+'_input2')
sc_count+=1

//click on save and wait for api response
// cy.intercept({
// method: "POST",
// url: "http://localhost:8001/flowsheets/**",
// }).as("saveChanges");
// cy.findAllByRole('button', { name: /update flowsheet/i}).eq(0).click()
// cy.wait("@saveChanges");
// cy.screenshot(sc_count+'_saved2')
// sc_count+=1

//click on solve and wait for api response
cy.intercept({
method: "POST",
url: "http://localhost:8001/flowsheets/**",
}).as("run");
cy.findAllByRole('button', { name: /run/i}).eq(0).click()
cy.wait("@run");
cy.screenshot(sc_count+"solved")
sc_count+=1
cy.set_ro_flowrate('0.96')
cy.set_ro_flowrate('0.96')
cy.screenshot(sc_count + '_input2')
sc_count += 1

//find output categories
// cy.findByRole('button', {name: /feed/i})
// cy.findByRole('button', {name: ""})
cy.solve_flowsheet()
cy.screenshot(sc_count + "_solved")
sc_count += 1

//click save configuration button
// Click save configuration button
cy.findByRole('button', {name: /save configuration/i}).click()
cy.wait(1000)
cy.screenshot(sc_count+'_pre saveConfig')
sc_count+=1
cy.screenshot(sc_count + '_pre saveConfig')
sc_count += 1

//clear preset name and enter new name
// Clear preset name and enter new name
cy.wait(1000)
cy.get('.MuiInput-input').should('be.visible')
cy.get('.MuiInput-input', { timeout: 10000 }).clear({ force: true })
cy.get('.MuiInput-input', { timeout: 10000 }).type('new_test_configuration', { force: true })
cy.screenshot(sc_count+'_saveConfig')
sc_count+=1
cy.get('.MuiInput-input', {timeout: 10000}).clear({force: true})
cy.get('.MuiInput-input', {timeout: 10000}).type('new_test_configuration', {force: true})
cy.screenshot(sc_count + '_saveConfig')
sc_count += 1

//click on save (config) and wait for api response
// Click on save (config) and wait for api response
cy.intercept({
method: "POST",
url: "http://localhost:8001/flowsheets/**",
}).as("saveConfig");
cy.findByRole('button', {name: /save/i}).click()
cy.wait("@saveConfig");
cy.screenshot(sc_count+'_saved config')
sc_count+=1
cy.screenshot(sc_count + '_saved config')
sc_count += 1

//click compare tab
// Click compare tab
cy.findByRole('tab', {name: /compare/i}).click()
cy.wait(5000)

//verify that new name is shown in comparison table
// Verify that new name is shown in comparison table
// cy.findAllByRole('button', {name: /new_test_configuration/i})
cy.findAllByRole('tabpanel', {name: /compare/i})

cy.screenshot(sc_count+'_end-test')
cy.screenshot(sc_count + '_end-test')
})

})
91 changes: 10 additions & 81 deletions electron/ui/cypress/e2e/InvalidFlowsheetInput.cy.js
Original file line number Diff line number Diff line change
@@ -1,90 +1,19 @@
describe('Invalid Input Test', () => {
it('test negative input for recovery rate', () => {
let sc_count = 0
let sc_count = 1;

//load webpage
cy.visit('/')
cy.screenshot(sc_count+'_loaded homepage')
sc_count+=1
cy.load_homepage();
cy.load_ro_flowsheet();

//click on all flowsheets
// cy.findByText("All Flowsheets").click()

//click flowsheet and wait for api response
var flowsheet_name = "RO with energy recovery flowsheet"
cy.intercept({
method: "GET",
url: "http://localhost:8001/flowsheets/**",
}).as("loadFlowsheet");
// cy.findByRole('link', { name: flowsheet_name}).click()
cy.findByText(flowsheet_name).click()
cy.wait("@loadFlowsheet");
cy.screenshot(sc_count+'_loaded flowsheet')
sc_count+=1
cy.set_ro_flowrate('dfas');
cy.screenshot(sc_count + '_input1');
sc_count += 1;

//enter negative value for recovery rate twice to ensure it is entered
var input_textbox_name = "Water mass flowrate"
var input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.click({force:true})
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}dfas')
cy.wait(500)
var input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.click({force:true})
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}dfas')
cy.screenshot(sc_count+'_input1')
sc_count+=1
cy.set_ro_flowrate(cy, '-10');
cy.screenshot(sc_count + '_input2');
sc_count += 1;

//click on save and wait for api response
// cy.intercept({
// method: "POST",
// url: "http://localhost:8001/flowsheets/**",
// }).as("saveChanges");
// cy.findAllByRole('button', { name: /save/i}).eq(0).click()
// cy.wait("@saveChanges");
// cy.screenshot(sc_count+'_saved1')
// sc_count+=1

// do it all twice to ensure it goes through
//enter negative value for recovery rate
var input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.click({force:true})
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}dfas')
cy.wait(500)
var input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.click({force:true})
input_textbox = cy.findByRole('textbox', { name: input_textbox_name})
input_textbox.type('1{backspace}{backspace}{backspace}{backspace}dfas')
cy.screenshot(sc_count+'_negative, invalid input2')
sc_count+=1

//click on save and wait for api response
// cy.intercept({
// method: "POST",
// url: "http://localhost:8001/flowsheets/**",
// }).as("saveChanges");
// cy.findAllByRole('button', { name: /update flowsheet/i}).eq(0).click()
// cy.wait("@saveChanges").its('response.statusCode').should('eq', 400)
// cy.screenshot(sc_count+'_saved1')
// sc_count+=1

// //click on solve and wait for api response
// cy.intercept({
// method: "GET",
// url: "http://localhost:8001/flowsheets/**",
// }).as("solve");
// cy.findAllByRole('button', { name: /solve/i}).eq(0).click()
// cy.wait("@solve");
// cy.screenshot(sc_count+'_solved')
// sc_count+=1

// //find error message
// cy.findByRole('alert')

cy.screenshot(sc_count+'_end-test')
sc_count+=1
cy.screenshot(sc_count + '_end-test');
})

})
36 changes: 35 additions & 1 deletion electron/ui/cypress/support/commands.js
Original file line number Diff line number Diff line change
@@ -1 +1,35 @@
import "@testing-library/cypress/add-commands"
import '@testing-library/cypress/add-commands';

Cypress.Commands.add('load_homepage', () => {
cy.visit('/')
cy.screenshot('loaded homepage')
})

Cypress.Commands.add('load_ro_flowsheet', () => {
const flowsheet_name = 'RO with energy recovery flowsheet';
cy.intercept({
method: 'GET',
url: 'http://localhost:8001/flowsheets/**',
}).as('loadFlowsheet');
cy.findByText(flowsheet_name).click();
cy.wait('@loadFlowsheet');
cy.screenshot('loaded flowsheet');
})

Cypress.Commands.add('set_ro_flowrate', (value) => {
let input_textbox_name = 'Water mass flowrate';
let input_textbox = cy.findByRole('textbox', {name: input_textbox_name});
input_textbox.click({force:true});
input_textbox = cy.findByRole('textbox', {name: input_textbox_name});
input_textbox.type('{backspace}{backspace}{backspace}{backspace}' + value);
cy.wait(500);
})

Cypress.Commands.add('solve_flowsheet', () => {
cy.intercept({
method: 'POST',
url: 'http://localhost:8001/flowsheets/**',
}).as('run');
cy.findAllByRole('button', {name: /run/i}).eq(0).click();
cy.wait('@run');
})

0 comments on commit 5611d36

Please sign in to comment.