ToolJet/cypress-tests/cypress/support/utils/api.js
2025-03-19 20:25:44 +05:30

72 lines
No EOL
2.7 KiB
JavaScript

import { groupsSelector } from "Selectors/manageGroups";
import { navigateToManageGroups } from 'Support/utils/common';
export const apiRequest = (method, url, body = {}, headers = {}) => {
return cy.request({
method,
url,
body,
headers: {
Authorization: Cypress.env('AUTH_TOKEN'),
"Content-Type": "application/json",
...headers,
},
failOnStatusCode: false
});
};
export const createUser = (userData) => {
return apiRequest("POST", `${Cypress.env('API_URL')}/ext/users`, userData);
};
export const getUser = (userId) => {
return apiRequest("GET", `${Cypress.env('API_URL')}/ext/user/${userId}`);
};
export const getAllUsers = () => {
return apiRequest("GET", `${Cypress.env('API_URL')}/ext/users`);
};
export const updateUser = (userId, userData) => {
return apiRequest("PATCH", `${Cypress.env('API_URL')}/ext/user/${userId}`, userData);
};
export const updateUserRole = (workspaceId, userData) => {
return apiRequest("PUT", `${Cypress.env('API_URL')}/ext/update-user-role/workspace/${workspaceId}`, userData);
}
export const replaceUserWorkspace = (userId, workspaceId, userData) => {
return apiRequest("PATCH", `${Cypress.env('API_URL')}/ext/user/${userId}/workspace/${workspaceId}`, userData);
}
export const replaceUserWorkspacesRelations = (userId, userData) => {
return apiRequest("PUT", `${Cypress.env('API_URL')}/ext/user/${userId}/workspaces`, userData);
}
export const getAllWorkspaces = () => {
return apiRequest("GET", `${Cypress.env('API_URL')}/ext/workspaces`);
}
export const importApp = (workspaceId, appData, headers) => {
return apiRequest("POST", `${Cypress.env('API_URL')}/ext/import/workspace/${workspaceId}/apps`, appData, headers);
}
export const exportApp = (workspaceId, appId, endpoint, headers) => {
return apiRequest("POST", `${Cypress.env('API_URL')}/ext/export/workspace/${workspaceId}/apps/${appId}${endpoint}`, headers);
}
export const allAppsDetails = (workspaceIds) => {
return apiRequest("GET", `${Cypress.env('API_URL')}/ext/workspace/${workspaceIds}/apps`);
}
export const createGroup = (groupName) => {
cy.get(groupsSelector.createNewGroupButton).click();
cy.clearAndType(groupsSelector.groupNameInput, groupName);
cy.get(groupsSelector.createGroupButton).click();
}
export const validateUserInGroup = (email, workspaceSlug, groupName, shouldExist = true) => {
if (workspaceSlug) cy.visit(workspaceSlug);
navigateToManageGroups();
cy.get(groupsSelector.groupLink(groupName)).click();
cy.get(groupsSelector.usersLink).click();
const userRow = `[data-cy="${email}-user-row"]`;
cy.get(userRow).should(shouldExist ? "exist" : "not.exist");
};