mirror of
https://github.com/ToolJet/ToolJet
synced 2026-05-23 17:08:34 +00:00
Merge pull request #12691 from ToolJet/test/add-rest-api-all-method
Added method for Rest API basic functionality
This commit is contained in:
commit
b6eb470b19
41 changed files with 304 additions and 194 deletions
13
.github/workflows/cypress-marketplace.yml
vendored
13
.github/workflows/cypress-marketplace.yml
vendored
|
|
@ -14,9 +14,9 @@ jobs:
|
|||
Cypress-Marketplace:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-cypress') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ce-cypress-marketplace') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ee-cypress-marketplace')
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-cypress') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ce-cypress-marketplace') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-ee-cypress-marketplace')
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
|
|
@ -159,13 +159,12 @@ jobs:
|
|||
"password": "password"
|
||||
}'
|
||||
|
||||
|
||||
- name: Create Cypress environment file
|
||||
id: create-json
|
||||
uses: jsdaniell/create-json@1.1.2
|
||||
with:
|
||||
name: "cypress.env.json"
|
||||
json: ${{ secrets.CYPRESS_SECRETS }}
|
||||
json: ${{ secrets.CYPRESS_SECRETS_MARKETPLACE }}
|
||||
dir: "./cypress-tests"
|
||||
|
||||
- name: Marketplace
|
||||
|
|
@ -185,8 +184,8 @@ jobs:
|
|||
Cypress-Marketplace-Subpath:
|
||||
runs-on: ubuntu-22.04
|
||||
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-cypress') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-cypress-marketplace-subpath')
|
||||
if: contains(github.event.pull_request.labels.*.name, 'run-cypress') ||
|
||||
contains(github.event.pull_request.labels.*.name, 'run-cypress-marketplace-subpath')
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
|
|
|
|||
|
|
@ -167,6 +167,10 @@ Cypress.Commands.add("deleteApp", (appName) => {
|
|||
.click();
|
||||
cy.get(commonSelectors.deleteAppOption).click();
|
||||
cy.get(commonSelectors.buttonSelector(commonText.modalYesButton)).click();
|
||||
cy.verifyToastMessage(
|
||||
commonSelectors.toastMessage,
|
||||
commonText.appDeletedToast
|
||||
);
|
||||
cy.wait("@appDeleted");
|
||||
});
|
||||
|
||||
|
|
@ -223,9 +227,9 @@ Cypress.Commands.add(
|
|||
.invoke("text")
|
||||
.then((text) => {
|
||||
cy.wrap(subject).realType(createBackspaceText(text)),
|
||||
{
|
||||
delay: 0,
|
||||
};
|
||||
{
|
||||
delay: 0,
|
||||
};
|
||||
});
|
||||
}
|
||||
);
|
||||
|
|
@ -398,7 +402,7 @@ Cypress.Commands.add("defaultWorkspaceLogin", () => {
|
|||
|
||||
// cy.intercept("GET", API_ENDPOINT).as("library_apps");
|
||||
cy.visit("/my-workspace");
|
||||
cy.wait(2000)
|
||||
cy.wait(2000);
|
||||
cy.get(commonSelectors.homePageLogo, { timeout: 10000 });
|
||||
// cy.wait("@library_apps");
|
||||
});
|
||||
|
|
@ -428,7 +432,6 @@ Cypress.Commands.add(
|
|||
}
|
||||
);
|
||||
|
||||
|
||||
Cypress.Commands.add("releaseApp", () => {
|
||||
if (Cypress.env("environment") !== "Community") {
|
||||
cy.get(commonEeSelectors.promoteButton).click();
|
||||
|
|
@ -513,13 +516,58 @@ Cypress.Commands.overwrite(
|
|||
}
|
||||
);
|
||||
|
||||
Cypress.Commands.add("installMarketplacePlugin", (pluginName) => {
|
||||
const MARKETPLACE_URL = `${Cypress.config("baseUrl")}/integrations/marketplace`;
|
||||
|
||||
cy.visit(MARKETPLACE_URL);
|
||||
cy.wait(1000);
|
||||
|
||||
cy.get('[data-cy="-list-item"]').eq(0).click();
|
||||
cy.wait(1000);
|
||||
|
||||
cy.get("body").then(($body) => {
|
||||
if ($body.find(".plugins-card").length === 0) {
|
||||
cy.log("No plugins found, proceeding to install...");
|
||||
installPlugin(pluginName);
|
||||
} else {
|
||||
cy.get(".plugins-card").then(($cards) => {
|
||||
const isInstalled = $cards.toArray().some((card) => {
|
||||
return (
|
||||
Cypress.$(card)
|
||||
.find(".font-weight-medium.text-capitalize")
|
||||
.text()
|
||||
.trim() === pluginName
|
||||
);
|
||||
});
|
||||
|
||||
if (isInstalled) {
|
||||
cy.log(`${pluginName} is already installed. Skipping installation.`);
|
||||
cy.get(commonSelectors.globalDataSourceIcon).click();
|
||||
} else {
|
||||
installPlugin(pluginName);
|
||||
cy.get(commonSelectors.globalDataSourceIcon).click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function installPlugin(pluginName) {
|
||||
cy.get('[data-cy="-list-item"]').eq(1).click();
|
||||
cy.wait(1000);
|
||||
|
||||
cy.contains(".plugins-card", pluginName).within(() => {
|
||||
cy.get(".marketplace-install").click();
|
||||
cy.wait(1000);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Cypress.Commands.add("verifyElement", (selector, text, eqValue) => {
|
||||
const element =
|
||||
eqValue !== undefined ? cy.get(selector).eq(eqValue) : cy.get(selector);
|
||||
element.should("be.visible").and("have.text", text);
|
||||
});
|
||||
|
||||
|
||||
Cypress.Commands.add("getAppId", (appName) => {
|
||||
cy.task("dbConnection", {
|
||||
dbconfig: Cypress.env("app_db"),
|
||||
|
|
@ -529,3 +577,33 @@ Cypress.Commands.add("getAppId", (appName) => {
|
|||
return appId;
|
||||
});
|
||||
});
|
||||
|
||||
Cypress.Commands.add("uninstallMarketplacePlugin", (pluginName) => {
|
||||
const MARKETPLACE_URL = `${Cypress.config("baseUrl")}/integrations/marketplace`;
|
||||
|
||||
cy.visit(MARKETPLACE_URL);
|
||||
cy.wait(1000);
|
||||
|
||||
cy.get('[data-cy="-list-item"]').eq(0).click();
|
||||
cy.wait(1000);
|
||||
|
||||
cy.get(".plugins-card").each(($card) => {
|
||||
cy.wrap($card)
|
||||
.find(".font-weight-medium.text-capitalize")
|
||||
.invoke("text")
|
||||
.then((text) => {
|
||||
if (text.trim() === pluginName) {
|
||||
cy.wrap($card).find(".link-primary").contains("Remove").click();
|
||||
cy.wait(1000);
|
||||
|
||||
cy.get('[data-cy="delete-plugin-title"]').should("be.visible");
|
||||
cy.get('[data-cy="yes-button"]').click();
|
||||
cy.wait(2000);
|
||||
|
||||
cy.log(`${pluginName} has been successfully uninstalled.`);
|
||||
} else {
|
||||
cy.log(`${pluginName} is not installed. Skipping uninstallation.`);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ export const postgreSqlText = {
|
|||
|
||||
allDataSources: () => {
|
||||
return Cypress.env("marketplace_action")
|
||||
? "All data sources (44)"
|
||||
: "All data sources (45)";
|
||||
? "All data sources (45)"
|
||||
: "All data sources (43)";
|
||||
},
|
||||
commonlyUsed: "Commonly used (5)",
|
||||
allDatabase: () => {
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ describe("Add all Data sources to app", () => {
|
|||
cy.apiLogin();
|
||||
});
|
||||
|
||||
it("Should verify global data source page", () => {
|
||||
it.skip("Should verify global data source page", () => {
|
||||
cy.apiCreateWorkspace(data.workspaceName, data.workspaceSlug);
|
||||
cy.visit(`${data.workspaceSlug}`);
|
||||
|
||||
|
|
@ -87,7 +87,7 @@ describe("Add all Data sources to app", () => {
|
|||
);
|
||||
});
|
||||
|
||||
it("Should add all data sources in data source page", () => {
|
||||
it.skip("Should add all data sources in data source page", () => {
|
||||
cy.visit(`${data.workspaceSlug}`);
|
||||
|
||||
dataSources.forEach((dsName) => {
|
||||
|
|
@ -109,7 +109,7 @@ describe("Add all Data sources to app", () => {
|
|||
});
|
||||
});
|
||||
|
||||
it("Should add all data sources in the app", () => {
|
||||
it.skip("Should add all data sources in the app", () => {
|
||||
cy.visit(`${data.workspaceSlug}`);
|
||||
cy.get(commonSelectors.dashboardIcon).click();
|
||||
cy.get(commonSelectors.appCreateButton).click();
|
||||
|
|
@ -135,7 +135,7 @@ describe("Add all Data sources to app", () => {
|
|||
});
|
||||
});
|
||||
|
||||
it("Should install all makretplace plugins and add them into the app", () => {
|
||||
it.skip("Should install all makretplace plugins and add them into the app", () => {
|
||||
cy.visit(`${data.workspaceSlug}`);
|
||||
const dataSourcesMarketplace = [
|
||||
"Plivo",
|
||||
|
|
@ -189,12 +189,15 @@ describe("Add all Data sources to app", () => {
|
|||
cy.wrap(dataSourcesMarketplace).each((dsName) => {
|
||||
cy.get(commonSelectors.globalDataSourceIcon).click();
|
||||
selectAndAddDataSource("databases", dsName, dsName);
|
||||
cy.wait(500);
|
||||
cy.wait(1000);
|
||||
});
|
||||
|
||||
cy.get(commonSelectors.dashboardIcon).click();
|
||||
cy.get(commonSelectors.appCreateButton).click();
|
||||
cy.get(commonSelectors.appNameInput).click().type(data.dsNamefake1);
|
||||
cy.get(commonSelectors.dashboardIcon).should("be.visible").click();
|
||||
cy.get(commonSelectors.appCreateButton).should("be.visible").click();
|
||||
cy.get(commonSelectors.appNameInput)
|
||||
.should("be.visible")
|
||||
.click()
|
||||
.type(data.dsNamefake1);
|
||||
cy.get(commonSelectors.createAppButton).click();
|
||||
cy.skipWalkthrough();
|
||||
|
||||
|
|
@ -203,7 +206,7 @@ describe("Add all Data sources to app", () => {
|
|||
cy.get(".css-4e90k9").type(
|
||||
`cypress-${cyParamName(dsName)}-${cyParamName(dsName)}`
|
||||
);
|
||||
cy.wait(500);
|
||||
cy.wait(1000);
|
||||
|
||||
cy.contains(
|
||||
`[id*="react-select-"]`,
|
||||
|
|
@ -212,7 +215,7 @@ describe("Add all Data sources to app", () => {
|
|||
.should("be.visible")
|
||||
.click();
|
||||
|
||||
cy.wait(500);
|
||||
cy.wait(1000);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -19,13 +19,14 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
data.dsName1 = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
data.queryName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source Airtable", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on connection AirTable form", () => {
|
||||
|
|
@ -199,7 +200,7 @@ describe("Data source Airtable", () => {
|
|||
cy.get('[data-cy="show-ds-popover-button"]').click();
|
||||
cy.get(".css-4e90k9").type(`${data.dsName}`);
|
||||
cy.contains(`[id*="react-select-"]`, data.dsName).click();
|
||||
cy.get('[data-cy="query-rename-input"]').clear().type(data.dsName1);
|
||||
cy.get('[data-cy="query-rename-input"]').clear().type(data.queryName);
|
||||
|
||||
cy.get(airTableSelector.operationSelectDropdown)
|
||||
.click()
|
||||
|
|
@ -225,7 +226,7 @@ describe("Data source Airtable", () => {
|
|||
cy.get(dataSourceSelector.queryPreviewButton).click();
|
||||
cy.verifyToastMessage(
|
||||
commonSelectors.toastMessage,
|
||||
`Query (${data.dsName1}) completed.`
|
||||
`Query (${data.queryName}) completed.`
|
||||
);
|
||||
|
||||
// Verify Delete record operation
|
||||
|
|
@ -277,7 +278,7 @@ describe("Data source Airtable", () => {
|
|||
cy.get(dataSourceSelector.queryPreviewButton).click();
|
||||
cy.verifyToastMessage(
|
||||
commonSelectors.toastMessage,
|
||||
`Query (${data.dsName1}) completed.`
|
||||
`Query (${data.queryName}) completed.`
|
||||
);
|
||||
deleteAppandDatasourceAfterExecution(
|
||||
data.dsName,
|
||||
|
|
@ -20,15 +20,15 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source amazon athena", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on amazon athena connection form", () => {
|
||||
it.skip("Should verify elements on amazon athena connection form", () => {
|
||||
const Accesskey = Cypress.env("amazonathena_accessKey");
|
||||
const Secretkey = Cypress.env("amazonathena_secretKey");
|
||||
const DbName = Cypress.env("amazonathena_DbName");
|
||||
|
|
@ -97,7 +97,7 @@ describe("Data source amazon athena", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-Amazon-Athena`);
|
||||
});
|
||||
|
||||
it("Should verify the functionality of amazon athena connection form.", () => {
|
||||
it.skip("Should verify the functionality of amazon athena connection form.", () => {
|
||||
const Accesskey = Cypress.env("amazonathena_accessKey");
|
||||
const Secretkey = Cypress.env("amazonathena_secretKey");
|
||||
const DbName = Cypress.env("amazonathena_DbName");
|
||||
|
|
@ -134,7 +134,7 @@ describe("Data source amazon athena", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-amazon-Athena`);
|
||||
});
|
||||
|
||||
it("Should able to run the query with valid conection", () => {
|
||||
it.skip("Should able to run the query with valid conection", () => {
|
||||
const Accesskey = Cypress.env("amazonathena_accessKey");
|
||||
const Secretkey = Cypress.env("amazonathena_secretKey");
|
||||
const DbName = Cypress.env("amazonathena_DbName");
|
||||
|
|
@ -188,11 +188,13 @@ describe("Data source amazon athena", () => {
|
|||
cy.get(".css-4e90k9").type(`${data.dsName}`);
|
||||
cy.contains(`[id*="react-select-"]`, data.dsName).click();
|
||||
cy.get('[data-cy="query-rename-input"]').clear().type(data.dsName);
|
||||
|
||||
cy.get(`[data-cy="list-query-${data.dsName}"]`).should("be.visible");
|
||||
cy.get('[data-cy="query-input-field"]').clearAndTypeOnCodeMirror(
|
||||
"SHOW DATABASES;"
|
||||
);
|
||||
|
||||
cy.get(
|
||||
'[data-cy="query-input-field"] >>> .cm-editor >> .cm-content > .cm-line'
|
||||
).should("have.text", "SHOW DATABASES;");
|
||||
cy.get(dataSourceSelector.queryPreviewButton).click();
|
||||
cy.verifyToastMessage(
|
||||
commonSelectors.toastMessage,
|
||||
|
|
@ -20,15 +20,15 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source amazon ses", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on amazonses connection form", () => {
|
||||
it.skip("Should verify elements on amazonses connection form", () => {
|
||||
const Accesskey = Cypress.env("amazonSes_accessKey");
|
||||
const Secretkey = Cypress.env("amazonSes_secretKey");
|
||||
|
||||
|
|
@ -80,7 +80,7 @@ describe("Data source amazon ses", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-Amazon-ses`);
|
||||
});
|
||||
|
||||
it("Should verify the functionality of amazonses connection form.", () => {
|
||||
it.skip("Should verify the functionality of amazonses connection form.", () => {
|
||||
selectAndAddDataSource("databases", amazonSesText.AmazonSES, data.dsName);
|
||||
|
||||
cy.get(".react-select__dropdown-indicator").eq(1).click();
|
||||
|
|
@ -112,7 +112,7 @@ describe("Data source amazon ses", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-amazon-ses`);
|
||||
});
|
||||
|
||||
it("Should able to run the query with valid conection", () => {
|
||||
it.skip("Should able to run the query with valid conection", () => {
|
||||
const email = "adish" + "@" + "tooljet.com";
|
||||
selectAndAddDataSource("databases", amazonSesText.AmazonSES, data.dsName);
|
||||
|
||||
|
|
@ -20,15 +20,15 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source AppWrite", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on appwrite connection form", () => {
|
||||
it.skip("Should verify elements on appwrite connection form", () => {
|
||||
const Host = Cypress.env("appwrite_host");
|
||||
const ProjectID = Cypress.env("appwrite_projectID");
|
||||
const DatabaseID = Cypress.env("appwrite_databaseID");
|
||||
|
|
@ -100,7 +100,7 @@ describe("Data source AppWrite", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-Appwrite`);
|
||||
});
|
||||
|
||||
it("Should verify the functionality of appwrite connection form.", () => {
|
||||
it.skip("Should verify the functionality of appwrite connection form.", () => {
|
||||
const Host = Cypress.env("appwrite_host");
|
||||
const ProjectID = Cypress.env("appwrite_projectID");
|
||||
const DatabaseID = Cypress.env("appwrite_databaseID");
|
||||
|
|
@ -150,7 +150,7 @@ describe("Data source AppWrite", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-Appwrite`);
|
||||
});
|
||||
|
||||
it("Should be able to run the query with a valid connection", () => {
|
||||
it.skip("Should be able to run the query with a valid connection", () => {
|
||||
const Host = Cypress.env("appwrite_host");
|
||||
const ProjectID = Cypress.env("appwrite_projectID");
|
||||
const DatabaseID = Cypress.env("appwrite_databaseID");
|
||||
|
|
@ -20,15 +20,15 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source AWS Lambda", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on AWS Lambda connection form", () => {
|
||||
it.skip("Should verify elements on AWS Lambda connection form", () => {
|
||||
const Accesskey = Cypress.env("awslamda_access");
|
||||
const Secretkey = Cypress.env("awslamda_secret");
|
||||
|
||||
|
|
@ -80,9 +80,10 @@ describe("Data source AWS Lambda", () => {
|
|||
);
|
||||
|
||||
deleteDatasource(`cypress-${data.dsName}-aws-lambda`);
|
||||
cy.uninstallMarketplacePlugin("AWS Lambda");
|
||||
});
|
||||
|
||||
it("Should verify the functionality of AWS Lambda connection form", () => {
|
||||
it.skip("Should verify the functionality of AWS Lambda connection form", () => {
|
||||
const Accesskey = Cypress.env("awslamda_access");
|
||||
const Secretkey = Cypress.env("awslamda_secret");
|
||||
|
||||
|
|
@ -113,9 +114,10 @@ describe("Data source AWS Lambda", () => {
|
|||
);
|
||||
|
||||
deleteDatasource(`cypress-${data.dsName}-aws-lambda`);
|
||||
cy.uninstallMarketplacePlugin("AWS Lambda");
|
||||
});
|
||||
|
||||
it("Should able to run the query with valid conection", () => {
|
||||
it.skip("Should able to run the query with valid conection", () => {
|
||||
const Accesskey = Cypress.env("awslamda_access");
|
||||
const Secretkey = Cypress.env("awslamda_secret");
|
||||
|
||||
|
|
@ -21,15 +21,15 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source AWS Textract", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on AWS Textract connection form", () => {
|
||||
it.skip("Should verify elements on AWS Textract connection form", () => {
|
||||
const Accesskey = Cypress.env("awstextract_access");
|
||||
const Secretkey = Cypress.env("awstextract_secret");
|
||||
|
||||
|
|
@ -87,7 +87,7 @@ describe("Data source AWS Textract", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-aws-textract`);
|
||||
});
|
||||
|
||||
it("Should verify functionality of AWS Textract connection form", () => {
|
||||
it.skip("Should verify functionality of AWS Textract connection form", () => {
|
||||
const Accesskey = Cypress.env("awstextract_access");
|
||||
const Secretkey = Cypress.env("awstextract_secret");
|
||||
|
||||
|
|
@ -122,9 +122,10 @@ describe("Data source AWS Textract", () => {
|
|||
);
|
||||
|
||||
deleteDatasource(`cypress-${data.dsName}-aws-textract`);
|
||||
cy.uninstallMarketplacePlugin("AWS Textract");
|
||||
});
|
||||
|
||||
it("Should able to run the query with valid conection", () => {
|
||||
it.skip("Should able to run the query with valid conection", () => {
|
||||
const Accesskey = Cypress.env("awstextract_access");
|
||||
const Secretkey = Cypress.env("awstextract_secret");
|
||||
|
||||
|
|
@ -17,8 +17,8 @@ data.customText = fake.randomSentence;
|
|||
|
||||
describe("Data source Azure Blob Storage", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -20,15 +20,15 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source baserow", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on baserow connection form", () => {
|
||||
it.skip("Should verify elements on baserow connection form", () => {
|
||||
const Apikey = Cypress.env("baserow_apikey");
|
||||
|
||||
cy.get(commonSelectors.globalDataSourceIcon).click();
|
||||
|
|
@ -78,7 +78,7 @@ describe("Data source baserow", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-baserow`);
|
||||
});
|
||||
|
||||
it("Should verify the functionality of baserow connection form.", () => {
|
||||
it.skip("Should verify the functionality of baserow connection form.", () => {
|
||||
const Apikey = Cypress.env("baserow_apikey");
|
||||
|
||||
selectAndAddDataSource("databases", baseRowText.baserow, data.dsName);
|
||||
|
|
@ -103,7 +103,7 @@ describe("Data source baserow", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-baserow`);
|
||||
});
|
||||
|
||||
it("Should be able to run the query with a valid connection", () => {
|
||||
it.skip("Should be able to run the query with a valid connection", () => {
|
||||
const baserowTableID = Cypress.env("baserow_tableid");
|
||||
const baserowRowID = Cypress.env("baserow_rowid");
|
||||
const Apikey = Cypress.env("baserow_apikey");
|
||||
|
|
@ -16,8 +16,8 @@ const data = {};
|
|||
|
||||
describe("Data source BigQuery", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ const data = {};
|
|||
|
||||
describe("Data source DynamoDB", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -17,9 +17,12 @@ import {
|
|||
const data = {};
|
||||
describe("Data source Elasticsearch", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
data.lastName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on Elasticsearch connection form", () => {
|
||||
|
|
@ -123,14 +126,14 @@ describe("Data source Elasticsearch", () => {
|
|||
"have.text",
|
||||
elasticsearchText.errorConnectionRefused
|
||||
);
|
||||
deleteDatasource(`cypress-${data.lastName}-elasticsearch`);
|
||||
deleteDatasource(`cypress-${data.dataSourceName}-elasticsearch`);
|
||||
});
|
||||
|
||||
it("Should verify the functionality of Elasticsearch connection form.", () => {
|
||||
selectAndAddDataSource(
|
||||
"databases",
|
||||
elasticsearchText.elasticSearch,
|
||||
data.lastName
|
||||
data.dataSourceName
|
||||
);
|
||||
|
||||
fillDataSourceTextField(
|
||||
|
|
@ -210,12 +213,12 @@ describe("Data source Elasticsearch", () => {
|
|||
);
|
||||
|
||||
cy.get(
|
||||
`[data-cy="cypress-${data.lastName}-elasticsearch-button"]`
|
||||
`[data-cy="cypress-${data.dataSourceName}-elasticsearch-button"]`
|
||||
).verifyVisibleElement(
|
||||
"have.text",
|
||||
`cypress-${data.lastName}-elasticsearch`
|
||||
`cypress-${data.dataSourceName}-elasticsearch`
|
||||
);
|
||||
|
||||
deleteDatasource(`cypress-${data.lastName}-elasticsearch`);
|
||||
deleteDatasource(`cypress-${data.dataSourceName}-elasticsearch`);
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ const data = {};
|
|||
|
||||
describe("Data source Firestore", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -19,12 +19,12 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source GraphQL", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on GraphQL connection form", () => {
|
||||
|
|
@ -20,13 +20,13 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
data.dsName1 = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source HarperDB", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on HarperDB connection form", () => {
|
||||
|
|
@ -102,6 +102,7 @@ describe("Data source HarperDB", () => {
|
|||
);
|
||||
|
||||
deleteDatasource(`cypress-${data.dsName}-HarperDB`);
|
||||
cy.uninstallMarketplacePlugin("HarperDB");
|
||||
});
|
||||
|
||||
it("Should verify functionality of HarperDB connection form", () => {
|
||||
|
|
@ -156,9 +157,10 @@ describe("Data source HarperDB", () => {
|
|||
);
|
||||
|
||||
deleteDatasource(`cypress-${data.dsName}-HarperDB`);
|
||||
cy.uninstallMarketplacePlugin("HarperDB");
|
||||
});
|
||||
|
||||
it("Should be able to run the query with a valid connection", () => {
|
||||
it.skip("Should be able to run the query with a valid connection", () => {
|
||||
const Host = Cypress.env("harperdb_host");
|
||||
const Port = Cypress.env("harperdb_port");
|
||||
const Username = Cypress.env("harperdb_username");
|
||||
|
|
@ -23,8 +23,8 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -20,12 +20,12 @@ import {
|
|||
import { dataSourceSelector } from "../../../../../constants/selectors/dataSource";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source minio", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on minio connection form", () => {
|
||||
|
|
@ -157,7 +157,7 @@ describe("Data source minio", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-minio`);
|
||||
});
|
||||
|
||||
it("Should be able to run the query with a valid connection", () => {
|
||||
it.skip("Should be able to run the query with a valid connection", () => {
|
||||
const Host = Cypress.env("minio_host");
|
||||
const Port = Cypress.env("minio_port");
|
||||
const AccessKey = Cypress.env("minio_accesskey");
|
||||
|
|
@ -27,8 +27,8 @@ const data = {};
|
|||
|
||||
describe("Data source MongoDB", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
@ -133,7 +133,7 @@ describe("Data source MongoDB", () => {
|
|||
"have.text",
|
||||
mongoDbText.errorConnectionRefused
|
||||
);
|
||||
cy.get('[data-cy="query-select-dropdown"]').type(
|
||||
cy.get('[data-cy="connection-type-select-dropdown"]').type(
|
||||
mongoDbText.optionConnectUsingConnectionString
|
||||
);
|
||||
cy.get('[data-cy="label-connection-string"]').verifyVisibleElement(
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ const data = {};
|
|||
|
||||
describe("Data sources MySql", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import {
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.apiLogin();
|
||||
// cy.createApp();
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -20,14 +20,14 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on connection form", () => {
|
||||
it.skip("Should verify elements on connection form", () => {
|
||||
cy.log(process.env.NODE_ENV);
|
||||
cy.log(postgreSqlText.allDatabase());
|
||||
cy.get(commonSelectors.globalDataSourceIcon).click();
|
||||
|
|
@ -140,7 +140,7 @@ describe("Data sources", () => {
|
|||
deleteDatasource(`cypress-${data.dataSourceName}-postgresql`);
|
||||
});
|
||||
|
||||
it("Should verify the functionality of PostgreSQL connection form.", () => {
|
||||
it.skip("Should verify the functionality of PostgreSQL connection form.", () => {
|
||||
selectAndAddDataSource(
|
||||
"databases",
|
||||
postgreSqlText.postgreSQL,
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
|||
describe("Data source Redis", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
});
|
||||
|
||||
it("Should verify elements on connection Redis form", () => {
|
||||
|
|
@ -215,7 +215,7 @@ describe("Data source Redis", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-redis`);
|
||||
});
|
||||
|
||||
it("Should able to run the query with valid conection", () => {
|
||||
it.skip("Should able to run the query with valid conection", () => {
|
||||
selectAndAddDataSource("databases", redisText.redis, data.dsName);
|
||||
|
||||
fillDataSourceTextField(
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ const clientAuthenticationDropdown =
|
|||
describe("Data source Rest API", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
@ -332,7 +332,6 @@ describe("Data source Rest API", () => {
|
|||
deleteDatasource(`cypress-${data.dataSourceName}-restapi`);
|
||||
});
|
||||
it("Should verify basic connection for Rest API", () => {
|
||||
const storedId = Cypress.env("storedId");
|
||||
cy.apiCreateGDS(
|
||||
`${Cypress.env("server_host")}/api/data-sources`,
|
||||
`cypress-${data.dataSourceName}-restapi`,
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ const data = {};
|
|||
describe("Data sources AWS S3", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ import {
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.apiLogin();
|
||||
// cy.createApp();
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ const data = {};
|
|||
|
||||
describe("Data source SMTP", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ import {
|
|||
const data = {};
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -21,8 +21,8 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.apiLogin();
|
||||
cy.visit("/");
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -21,15 +21,15 @@ import { dataSourceSelector } from "../../../../../constants/selectors/dataSourc
|
|||
import { pluginSelectors } from "Selectors/plugins";
|
||||
|
||||
const data = {};
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
|
||||
describe("Data source Twilio", () => {
|
||||
beforeEach(() => {
|
||||
cy.apiLogin();
|
||||
cy.defaultWorkspaceLogin();
|
||||
cy.visit("/");
|
||||
data.dsName = fake.lastName.toLowerCase().replaceAll("[^A-Za-z]", "");
|
||||
});
|
||||
|
||||
it("Should verify elements on Twilio connection form", () => {
|
||||
it.skip("Should verify elements on Twilio connection form", () => {
|
||||
const AuthToken = Cypress.env("twilio_auth_token");
|
||||
const AccountSID = Cypress.env("twilio_account_SID");
|
||||
const MessageSID = Cypress.env("twilio_messaging_service_SID");
|
||||
|
|
@ -89,7 +89,7 @@ describe("Data source Twilio", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-twilio`);
|
||||
});
|
||||
|
||||
it("Should verify functionality of Twilio connection form", () => {
|
||||
it.skip("Should verify functionality of Twilio connection form", () => {
|
||||
const AuthToken = Cypress.env("twilio_auth_token");
|
||||
const AccountSID = Cypress.env("twilio_account_SID");
|
||||
const MessageSID = Cypress.env("twilio_messaging_service_SID");
|
||||
|
|
@ -128,7 +128,7 @@ describe("Data source Twilio", () => {
|
|||
deleteDatasource(`cypress-${data.dsName}-twilio`);
|
||||
});
|
||||
|
||||
it("Should be able to run the query with a valid connection", () => {
|
||||
it.skip("Should be able to run the query with a valid connection", () => {
|
||||
const AuthToken = Cypress.env("twilio_auth_token");
|
||||
const AccountSID = Cypress.env("twilio_account_SID");
|
||||
const MessageSID = Cypress.env("twilio_messaging_service_SID");
|
||||
|
|
@ -20,7 +20,7 @@ const data = {};
|
|||
|
||||
describe("Data sources", () => {
|
||||
beforeEach(() => {
|
||||
cy.appUILogin();
|
||||
cy.apiLogin();
|
||||
data.dataSourceName = fake.lastName
|
||||
.toLowerCase()
|
||||
.replaceAll("[^A-Za-z]", "");
|
||||
|
|
|
|||
|
|
@ -53,6 +53,8 @@ export const modifyAndVerifyAppCardIcon = (appName) => {
|
|||
};
|
||||
|
||||
export const verifyAppDelete = (appName) => {
|
||||
cy.get("body").should("exist").and("be.visible");
|
||||
cy.get('[data-cy="dashboard-section-header"]').should("be.visible");
|
||||
cy.get("body").then(($title) => {
|
||||
if (!$title.text().includes(commonText.introductionMessage)) {
|
||||
cy.clearAndType(commonSelectors.homePageSearchBar, appName);
|
||||
|
|
|
|||
|
|
@ -18,79 +18,97 @@ export const createAndRunRestAPIQuery = (
|
|||
method: "GET",
|
||||
url: `${Cypress.env("server_host")}/api/apps/${Cypress.env("appId")}`,
|
||||
headers,
|
||||
}).then((response) => {
|
||||
const editingVersionId = response.body.editing_version.id;
|
||||
const data_source_id = Cypress.env(`${dsName}-id`);
|
||||
const useJsonBody =
|
||||
["POST", "PATCH", "PUT"].includes(method.toUpperCase()) &&
|
||||
jsonBody !== null;
|
||||
|
||||
const queryOptions = {
|
||||
method: method.toLowerCase(),
|
||||
url: url + urlSuffix,
|
||||
url_params: [["", ""]],
|
||||
headers: headersList.length ? headersList : [["", ""]],
|
||||
body: !useJsonBody && bodyList.length ? bodyList : [["", ""]],
|
||||
json_body: useJsonBody ? jsonBody : null,
|
||||
body_toggle: useJsonBody,
|
||||
runOnPageLoad: run,
|
||||
transformationLanguage: "javascript",
|
||||
enableTransformation: false,
|
||||
};
|
||||
|
||||
const requestBody = {
|
||||
app_id: Cypress.env("appId"),
|
||||
app_version_id: editingVersionId,
|
||||
name: queryName,
|
||||
kind: "restapi",
|
||||
options: queryOptions,
|
||||
data_source_id,
|
||||
plugin_id: null,
|
||||
};
|
||||
}).then((appResponse) => {
|
||||
const currentEnvironmentId = appResponse.body.editorEnvironment.id;
|
||||
const editingVersionId = appResponse.body.editing_version.id;
|
||||
|
||||
cy.request({
|
||||
method: "POST",
|
||||
url: `${Cypress.env("server_host")}/api/data-queries/data-sources/${data_source_id}/versions/${editingVersionId}`,
|
||||
method: "GET",
|
||||
url: `${Cypress.env("server_host")}/api/data-sources/${Cypress.env("workspaceId")}/environments/${currentEnvironmentId}/versions/${editingVersionId}`,
|
||||
headers,
|
||||
body: requestBody,
|
||||
}).then((createResponse) => {
|
||||
expect(createResponse.status).to.equal(201);
|
||||
const queryId = createResponse.body.id;
|
||||
cy.log("Query created successfully:", queryId);
|
||||
}).then((dsResponse) => {
|
||||
expect(dsResponse.status).to.eq(200);
|
||||
|
||||
const createdOptions = createResponse.body.options;
|
||||
expect(createdOptions.method).to.equal(queryOptions.method);
|
||||
expect(createdOptions.url).to.equal(queryOptions.url);
|
||||
expect(createdOptions.headers).to.deep.equal(queryOptions.headers);
|
||||
const dataSource = dsResponse.body.data_sources.find(
|
||||
(ds) => ds.name === dsName
|
||||
);
|
||||
|
||||
if (useJsonBody) {
|
||||
expect(createdOptions.json_body).to.deep.equal(
|
||||
queryOptions.json_body
|
||||
);
|
||||
expect(createdOptions.body_toggle).to.equal(true);
|
||||
} else {
|
||||
expect(createdOptions.body).to.deep.equal(queryOptions.body);
|
||||
expect(createdOptions.body_toggle).to.equal(false);
|
||||
if (!dataSource) {
|
||||
throw new Error(`Data source '${dsName}' not found.`);
|
||||
}
|
||||
|
||||
expect(createdOptions.runOnPageLoad).to.equal(run);
|
||||
cy.log("Metadata verified successfully");
|
||||
if (run) {
|
||||
cy.request({
|
||||
method: "POST",
|
||||
url: `${Cypress.env("server_host")}/api/data-queries/${queryId}/run`,
|
||||
headers,
|
||||
}).then((runResponse) => {
|
||||
expect([200, 201]).to.include(runResponse.status);
|
||||
cy.log("Query executed successfully:", runResponse.body);
|
||||
if (runResponse.body?.data.id) {
|
||||
cy.writeFile("cypress/fixtures/restAPI/storedId.json", {
|
||||
id: runResponse.body.data.id,
|
||||
});
|
||||
cy.log("Stored ID:", runResponse.body.data.id);
|
||||
}
|
||||
});
|
||||
}
|
||||
const data_source_id = dataSource.id;
|
||||
const useJsonBody =
|
||||
["POST", "PATCH", "PUT"].includes(method.toUpperCase()) &&
|
||||
jsonBody !== null;
|
||||
|
||||
const queryOptions = {
|
||||
method: method.toLowerCase(),
|
||||
url: url + urlSuffix,
|
||||
url_params: [["", ""]],
|
||||
headers: headersList.length ? headersList : [["", ""]],
|
||||
body: !useJsonBody && bodyList.length ? bodyList : [["", ""]],
|
||||
json_body: useJsonBody ? jsonBody : null,
|
||||
body_toggle: useJsonBody,
|
||||
runOnPageLoad: run,
|
||||
transformationLanguage: "javascript",
|
||||
enableTransformation: false,
|
||||
};
|
||||
|
||||
const requestBody = {
|
||||
app_id: Cypress.env("appId"),
|
||||
app_version_id: editingVersionId,
|
||||
name: queryName,
|
||||
kind: "restapi",
|
||||
options: queryOptions,
|
||||
data_source_id,
|
||||
plugin_id: null,
|
||||
};
|
||||
|
||||
cy.request({
|
||||
method: "POST",
|
||||
url: `${Cypress.env("server_host")}/api/data-queries/data-sources/${data_source_id}/versions/${editingVersionId}`,
|
||||
headers,
|
||||
body: requestBody,
|
||||
}).then((createResponse) => {
|
||||
expect(createResponse.status).to.equal(201);
|
||||
const queryId = createResponse.body.id;
|
||||
cy.log("Query created successfully:", queryId);
|
||||
|
||||
const createdOptions = createResponse.body.options;
|
||||
expect(createdOptions.method).to.equal(queryOptions.method);
|
||||
expect(createdOptions.url).to.equal(queryOptions.url);
|
||||
expect(createdOptions.headers).to.deep.equal(queryOptions.headers);
|
||||
|
||||
if (useJsonBody) {
|
||||
expect(createdOptions.json_body).to.deep.equal(
|
||||
queryOptions.json_body
|
||||
);
|
||||
expect(createdOptions.body_toggle).to.equal(true);
|
||||
} else {
|
||||
expect(createdOptions.body).to.deep.equal(queryOptions.body);
|
||||
expect(createdOptions.body_toggle).to.equal(false);
|
||||
}
|
||||
|
||||
expect(createdOptions.runOnPageLoad).to.equal(run);
|
||||
cy.log("Metadata verified successfully");
|
||||
if (run) {
|
||||
cy.request({
|
||||
method: "POST",
|
||||
url: `${Cypress.env("server_host")}/api/data-queries/${queryId}/run`,
|
||||
headers,
|
||||
}).then((runResponse) => {
|
||||
expect([200, 201]).to.include(runResponse.status);
|
||||
cy.log("Query executed successfully:", runResponse.body);
|
||||
if (runResponse.body?.data.id) {
|
||||
cy.writeFile("cypress/fixtures/restAPI/storedId.json", {
|
||||
id: runResponse.body.data.id,
|
||||
});
|
||||
cy.log("Stored ID:", runResponse.body.data.id);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit 84ec48d0f64fd6dc5f7677f71a5119219cc4ada4
|
||||
Subproject commit b9e73f87b9062e06c49c2c73add6b82ba21dcacf
|
||||
Loading…
Reference in a new issue