mirror of
https://github.com/ToolJet/ToolJet
synced 2026-04-21 21:47:17 +00:00
276 lines
7.3 KiB
JavaScript
276 lines
7.3 KiB
JavaScript
Cypress.Commands.add(
|
|
"apiLogin",
|
|
(
|
|
userEmail = "[email protected]",
|
|
userPassword = "password",
|
|
workspaceId = "",
|
|
redirection = "/"
|
|
) => {
|
|
cy.request({
|
|
url: `${Cypress.env("server_host")}/api/authenticate/${workspaceId}`,
|
|
method: "POST",
|
|
body: {
|
|
email: userEmail,
|
|
password: userPassword,
|
|
redirectTo: redirection
|
|
},
|
|
})
|
|
.its("body")
|
|
.then((res) => {
|
|
Cypress.env("workspaceId", res.current_organization_id);
|
|
Cypress.log({
|
|
name: "Api login",
|
|
displayName: "LOGIN: ",
|
|
message: `: Success`,
|
|
});
|
|
});
|
|
}
|
|
);
|
|
|
|
Cypress.Commands.add("apiCreateGDS", (url, name, kind, options) => {
|
|
cy.getCookie("tj_auth_token").then((cookie) => {
|
|
cy.request(
|
|
{
|
|
method: "POST",
|
|
url: url,
|
|
headers: {
|
|
"Tj-Workspace-Id": Cypress.env("workspaceId"),
|
|
Cookie: `tj_auth_token=${cookie.value}`,
|
|
},
|
|
body: {
|
|
name: name,
|
|
kind: kind,
|
|
options: options,
|
|
scope: "global",
|
|
},
|
|
},
|
|
{ log: false }
|
|
).then((response) => {
|
|
{
|
|
log: false;
|
|
}
|
|
expect(response.status).to.equal(201);
|
|
Cypress.env(`${name}-id`, response.body.id);
|
|
|
|
Cypress.log({
|
|
name: "Create Data Source",
|
|
displayName: "Data source created",
|
|
message: `:\nDatasource: '${kind}',\nName: '${name}'`,
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
Cypress.Commands.add("apiCreateApp", (appName = "testApp") => {
|
|
cy.window({ log: false }).then((win) => {
|
|
win.localStorage.setItem("walkthroughCompleted", "true");
|
|
});
|
|
cy.getCookie("tj_auth_token", { log: false }).then((cookie) => {
|
|
Cypress.env("authToken", `tj_auth_token=${cookie.value}`);
|
|
cy.request({
|
|
method: "POST",
|
|
url: "http://localhost:3000/api/apps",
|
|
headers: {
|
|
"Tj-Workspace-Id": Cypress.env("workspaceId"),
|
|
Cookie: `tj_auth_token = ${cookie.value}`,
|
|
},
|
|
body: {
|
|
created_at: "",
|
|
id: "",
|
|
is_maintenance_on: false,
|
|
is_public: null,
|
|
name: appName,
|
|
organization_id: "",
|
|
updated_at: "",
|
|
user_id: "",
|
|
},
|
|
}).then((response) => {
|
|
{
|
|
log: false;
|
|
}
|
|
expect(response.status).to.equal(201);
|
|
Cypress.env("appId", response.allRequestResponses[0]["Response Body"].id);
|
|
Cypress.log({
|
|
name: "App create",
|
|
displayName: "APP CREATED",
|
|
message: `: ${response.body.name}`,
|
|
});
|
|
});
|
|
});
|
|
});
|
|
|
|
Cypress.Commands.add("apiDeleteApp", (appId = Cypress.env("appId")) => {
|
|
cy.request(
|
|
{
|
|
method: "DELETE",
|
|
url: `http://localhost:3000/api/apps/${Cypress.env("appId")}`,
|
|
headers: {
|
|
"Tj-Workspace-Id": Cypress.env("workspaceId"),
|
|
Cookie: Cypress.env("authToken"),
|
|
},
|
|
},
|
|
{ log: false }
|
|
).then((response) => {
|
|
expect(response.status).to.equal(200);
|
|
Cypress.log({
|
|
name: "App Delete",
|
|
displayName: "APP DELETED",
|
|
message: `: ${Cypress.env("appId")}`,
|
|
});
|
|
});
|
|
});
|
|
|
|
Cypress.Commands.add(
|
|
"openApp",
|
|
(
|
|
workspaceId = Cypress.env("workspaceId"),
|
|
appId = Cypress.env("appId"),
|
|
componentSelector = "[data-cy='empty-editor-text']"
|
|
) => {
|
|
cy.window({ log: false }).then((win) => {
|
|
win.localStorage.setItem("walkthroughCompleted", "true");
|
|
});
|
|
cy.visit(`/${workspaceId}/apps/${appId}`);
|
|
cy.get(componentSelector, { timeout: 10000 });
|
|
}
|
|
);
|
|
|
|
Cypress.Commands.add("apiCreateWorkspace", (workspaceName, workspaceSlug) => {
|
|
cy.getCookie("tj_auth_token").then((cookie) => {
|
|
cy.request(
|
|
{
|
|
method: "POST",
|
|
url: "http://localhost:3000/api/organizations",
|
|
headers: {
|
|
"Tj-Workspace-Id": Cypress.env("workspaceId"),
|
|
Cookie: `tj_auth_token=${cookie.value}`,
|
|
},
|
|
body: {
|
|
name: workspaceName,
|
|
slug: workspaceSlug,
|
|
},
|
|
},
|
|
{ log: false }
|
|
).then((response) => {
|
|
expect(response.status).to.equal(201);
|
|
});
|
|
});
|
|
});
|
|
|
|
Cypress.Commands.add("logoutApi", () => {
|
|
cy.getCookie("tj_auth_token").then((cookie) => {
|
|
cy.request(
|
|
{
|
|
method: "GET",
|
|
url: "http://localhost:3000/api/logout",
|
|
headers: {
|
|
"Tj-Workspace-Id": Cypress.env("workspaceId"),
|
|
Cookie: `tj_auth_token=${cookie.value}`,
|
|
},
|
|
},
|
|
{ log: false }
|
|
).then((response) => {
|
|
expect(response.status).to.equal(200);
|
|
});
|
|
});
|
|
});
|
|
|
|
Cypress.Commands.add("userInviteApi", (userName, userEmail) => {
|
|
cy.getCookie("tj_auth_token").then((cookie) => {
|
|
cy.request(
|
|
{
|
|
method: "POST",
|
|
url: "http://localhost:3000/api/organization_users",
|
|
headers: {
|
|
"Tj-Workspace-Id": Cypress.env("workspaceId"),
|
|
Cookie: `tj_auth_token=${cookie.value}`,
|
|
},
|
|
body: {
|
|
first_name: userName,
|
|
email: userEmail,
|
|
groups: [],
|
|
role: "end-user",
|
|
},
|
|
},
|
|
{ log: false }
|
|
).then((response) => {
|
|
expect(response.status).to.equal(201);
|
|
});
|
|
});
|
|
});
|
|
|
|
Cypress.Commands.add("addQueryApi", (queryName, query, dataQueryId) => {
|
|
cy.getCookie("tj_auth_token").then((cookie) => {
|
|
const headers = {
|
|
"Tj-Workspace-Id": Cypress.env("workspaceId"),
|
|
Cookie: `tj_auth_token=${cookie.value}`,
|
|
};
|
|
cy.request({
|
|
method: "PATCH",
|
|
url: `http://localhost:3000/api/data_queries/${dataQueryId}`,
|
|
headers: headers,
|
|
body: {
|
|
name: queryName,
|
|
options: {
|
|
mode: "sql",
|
|
transformationLanguage: "javascript",
|
|
enableTransformation: false,
|
|
query: query,
|
|
},
|
|
},
|
|
}).then((patchResponse) => {
|
|
expect(patchResponse.status).to.equal(200);
|
|
});
|
|
});
|
|
});
|
|
|
|
Cypress.Commands.add(
|
|
"apiAddQueryToApp",
|
|
(queryName, options, dsName, dsKind) => {
|
|
cy.getCookie("tj_auth_token", { log: false }).then((cookie) => {
|
|
const authToken = `tj_auth_token=${cookie.value}`;
|
|
const workspaceId = Cypress.env("workspaceId");
|
|
const appId = Cypress.env("appId");
|
|
|
|
cy.request({
|
|
method: "GET",
|
|
url: `http://localhost:3000/api/apps/${appId}`,
|
|
headers: {
|
|
"Tj-Workspace-Id": workspaceId,
|
|
Cookie: `${authToken}; app_id=${appId}`,
|
|
},
|
|
body: {},
|
|
}).then((appResponse) => {
|
|
const editingVersionId = appResponse.body.editing_version.id;
|
|
Cypress.env("version-id", editingVersionId);
|
|
|
|
cy.request({
|
|
method: "POST",
|
|
url: "http://localhost:3000/api/data_queries",
|
|
headers: {
|
|
"Content-Type": "application/json",
|
|
Cookie: authToken,
|
|
"tj-workspace-id": workspaceId,
|
|
},
|
|
body: {
|
|
app_id: appId,
|
|
app_version_id: editingVersionId,
|
|
name: queryName,
|
|
kind: dsKind,
|
|
options: options,
|
|
data_source_id: dsName != null ? Cypress.env(`${dsName}-id`) : null,
|
|
plugin_id: null,
|
|
},
|
|
}).then((queryResponse) => {
|
|
expect(queryResponse.status).to.equal(201);
|
|
Cypress.log({
|
|
name: "Created queery",
|
|
displayName: "QUERY CREATED",
|
|
message: `: ${queryName}: ${dsKind}`,
|
|
});
|
|
});
|
|
});
|
|
});
|
|
}
|
|
);
|
|
|