ToolJet/cypress/support/commands.js
Ajith KV a71c7b8a7f
fix: failing button widget cypress test (#3238)
* Updated cypress test for button widget

* Updated the custom command for create app

* Added data-cy attributes for elements

* Updated common selectors file
2022-06-15 15:57:03 +05:30

96 lines
No EOL
3.6 KiB
JavaScript

import { commonSelectors } from "Selectors/common";
import { loginSelectors} from "Selectors/login";
import { commonText } from "Texts/common";
Cypress.Commands.add("login",(email,password)=>{
cy.visit("/");
cy.clearAndType(loginSelectors.emailField, email);
cy.clearAndType(loginSelectors.passwordField, password);
cy.get(loginSelectors.signInButton).click();
cy.get(loginSelectors.homePage).should("be.visible");
})
Cypress.Commands.add("clearAndType", (selector, text) => {
cy.get(selector).clear().type(text);
});
Cypress.Commands.add("verifyToastMessage", (selector,message) => {
cy.get(selector)
.should("be.visible")
.should("have.text", message);
})
Cypress.Commands.add("appLogin",()=>{
cy.request({
url: "http://localhost:3000/api/authenticate",
method: "POST",
body:{
email: "[email protected]", password: "password"
}
}).its('body').then(res=> localStorage.setItem('currentUser',JSON.stringify({"id":res.id,"auth_token":res.auth_token,"email":res.email,"first_name":res.first_name,"last_name":res.last_name,"organization_id":res.organization_id,"organization":res.organization,"admin":true,"group_permissions":[{"id":res.id,"organization_id":res.organization_id,"group":res.group,"app_create":false,"app_delete":false,"folder_create":false,},{"id":res.id,"organization_id":res.organization_id,"group":res.group,"app_create":true,"app_delete":true,"folder_create":true,}],"app_group_permissions":[]})))
cy.visit('/');
})
Cypress.Commands.add('createApp',(appName) => {
cy.get('body').then(($title => {
if ($title.text().includes('You can get started by creating a new application or by creating an application using a template in ToolJet Library.')) {
cy.get(commonSelectors.emptyAppCreateButton).click();
cy.get(commonSelectors.createButton).click();
cy.wait(1000);
cy.get('body').then($el =>{
if($el.text().includes('Skip')){
cy.get(commonSelectors.skipButton).click();
}
else{
cy.log("instructions modal is skipped ");
}
});
cy.clearAndType(commonSelectors.appNameInput, appName);
cy.get(commonSelectors.backButton).click();
}
else{
cy.get(commonSelectors.appCreateButton).click();
cy.get(commonSelectors.createButton).click();
cy.wait(1000);
cy.get('body').then($el =>{
if($el.text().includes('Skip')){
cy.get(commonSelectors.skipButton).click();
}
else{
cy.log("instructions modal is skipped ");
}
});
cy.clearAndType(commonSelectors.appNameInput, appName);
cy.get(commonSelectors.backButton).click();
}
}))
});
Cypress.Commands.add("dragAndDropWidget" , (widgetName, position = "top") => {
const dataTransfer = new DataTransfer();
cy.get(commonSelectors.searchField).type(widgetName);
cy.get(commonSelectors.firstWidget).trigger("dragstart", { dataTransfer }, { force: true });
cy.get(commonSelectors.canvas).trigger("drop", position, { dataTransfer, force: true });
cy.get(commonSelectors.autoSave, { timeout: 9000 }).should("have.text", commonText.autoSave);
});
Cypress.Commands.add("appUILogin",()=>{
cy.visit("/");
cy.clearAndType(loginSelectors.emailField, '[email protected]');
cy.clearAndType(loginSelectors.passwordField, 'password');
cy.get(loginSelectors.signInButton).click();
cy.get(commonSelectors.homePageLogo).should("be.visible");
cy.wait(1000)
cy.get('body').then($el =>{
if ($el.text().includes('Skip')){
cy.get(commonSelectors.skipInstallationModal).click();
}
else{
cy.log("Installation is Finished")
}
})
})