test: Cypress | Flaky Fixes (#25217)

## Description
- This PR fixes below specs:
- /ListV2/Listv2_dataIdentifierProperty_spec.js
- Improves validations in /Autocomplete/JS_AC2_spec.ts
- Moving all mockApi call to TEDTestConfigs
- Datasources/Airtable_Basic_Spec.ts
- ListV2/Listv2_onItemClick_spec.js
- FirstTimeUserOnboarding_spec.js - 5th - flaky fix
- /Binding/Widgets_Default_data_validation_spec.js
- AssertDocumentReady() improved - added timeout to check page load
- TableV2/TableV2_Widget_Add_button_spec.js
- Binding/ButtonWidgets_NavigateTo_validation_spec.js
- UpdatePropertyFieldValue() improved - added intercept validation

#### Type of change
- Script fix (non-breaking change which fixes an issue)

## Testing
>
#### How Has This Been Tested?
- [X] Cypress CI runs
- 
## Checklist:
#### QA activity:
- [X] Added `Test Plan Approved` label after changes were reviewed
This commit is contained in:
Aishwarya-U-R 2023-07-11 10:44:13 +05:30 committed by GitHub
parent 71240f254e
commit a8eef88e6c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
53 changed files with 684 additions and 696 deletions

View File

@ -208,8 +208,8 @@ Lets build great software together.
[![dhruvikn](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/22471214?v=4&w=50&h=50&mask=circle)](https://github.com/dhruvikn)
[![megaconfidence](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/17744578?v=4&w=50&h=50&mask=circle)](https://github.com/megaconfidence)
[![tanvibhakta](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/13763558?v=4&w=50&h=50&mask=circle)](https://github.com/tanvibhakta)
[![sondermanish](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/107841575?v=4&w=50&h=50&mask=circle)](https://github.com/sondermanish)
[![NilanshBansal](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/25542733?v=4&w=50&h=50&mask=circle)](https://github.com/NilanshBansal)
[![sondermanish](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/107841575?v=4&w=50&h=50&mask=circle)](https://github.com/sondermanish)
[![rajatagrawal](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/1189106?v=4&w=50&h=50&mask=circle)](https://github.com/rajatagrawal)
[![subrata71](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/3524599?v=4&w=50&h=50&mask=circle)](https://github.com/subrata71)
[![Druthi](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/20187542?v=4&w=50&h=50&mask=circle)](https://github.com/Druthi)
@ -315,19 +315,19 @@ Lets build great software together.
[![akshayrangasaid](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/76783810?v=4&w=50&h=50&mask=circle)](https://github.com/akshayrangasaid)
[![mojtab23](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/5852362?v=4&w=50&h=50&mask=circle)](https://github.com/mojtab23)
[![iamrkcheers](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/16760643?v=4&w=50&h=50&mask=circle)](https://github.com/iamrkcheers)
[![iamakulov](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/2953267?v=4&w=50&h=50&mask=circle)](https://github.com/iamakulov)
[![sumanthyedoti](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/30371888?v=4&w=50&h=50&mask=circle)](https://github.com/sumanthyedoti)
[![vaibh1297](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/40293928?v=4&w=50&h=50&mask=circle)](https://github.com/vaibh1297)
[![vnodecg](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/4994565?v=4&w=50&h=50&mask=circle)](https://github.com/vnodecg)
[![iamakulov](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/2953267?v=4&w=50&h=50&mask=circle)](https://github.com/iamakulov)
[![pc9795](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/14848874?v=4&w=50&h=50&mask=circle)](https://github.com/pc9795)
[![Rhitottam](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/4265002?v=4&w=50&h=50&mask=circle)](https://github.com/Rhitottam)
[![iSatVeerSingh](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/85070570?v=4&w=50&h=50&mask=circle)](https://github.com/iSatVeerSingh)
[![akshay11298](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/26507126?v=4&w=50&h=50&mask=circle)](https://github.com/akshay11298)
[![daniel-shuy](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/17351764?v=4&w=50&h=50&mask=circle)](https://github.com/daniel-shuy)
[![daniloff200](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/13692220?v=4&w=50&h=50&mask=circle)](https://github.com/daniloff200)
[![osis](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/347097?v=4&w=50&h=50&mask=circle)](https://github.com/osis)
[![harshitpandey0426](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/54776298?v=4&w=50&h=50&mask=circle)](https://github.com/harshitpandey0426)
[![ganganimaulik](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/10296400?v=4&w=50&h=50&mask=circle)](https://github.com/ganganimaulik)
[![iSatVeerSingh](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/85070570?v=4&w=50&h=50&mask=circle)](https://github.com/iSatVeerSingh)
[![jyash97](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/22376783?v=4&w=50&h=50&mask=circle)](https://github.com/jyash97)
[![ram-primathon](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/59244208?v=4&w=50&h=50&mask=circle)](https://github.com/ram-primathon)
[![sub1983](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/17119174?v=4&w=50&h=50&mask=circle)](https://github.com/sub1983)
@ -398,7 +398,6 @@ Lets build great software together.
[![felixsuarez0727](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/25110207?v=4&w=50&h=50&mask=circle)](https://github.com/felixsuarez0727)
[![gitstart](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/1501599?v=4&w=50&h=50&mask=circle)](https://github.com/gitstart)
[![harshmange44](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/47944044?v=4&w=50&h=50&mask=circle)](https://github.com/harshmange44)
[![indrajitbnikam](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/24988127?v=4&w=50&h=50&mask=circle)](https://github.com/indrajitbnikam)
[![ishaanmehta4](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/61118240?v=4&w=50&h=50&mask=circle)](https://github.com/ishaanmehta4)
[![jaikanthjay46](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/31009437?v=4&w=50&h=50&mask=circle)](https://github.com/jaikanthjay46)
[![jarimayenburg](https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/11874892?v=4&w=50&h=50&mask=circle)](https://github.com/jarimayenburg)

View File

@ -27,8 +27,8 @@ export default defineConfig({
e2e: {
baseUrl: "https://dev.appsmith.com/",
env: {
USERNAME: "XXXX",
PASSWORD: "XXXX",
USERNAME: "xxxx",
PASSWORD: "xxx",
},
setupNodeEvents(on, config) {
return require("./cypress/plugins/index.js")(on, config);

View File

@ -3,6 +3,7 @@ import {
entityExplorer,
jsEditor,
apiPage,
tedTestConfig,
} from "../../../support/Objects/ObjectsCore";
const commonlocators = require("../../../locators/commonlocators.json");
@ -12,8 +13,7 @@ describe("JSEditor tests", function () {
});
it("1. Testing promises with resetWidget, storeValue action and API call", () => {
cy.fixture("datasources").then((datasourceFormData) => {
apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"], "TC1api");
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl, "TC1api");
apiPage.RunAPI();
jsEditor.CreateJSObject(
`export default {
@ -112,7 +112,6 @@ describe("JSEditor tests", function () {
"GREEN",
); */
});
});
//Skipping reason? to add
it.skip("2. Testing dynamic widgets display using consecutive storeValue calls", () => {

View File

@ -24,7 +24,6 @@ describe("Navigate To feature", () => {
}
}}`,
);
agHelper.AssertAutoSave();
agHelper.PopupClose("onClick");
agHelper.ClickButton("Submit");
cy.url().should("include", "a=b").and("include", "test=123");

View File

@ -5,6 +5,7 @@ import {
draggableWidgets,
entityExplorer,
entityItems,
tedTestConfig,
jsEditor,
locators,
} from "../../../../support/Objects/ObjectsCore";
@ -172,8 +173,7 @@ describe("Autocomplete tests", () => {
});
it("5. Api data with array of object autocompletion test", () => {
cy.fixture("datasources").then((datasourceFormData: any) => {
apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"]);
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl);
agHelper.Sleep(2000);
apiPage.RunAPI();
// Using same js object
@ -195,7 +195,6 @@ describe("Autocomplete tests", () => {
entityType: entityItems.JSObject,
});
});
});
it("6. Local variables & complex data autocompletion test", () => {
jsEditor.CreateJSObject(jsObjectBody, {

View File

@ -146,20 +146,28 @@ describe("Autocomplete tests", () => {
agHelper.GetElement(jsEditor._lineinJsEditor(4)).click();
agHelper.WaitUntilAllToastsDisappear();
//Assert that hints are not present inside the string
agHelper.TypeText(locators._codeMirrorTextArea, `const x = "`);
agHelper.AssertElementAbsence(locators._hints);
agHelper.SelectNRemoveLineText(jsEditor._lineinJsEditor(4));
//Assert that hints are not present when line is cleared with backspace
agHelper.AssertElementAbsence(locators._hints);
//Assert that hints are not present when token is a comment
//Assert that hints are not present when comment line added into already existing code
agHelper.SelectNRemoveLineText(jsEditor._lineinJsEditor(4)); //remove only ""
agHelper.AssertElementAbsence(locators._hints); //Assert that hints are not present when line is cleared with backspace
agHelper.TypeText(locators._codeMirrorTextArea, "// showA'");
agHelper.AssertElementAbsence(locators._hints);
//Check for no showAlert() hint
agHelper.GetNClick(jsEditor._lineinJsEditor(4), 0, true);
agHelper.SelectNRemoveLineText(locators._codeMirrorTextArea);
agHelper.AssertElementAbsence(locators._hints); //Assert that hints are not present when line is removed
agHelper.TypeText(locators._codeMirrorTextArea, "// showA");
agHelper.AssertElementAbsence(locators._hints); //Assert that hints are not present when token is a comment
//Check for no hint with any A in it
agHelper.GetNClick(jsEditor._lineinJsEditor(4), 0, true);
agHelper.SelectNRemoveLineText(locators._codeMirrorTextArea);
agHelper.AssertElementAbsence(locators._hints);
agHelper.TypeText(locators._codeMirrorTextArea, "// showA'");
agHelper.AssertElementAbsence(locators._hints);
cy.get("@jsObjName").then((jsObjName) => {

View File

@ -1,19 +1,19 @@
const publish = require("../../../../locators/publishWidgetspage.json");
const testdata = require("../../../../fixtures/testdata.json");
import {
entityExplorer,
propPane,
agHelper,
deployMode,
locators,
draggableWidgets,
} from "../../../../support/Objects/ObjectsCore";
const testdata = require("../../../../fixtures/testdata.json");
describe("Binding the button Widgets and validating NavigateTo Page functionality", function () {
before(() => {
agHelper.AddDsl("buttondsl");
entityExplorer.DragDropWidgetNVerify(draggableWidgets.BUTTON);
});
it("1. Button widget with action navigate to page", function () {
entityExplorer.SelectEntityByName("Button1");
propPane.SelectPlatformFunction("onClick", "Navigate to");
agHelper.GetNClick(propPane._navigateToType("URL"));
cy.get("label")
@ -22,22 +22,15 @@ describe("Binding the button Widgets and validating NavigateTo Page functionalit
.within(() => {
cy.get(".t--code-editor-wrapper").type(testdata.externalPage);
});
// eslint-disable-next-line cypress/no-unnecessary-waiting
cy.wait(300);
});
it("2. Button click should take the control to page link validation", function () {
deployMode.DeployApp();
//. Button click should take the control to page link validation", function () {
deployMode.DeployApp(locators._widgetInDeployed(draggableWidgets.BUTTON));
cy.wait(2000);
cy.get(publish.buttonWidget).click();
// eslint-disable-next-line cypress/no-unnecessary-waiting
cy.wait(500);
cy.get(publish.buttonWidget).should("not.exist");
cy.go("back");
deployMode.NavigateBacktoEditor();
cy.wait("@getPage")
.its("response.body.responseMeta.status")
.should("eq", 200);
agHelper.ClickButton("Submit");
cy.wait(2000); //for page to load
agHelper.AssertElementAbsence(
locators._widgetInDeployed(draggableWidgets.BUTTON),
);
agHelper.AssertElementVisible(locators._visibleTextSpan("Build the tools"));
});
});

View File

@ -7,9 +7,7 @@ describe("Validate JSObj binding to Table widget", () => {
});
it("1. Add users api and bind to JSObject", () => {
cy.fixture("datasources").then((datasourceFormData: any) => {
_.apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"]);
});
_.apiPage.CreateAndFillApi(_.tedTestConfig.mockApiUrl);
_.apiPage.RunAPI();
_.agHelper.GetNClick(_.dataSources._queryResponse("JSON"));
_.apiPage.ReadApiResponsebyKey("name");

View File

@ -4,6 +4,7 @@ const testdata = require("../../../../fixtures/testdata.json");
import {
entityExplorer,
agHelper,
propPane,
} from "../../../../support/Objects/ObjectsCore";
describe("Binding the multiple widgets and validating default data", function () {
@ -13,21 +14,15 @@ describe("Binding the multiple widgets and validating default data", function ()
it("1. Input widget test with default value from table widget", function () {
entityExplorer.SelectEntityByName("Input1");
cy.testJsontext("defaultvalue", testdata.defaultInputWidget + "}}");
cy.wait("@updateLayout").should(
"have.nested.property",
"response.body.responseMeta.status",
200,
propPane.UpdatePropertyFieldValue(
"Default value",
testdata.defaultInputWidget + "}}",
);
//Dropdown widget test with default value from table widget
entityExplorer.SelectEntityByName("Dropdown1");
cy.testJsontext("options", JSON.stringify(testdata.deafultDropDownWidget));
cy.wait("@updateLayout").should(
"have.nested.property",
"response.body.responseMeta.status",
200,
propPane.UpdatePropertyFieldValue(
"Options",
JSON.stringify(testdata.deafultDropDownWidget),
);
});

View File

@ -5,9 +5,9 @@ import {
apiPage,
dataSources,
debuggerHelper,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
import { Widgets } from "../../../../support/Pages/DataSources";
import datasourceFormData from "../../../../fixtures/datasources.json";
import {
ERROR_ACTION_EXECUTE_FAIL,
@ -16,7 +16,7 @@ import {
describe("API Bugs", function () {
it("1. Bug 14037: User gets an error even when table widget is added from the API page successfully", function () {
apiPage.CreateAndFillApi(datasourceFormData.mockApiUrl, "Api1");
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl, "Api1");
apiPage.RunAPI();
dataSources.AddSuggesstedWidget(Widgets.Table);
@ -44,7 +44,7 @@ describe("API Bugs", function () {
it("3. Bug 18876 Ensures application does not crash when saving datasource", () => {
apiPage.CreateAndFillApi(
datasourceFormData.mockApiUrl,
tedTestConfig.mockApiUrl,
"FirstAPI",
10000,
"POST",

View File

@ -1,10 +1,10 @@
import { ObjectsRegistry } from "../../../../support/Objects/Registry";
import datasourceFormData from "../../../../fixtures/datasources.json";
const agHelper = ObjectsRegistry.AggregateHelper;
const jsEditor = ObjectsRegistry.JSEditor;
const apiPage = ObjectsRegistry.ApiPage;
const ee = ObjectsRegistry.EntityExplorer;
import {
tedTestConfig,
agHelper,
jsEditor,
apiPage,
entityExplorer,
} from "../../../../support/Objects/ObjectsCore";
describe("JS data update on button click", function () {
before(() => {
@ -12,7 +12,7 @@ describe("JS data update on button click", function () {
});
it("1. Populates js function data when triggered via button click", function () {
apiPage.CreateAndFillApi(datasourceFormData.mockApiUrl, "Api1");
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl, "Api1");
const jsObjectString = `export default {
myVar1: [],
@ -35,7 +35,7 @@ describe("JS data update on button click", function () {
toRun: false,
shouldCreateNewJSObj: true,
});
ee.SelectEntityByName("Button2", "Widgets");
entityExplorer.SelectEntityByName("Button2", "Widgets");
agHelper.ClickButton("Submit");
agHelper.AssertContains("myFun1 Data", "exist");
agHelper.AssertContains("myFun2 Data", "exist");

View File

@ -30,7 +30,7 @@ describe("Binding Expressions should not be truncated in Url and path extraction
shouldCreateNewJSObj: true,
});
_.apiPage.CreateAndFillGraphqlApi(_.hostPort.GraphqlApiUrl_TED);
_.apiPage.CreateAndFillGraphqlApi(_.tedTestConfig.GraphqlApiUrl_TED);
_.dataSources.UpdateGraphqlQueryAndVariable({
query: GRAPHQL_LIMIT_QUERY,
});

View File

@ -4,12 +4,12 @@ import {
apiPage,
entityExplorer,
entityItems,
hostPort,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
describe("Bug #15372 Catch block was not triggering in Safari/firefox", () => {
it("1. Triggers the catch block when the API hits a 404", () => {
apiPage.CreateAndFillApi(hostPort.mockHttpCodeUrl + "404");
apiPage.CreateAndFillApi(tedTestConfig.mockHttpCodeUrl + "404");
jsEditor.CreateJSObject(
`export default {
fun: async () => {

View File

@ -1,5 +1,4 @@
import * as _ from "../../../../support/Objects/ObjectsCore";
import datasourceFormData from "../../../../fixtures/datasources.json";
let repoName: any;
let tempBranch: any;
@ -16,9 +15,8 @@ describe("Git Bugs", function () {
});
it("1. Bug 16248, When GitSync modal is open, block shortcut action execution", function () {
const largeResponseApiUrl = datasourceFormData.mockApiUrl;
const modifierKey = Cypress.platform === "darwin" ? "meta" : "ctrl";
_.apiPage.CreateAndFillApi(largeResponseApiUrl, "GitSyncTest");
_.apiPage.CreateAndFillApi(_.tedTestConfig.mockApiUrl, "GitSyncTest");
_.gitSync.OpenGitSyncModal();
cy.get("body").type(`{${modifierKey}}{enter}`);
cy.get("@postExecute").should("not.exist");

View File

@ -10,6 +10,7 @@ import {
apiPage,
draggableWidgets,
fakerHelper,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
const widgetsToTest = {
@ -79,9 +80,7 @@ const widgetsToTest = {
};
function configureApi() {
cy.fixture("datasources").then((datasourceFormData) => {
apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"], "FirstAPI");
});
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl, "FirstAPI");
apiPage.EnterHeader("value", "{{this.params.value}}");
}

View File

@ -48,7 +48,7 @@ describe("Git sync modal: connect tab", function () {
cy.get(gitSyncLocators.generateDeployKeyBtn).should("not.exist");
cy.get(gitSyncLocators.gitRepoInput).type(
`{selectAll}${_.hostPort.GITEA_API_URL_TED}/${repoName}.git`,
`{selectAll}${_.tedTestConfig.GITEA_API_URL_TED}/${repoName}.git`,
);
cy.contains(Cypress.env("MESSAGES").PASTE_SSH_URL_INFO()).should(
"not.exist",
@ -104,7 +104,7 @@ describe("Git sync modal: connect tab", function () {
cy.get(gitSyncLocators.connectSubmitBtn).should("be.disabled");
cy.get(gitSyncLocators.gitRepoInput).type(
`{selectAll}${_.hostPort.GITEA_API_URL_TED}/${repoName}.git`,
`{selectAll}${_.tedTestConfig.GITEA_API_URL_TED}/${repoName}.git`,
);
cy.contains(Cypress.env("MESSAGES").PASTE_SSH_URL_INFO()).should(
"not.exist",
@ -200,7 +200,7 @@ describe("Git sync modal: connect tab", function () {
cy.get(gitSyncLocators.gitRepoInput)
.scrollIntoView()
.type(`{selectAll}${_.hostPort.GITEA_API_URL_TED}/${repoName}.git`, {
.type(`{selectAll}${_.tedTestConfig.GITEA_API_URL_TED}/${repoName}.git`, {
force: true,
});
cy.get(gitSyncLocators.connectSubmitBtn).scrollIntoView().click();
@ -213,7 +213,7 @@ describe("Git sync modal: connect tab", function () {
cy.get(gitSyncLocators.gitRepoInput)
.scrollIntoView()
.type(`{selectAll}${_.hostPort.GITEA_API_URL_TED}/${repoName}.git`, {
.type(`{selectAll}${_.tedTestConfig.GITEA_API_URL_TED}/${repoName}.git`, {
force: true,
});
@ -234,7 +234,7 @@ describe("Git sync modal: connect tab", function () {
cy.request({
method: "POST",
url: `${_.hostPort.GITEA_API_BASE_TED}:${_.hostPort.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repoName}/keys`,
url: `${_.tedTestConfig.GITEA_API_BASE_TED}:${_.tedTestConfig.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repoName}/keys`,
headers: {
Authorization: `token ${Cypress.env("GITEA_TOKEN")}`,
},

View File

@ -4,7 +4,7 @@ import homePageLocators from "../../../../../locators/HomePage";
import {
agHelper,
entityExplorer,
hostPort,
tedTestConfig,
gitSync,
homePage,
jsEditor,
@ -286,7 +286,7 @@ describe("Git sync Bug #10773", function () {
`generateKey-${repoName}`,
);
cy.get(gitSyncLocators.gitRepoInput).type(
`{selectAll}${hostPort.GITEA_API_URL_TED}/${repoName}.git`,
`{selectAll}${tedTestConfig.GITEA_API_URL_TED}/${repoName}.git`,
);
// abort git flow after generating key
cy.get(gitSyncLocators.closeGitSyncModal).click();

View File

@ -9,8 +9,8 @@ import {
locators,
propPane,
entityItems,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
import datasourceFormData from "../../../../fixtures/datasources.json";
const successMessage = "Successful Trigger";
const errorMessage = "Unsuccessful Trigger";
@ -80,7 +80,7 @@ describe("Linting", () => {
clickButtonAndAssertLintError(true);
// create Api1
apiPage.CreateAndFillApi(datasourceFormData.mockApiUrl);
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl);
clickButtonAndAssertLintError(false);
@ -94,7 +94,7 @@ describe("Linting", () => {
clickButtonAndAssertLintError(true);
// Re-create Api1
apiPage.CreateAndFillApi(datasourceFormData.mockApiUrl);
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl);
clickButtonAndAssertLintError(false);
});
@ -295,7 +295,7 @@ describe("Linting", () => {
shouldCreateNewJSObj: true,
},
);
apiPage.CreateAndFillApi(datasourceFormData.mockApiUrl);
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl);
createMySQLDatasourceQuery();
agHelper.RefreshPage(); //Since this seems failing a bit

View File

@ -7,8 +7,8 @@ import {
apiPage,
draggableWidgets,
locators,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
import datasourceFormData from "../../../../fixtures/datasources.json";
describe("Linting of entity properties", () => {
before(() => {
@ -19,7 +19,7 @@ describe("Linting of entity properties", () => {
it("1. Shows correct lint error when wrong Api property is binded", () => {
const invalidProperty = "unknownProperty";
// create Api1
apiPage.CreateAndFillApi(datasourceFormData.mockApiUrl);
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl);
// Edit Button onclick property
entityExplorer.SelectEntityByName("Button1", "Widgets");
propPane.EnterJSContext(

View File

@ -42,7 +42,12 @@ describe("excludeForAirgap", "Guided Tour", function () {
entityExplorer.SelectEntityByName("CustomersTable");
// Step 3: Add binding to the tableData property
propPane.UpdatePropertyFieldValue("Table data", "{{getCustomers.data}}");
propPane.UpdatePropertyFieldValue(
"Table data",
"{{getCustomers.data}}",
true,
false,
);
cy.get(guidedTourLocators.successButton).click();
cy.get(guidedTourLocators.infoButton).click();
// Renaming widgets // Commending below wait due to flakiness

View File

@ -1,6 +1,7 @@
import homePageLocators from "../../../../locators/HomePage";
const explorer = require("../../../../locators/explorerlocators.json");
import {
assertHelper,
entityExplorer,
homePage,
} from "../../../../support/Objects/ObjectsCore";
@ -30,13 +31,8 @@ describe("Slug URLs", () => {
it("2. Checks if application slug updates on the URL when application name changes", () => {
cy.generateUUID().then((appName) => {
applicationName = appName;
cy.AppSetupForRename();
cy.get(homePageLocators.applicationName).type(`${appName}` + "{enter}");
cy.wait("@updateApplication").should(
"have.nested.property",
"response.body.responseMeta.status",
200,
);
homePage.RenameApplication(applicationName);
assertHelper.AssertNetworkStatus("updateApplication");
cy.location("pathname").then((pathname) => {
const pageId = pathname.split("/")[3]?.split("-").pop();
expect(pathname).to.be.equal(`/app/${appName}/page1-${pageId}/edit`);

View File

@ -37,9 +37,8 @@ describe("Entity bottom bar", () => {
});
it("3. Api bottom pane should be collapsable", () => {
cy.fixture("datasources").then((datasourceFormData: any) => {
_.entityExplorer.NavigateToSwitcher("Explorer");
_.apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"]);
_.apiPage.CreateAndFillApi(_.tedTestConfig.mockApiUrl);
//Verify if bottom bar opens on clicking debugger icon in api page.
_.debuggerHelper.ClickDebuggerIcon();
_.debuggerHelper.AssertOpen(PageType.API);
@ -58,7 +57,6 @@ describe("Entity bottom bar", () => {
//verify if response tab is selected on execution api.
_.debuggerHelper.AssertSelectedTab("Response");
});
});
it("4. Bottom bar in Datasource", () => {
//Verify if bottom bar remain open on shifting to create new datasource page.

View File

@ -2,13 +2,12 @@ import * as _ from "../../../../support/Objects/ObjectsCore";
describe("Peek overlay", () => {
it("1. Main test", () => {
cy.fixture("datasources").then((datasourceFormData: any) => {
_.entityExplorer.DragDropWidgetNVerify("tablewidgetv2", 500, 100);
_.entityExplorer.NavigateToSwitcher("Explorer");
_.table.AddSampleTableData();
_.apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"]);
_.apiPage.CreateAndFillApi(_.tedTestConfig.mockApiUrl);
_.apiPage.RunAPI();
_.apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"]);
_.apiPage.CreateAndFillApi(_.tedTestConfig.mockApiUrl);
_.jsEditor.CreateJSObject(JsObjectContent, {
paste: true,
completeReplace: true,
@ -129,7 +128,6 @@ describe("Peek overlay", () => {
_.peekOverlay.IsOverlayOpen(false);
_.peekOverlay.ResetHover();
});
});
});
const JsObjectContent = `export default {

View File

@ -15,14 +15,10 @@ describe("Published mode toggle toast with debug flag in the url", function () {
});
it("1. Should not show any application related toasts", function () {
cy.fixture("datasources").then((datasourceFormData) => {
_.apiPage.CreateAndFillApi(
datasourceFormData["mockApiUrl"],
"Correct_users",
);
_.apiPage.CreateAndFillApi(_.tedTestConfig.mockApiUrl, "Correct_users");
_.apiPage.ToggleOnPageLoadRun(true);
_.apiPage.CreateAndFillApi(
datasourceFormData["mockApiUrl"].replace("mock-api", "mock-api2err"),
_.tedTestConfig.mockApiUrl.replace("mock-api", "mock-api2err"),
"Incorrect_users",
);
_.apiPage.ToggleOnPageLoadRun(true);
@ -67,7 +63,6 @@ describe("Published mode toggle toast with debug flag in the url", function () {
_.locators._toastMsg,
);
});
});
it("2. Should show all application related toasts with debug flag true in url", function () {
cy.url().then((url) => {

View File

@ -7,6 +7,7 @@ import {
jsEditor,
locators,
propPane,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
describe("Validate JS Object Refactoring does not affect the comments & variables", () => {
@ -40,10 +41,8 @@ describe("Validate JS Object Refactoring does not affect the comments & variable
dataSources.CreateDataSource("MySql", true, false);
cy.get("@dsName").then(($dsName) => {
dsName = $dsName;
});
//Selecting paintings table from MySQL DS
cy.fixture("datasources").then((datasourceFormData: any) => {
//Initialize new JSObject with custom code
jsEditor.CreateJSObject(jsCode);
//Initialize new Query entity with custom query
@ -54,7 +53,7 @@ describe("Validate JS Object Refactoring does not affect the comments & variable
); //Creating query from EE overlay
//Initialize new API entity with custom header
apiPage.CreateAndFillApi(
datasourceFormData["mockApiUrl"],
tedTestConfig.mockApiUrl,
refactorInput.api.oldName,
);
apiPage.EnterHeader("key1", `{{\tJSObject1.myVar1}}`);

View File

@ -129,14 +129,12 @@ describe("DatePicker Widget Property pane tests with js bindings", function () {
.type("04/05/2021 06:25")
.wait(2000);
cy.selectDateFormat("LLL");
cy.wait("@updateLayout");
cy.get(".t--draggable-textwidget .bp3-ui-text")
.first()
.should("contain.text", "May 4, 2021 6:25 AM");
_.propPane.EnterJSContext("Default Date", "2020-02-01");
_.propPane.EnterJSContext("Min Date", "2020-01-01");
_.propPane.EnterJSContext("Max Date", "2020-02-10");
_.propPane.UpdatePropertyFieldValue("Default Date", "2020-02-01");
_.propPane.UpdatePropertyFieldValue("Max Date", "2020-02-10");
_.agHelper.AssertErrorTooltip("Date out of range");
});

View File

@ -34,13 +34,12 @@ describe("File picker widget v2", () => {
});
it("3. Check if the uploaded data does not reset when back from query page", () => {
cy.fixture("datasources").then((datasourceFormData) => {
cy.openPropertyPane("textwidget");
cy.updateCodeInput(
".t--property-control-text",
`{{FilePicker1.files[0].name}}`,
);
cy.createAndFillApi(datasourceFormData["mockApiUrl"], "");
cy.createAndFillApi(_.tedTestConfig.mockApiUrl, "");
cy.updateCodeInput(
"[class*='t--actionConfiguration']",
"{{FilePicker1.files}}",
@ -60,7 +59,6 @@ describe("File picker widget v2", () => {
);
cy.get(".t--widget-textwidget").should("contain", "testFile.mov");
});
});
it("4. Check if the uploaded file is removed on click of cancel button", () => {
cy.get(widgetsPage.filepickerwidgetv2).click();

View File

@ -36,11 +36,6 @@ describe("Binding the list widget with text widget", function () {
"Items",
'[[{ "name": "pawan"}, { "name": "Vivek" }], [{ "name": "Ashok"}, {"name": "rahul"}]]',
);
cy.wait("@updateLayout").should(
"have.nested.property",
"response.body.responseMeta.status",
200,
);
_.entityExplorer.ExpandCollapseEntity("List1");
_.entityExplorer.ExpandCollapseEntity("Container1");
_.entityExplorer.SelectEntityByName("Text3");
@ -50,11 +45,6 @@ describe("Binding the list widget with text widget", function () {
"Text",
'{{currentItem.map(item => item.name).join(", ")}}',
);
cy.wait("@updateLayout").should(
"have.nested.property",
"response.body.responseMeta.status",
200,
);
_.deployMode.DeployApp();
cy.wait(2000);
cy.get(".t--widget-textwidget span:contains('pawan, Vivek')").should(
@ -76,23 +66,12 @@ describe("Binding the list widget with text widget", function () {
"Items",
'[{ "name": "pawan"}, { "name": "Vivek" }]',
);
cy.wait("@updateLayout").should(
"have.nested.property",
"response.body.responseMeta.status",
200,
);
_.entityExplorer.ExpandCollapseEntity("List1");
_.entityExplorer.ExpandCollapseEntity("Container1");
_.entityExplorer.SelectEntityByName("Text3");
cy.wait(1000);
_.propPane.UpdatePropertyFieldValue("Text", "{{currentItem.name}}");
cy.wait("@updateLayout").should(
"have.nested.property",
"response.body.responseMeta.status",
200,
);
_.deployMode.DeployApp();
cy.wait(2000);
cy.get(".t--widget-textwidget span:contains('Vivek')").should(

View File

@ -1,24 +1,17 @@
const simpleListDSL = require("../../../../../fixtures/Listv2/simpleList.json");
const simpleListWithLargeDataDSL = require("../../../../../fixtures/Listv2/simpleListWithLargeData.json");
const ListV2WithNullPrimaryKeyDSL = require("../../../../../fixtures/Listv2/ListV2WithNullPrimaryKey.json");
const widgetsPage = require("../../../../../locators/Widgets.json");
const commonlocators = require("../../../../../locators/commonlocators.json");
import * as _ from "../../../../../support/Objects/ObjectsCore";
const propertyControl = ".t--property-control";
const widgetSelector = (name) => `[data-widgetname-cy="${name}"]`;
function testJsontextClear(endp) {
const modifierKey = Cypress.platform === "darwin" ? "meta" : "ctrl";
cy.get(".t--property-control-" + endp + " .CodeMirror textarea")
.first()
.focus({ force: true })
.type(`{${modifierKey}}{a}`, { force: true })
.type(`{${modifierKey}}{del}`, { force: true });
}
const data = [
{
id: "001",
@ -50,7 +43,7 @@ describe("List v2 - Data Identifier property", () => {
});
it("1. is present in the property pane", () => {
cy.addDsl(simpleListDSL);
_.agHelper.AddDsl("Listv2/simpleList");
cy.openPropertyPane("listwidgetv2");
@ -132,7 +125,7 @@ describe("List v2 - Data Identifier property", () => {
});
it("6. with large data set and data identifier set, the rows should render", () => {
cy.addDsl(simpleListWithLargeDataDSL);
_.agHelper.AddDsl("Listv2/simpleListWithLargeData");
cy.openPropertyPane("listwidgetv2");
@ -180,7 +173,8 @@ describe("List v2 - Data Identifier property", () => {
});
it("9. Widgets get displayed when PrimaryKey doesn't exist - SSP", () => {
cy.addDsl(ListV2WithNullPrimaryKeyDSL);
_.agHelper.AddDsl("Listv2/ListV2WithNullPrimaryKey");
_.agHelper.AddDsl("Listv2/ListV2WithNullPrimaryKey");
cy.createAndFillApi(
"https://api.punkapi.com/v2/beers?page={{List1.pageNo}}&per_page={{List1.pageSize}}",
"",

View File

@ -3,11 +3,8 @@ const commonlocators = require("../../../../../locators/commonlocators.json");
import * as _ from "../../../../../support/Objects/ObjectsCore";
const widgetSelector = (name) => `[data-widgetname-cy="${name}"]`;
const items = dsl.dsl.children[4]?.listData;
const containerWidgetSelector = `[type="CONTAINER_WIDGET"]`;
function testJsontextClear(endp) {
const modifierKey = Cypress.platform === "darwin" ? "meta" : "ctrl";
@ -47,9 +44,7 @@ const verifyDefaultItem = () => {
};
function setUpDataSource() {
cy.fixture("datasources").then((datasourceFormData) => {
_.apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"] + "0");
});
_.apiPage.CreateAndFillApi(_.tedTestConfig.mockApiUrl + "0");
cy.RunAPI();
_.entityExplorer.SelectEntityByName("List1");
cy.wait(200);

View File

@ -1,6 +1,7 @@
const commonlocators = require("../../../../../locators/commonlocators.json");
const widgetsPage = require("../../../../../locators/Widgets.json");
import {
agHelper,
draggableWidgets,
entityExplorer,
} from "../../../../../support/Objects/ObjectsCore";
@ -28,11 +29,6 @@ function deleteAllWidgetsInContainer() {
cy.wait(1000);
}
function validateToastExist() {
cy.validateToastMessage("ListWidget_Blue_0");
cy.wait(1000);
}
function validateToastDoestExist() {
cy.wait(500);
cy.get(commonlocators.toastmsg, { timeout: 100 }).should("not.exist");
@ -57,35 +53,27 @@ describe("List widget v2 onItemClick", () => {
.first()
.click({ force: true });
cy.validateToastMessage("ListWidget_Blue_0");
cy.waitUntil(() =>
cy.get(commonlocators.toastmsg).should("not.be.visible"),
);
agHelper.WaitUntilToastDisappear("ListWidget_Blue_0");
cy.get(`${widgetSelector("List1")} ${containerWidgetSelector}`)
.eq(1)
.click({ force: true });
cy.validateToastMessage("ListWidget_Green_1");
cy.waitUntil(() =>
cy.get(commonlocators.toastmsg).should("not.be.visible"),
);
agHelper.WaitUntilToastDisappear("ListWidget_Green_1");
cy.get(`${widgetSelector("List1")} ${containerWidgetSelector}`)
.eq(2)
.click({ force: true });
cy.validateToastMessage("ListWidget_Red_2");
cy.waitUntil(() =>
cy.get(commonlocators.toastmsg).should("not.be.visible"),
);
agHelper.WaitUntilToastDisappear("ListWidget_Red_2");
});
it("2. List widget V2 with onItemClick should be triggered when child widget without event is clicked", () => {
cy.get(widgetSelector("Image1")).first().click({ force: true });
validateToastExist();
agHelper.WaitUntilToastDisappear("ListWidget_Blue_0");
cy.get(widgetSelector("Text1")).first().click({ force: true });
validateToastExist();
agHelper.WaitUntilToastDisappear("ListWidget_Blue_0");
deleteAllWidgetsInContainer();
@ -127,8 +115,7 @@ describe("List widget v2 onItemClick", () => {
cy.get(`${widgetSelector("Button1")} button`)
.first()
.click({ force: true });
validateToastExist();
cy.get(commonlocators.toastBody).first().click();
agHelper.WaitUntilToastDisappear("ListWidget_Blue_0");
cy.get(widgetsPage.toggleOnClick).click({ force: true });
cy.get(".t--property-control-onclick").then(($el) => {

View File

@ -231,7 +231,7 @@ describe("MultiSelect Widget Functionality", function () {
},
];
it("8. Verify MultiSelect resets to default value", function () {
it("6. Verify MultiSelect resets to default value", function () {
resetTestCases.forEach((testCase) => {
const { defaultValue, options, optionsToDeselect, optionsToSelect } =
testCase;
@ -244,6 +244,8 @@ describe("MultiSelect Widget Functionality", function () {
_.propPane.UpdatePropertyFieldValue(
"Default selected values",
JSON.stringify(defaultValue, null, 2),
true,
false,
);
// select other options
_.agHelper.SelectFromMultiSelect(optionsToSelect);
@ -264,7 +266,7 @@ describe("MultiSelect Widget Functionality", function () {
});
});
it("9. Verify MultiSelect deselection behavior", function () {
it("7. Verify MultiSelect deselection behavior", function () {
cy.openPropertyPane("multiselectwidgetv2");
// set options
_.propPane.UpdatePropertyFieldValue(
@ -278,16 +280,14 @@ describe("MultiSelect Widget Functionality", function () {
cy.get(getWidgetSelector("textwidget")).eq(1).should("have.text", "");
});
it("10. Dropdown Functionality To Unchecked Visible Widget", function () {
it("8. Dropdown Functionality To Unchecked Visible Widget", function () {
cy.togglebarDisable(commonlocators.visibleCheckbox);
_.deployMode.DeployApp();
cy.get(publish.multiselectwidgetv2 + " " + ".rc-select-selector").should(
"not.exist",
);
_.deployMode.NavigateBacktoEditor();
});
it("11. Dropdown Functionality To Check Visible Widget", function () {
// Dropdown Functionality To Check Visible Widget", function () {
cy.openPropertyPane("multiselectwidgetv2");
cy.togglebar(commonlocators.visibleCheckbox);
_.deployMode.DeployApp();

View File

@ -107,7 +107,7 @@ describe("Number Slider spec", () => {
_.entityExplorer.SelectEntityByName("NumberSlider1", "Widgets");
// Change the Step size to 10
_.propPane.UpdatePropertyFieldValue("Step size", "10");
_.propPane.UpdatePropertyFieldValue("Step size", "10", true, false);
// Change the slider value
_.agHelper

View File

@ -145,8 +145,8 @@ describe("Range Slider spec", () => {
});
// Change the Step size to 10
_.propPane.UpdatePropertyFieldValue("Min. range", "10");
_.propPane.UpdatePropertyFieldValue("Step size", "10");
_.propPane.UpdatePropertyFieldValue("Min. range", "10", true, false);
_.propPane.UpdatePropertyFieldValue("Step size", "10", true, false);
_.agHelper
.GetElement(_.locators._sliderThumb)

View File

@ -62,6 +62,8 @@ describe("Table V2 sort & filter using display text functionality", () => {
propPane.UpdatePropertyFieldValue(
"Display text",
"{{['X','Y','Z'][currentIndex]}}",
true,
false,
);
agHelper.RemoveEvaluatedPopUp();
table.OpenNFilterTable("name", "contains", "Y");
@ -87,6 +89,8 @@ describe("Table V2 sort & filter using display text functionality", () => {
propPane.UpdatePropertyFieldValue(
"Display text",
"{{['X','Y','Z'][currentIndex]}}",
true,
false,
);
table.SortColumn("name", "ascending");
table.ReadTableRowColumnData(0, 0, "v2").then((data) => {

View File

@ -32,8 +32,6 @@ describe("Table Widget V2 property pane feature validation", function () {
agHelper.AssertAutoSave();
// Validating the button action by clicking
cy.get(widgetsPage.tableV2Btn).last().click({ force: true });
// eslint-disable-next-line cypress/no-unnecessary-waiting
cy.wait(3000);
// Validating the toast message
agHelper.WaitUntilToastDisappear("Successful tobias.funke@reqres.in");

View File

@ -1,4 +1,7 @@
import { apiPage, hostPort } from "../../../../support/Objects/ObjectsCore";
import {
apiPage,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
describe("Validate API URL Evaluated value", () => {
it("1. Check if url object does not crash App", () => {
@ -10,8 +13,8 @@ describe("Validate API URL Evaluated value", () => {
it("2. Check if path field strings have not been JSON.stringified - #24696", () => {
apiPage.CreateApi("SecondAPI");
apiPage.EnterURL(
hostPort.mockApiUrl + `/{{SecondAPI.isLoading}}`,
hostPort.mockApiUrl + `/false`,
tedTestConfig.mockApiUrl + `/{{SecondAPI.isLoading}}`,
tedTestConfig.mockApiUrl + `/false`,
);
});
});

View File

@ -1,10 +1,9 @@
import datasourceFormData from "../../../../fixtures/datasources.json";
import {
apiPage,
agHelper,
jsEditor,
entityItems,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
describe("Test API execution with dynamic binding in URL - Bug #24218", () => {
@ -15,7 +14,7 @@ describe("Test API execution with dynamic binding in URL - Bug #24218", () => {
myVar1: [],
myVar2: {},
myFun1 () {
storeValue("api_url", "${datasourceFormData["mockApiUrl"]}");
storeValue("api_url", "${tedTestConfig.mockApiUrl}");
},
myFun2: async function() {
}

View File

@ -7,18 +7,16 @@ import {
apiPage,
dataSources,
entityItems,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
describe("Test curl import flow", function () {
it("1. Test curl import flow Run and Delete", function () {
cy.fixture("datasources").then((datasourceFormData) => {
localStorage.setItem("ApiPaneV2", "ApiPaneV2");
cy.NavigateToApiEditor();
dataSources.NavigateToDSCreateNew();
cy.get(ApiEditor.curlImage).click({ force: true });
cy.get("textarea").type(
"curl -X GET " + datasourceFormData["mockApiUrl"],
);
cy.get("textarea").type("curl -X GET " + tedTestConfig.mockApiUrl);
cy.importCurl();
cy.get("@curlImport").then((response) => {
expect(response.response.body.responseMeta.success).to.eq(true);
@ -36,7 +34,6 @@ describe("Test curl import flow", function () {
entityType: entityItems.Api,
});
});
});
it("2. Bug:15175 Creating new cURL import query from entity explorer crashes the app", function () {
cy.fixture("datasources").then((datasourceFormData) => {

View File

@ -1,14 +1,15 @@
import { data } from "cypress/types/jquery";
import {
agHelper,
apiPage,
jsEditor,
debuggerHelper,
tedTestConfig,
} from "../../../../support/Objects/ObjectsCore";
describe("Tests functionality of platform function", () => {
it("1. Tests access to outer variable", () => {
cy.fixture("datasources").then((datasourceFormData: any) => {
apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"], "getAllUsers");
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl, "getAllUsers");
jsEditor.CreateJSObject(
`export default {
myFun1: () => {
@ -81,12 +82,12 @@ describe("Tests functionality of platform function", () => {
onBeforeLoad: (win) => {
const latitude = 48.71597183246423;
const longitude = 21.255670821215418;
cy.stub(
win.navigator.geolocation,
"getCurrentPosition",
).callsArgWith(0, {
cy.stub(win.navigator.geolocation, "getCurrentPosition").callsArgWith(
0,
{
coords: { latitude, longitude },
});
},
);
},
});
@ -97,9 +98,7 @@ describe("Tests functionality of platform function", () => {
jsEditor.SelectFunctionDropdown("accessOuterVariableInsideSuccessCb");
jsEditor.RunJSObj();
agHelper.AssertContains("Hello World from success callback", "exist");
jsEditor.SelectFunctionDropdown(
"accessOuterVariableInsideSetIntervalCb",
);
jsEditor.SelectFunctionDropdown("accessOuterVariableInsideSetIntervalCb");
jsEditor.RunJSObj();
agHelper.AssertContains("Hello World from setInterval", "exist");
jsEditor.SelectFunctionDropdown("accessSetIntervalFromSetTimeout");
@ -145,5 +144,4 @@ describe("Tests functionality of platform function", () => {
debuggerHelper.DoesConsoleLogExist("Hello from setTimeout inside API");
});
});
});
});

View File

@ -1,9 +1,11 @@
import { ObjectsRegistry } from "../../../../support/Objects/Registry";
const jsEditor = ObjectsRegistry.JSEditor;
const agHelper = ObjectsRegistry.AggregateHelper;
const apiPage = ObjectsRegistry.ApiPage;
const deployMode = ObjectsRegistry.DeployMode;
const debuggerHelper = ObjectsRegistry.DebuggerHelper;
import {
tedTestConfig,
jsEditor,
agHelper,
apiPage,
deployMode,
debuggerHelper,
} from "../../../../support/Objects/ObjectsCore";
let userName: string;
@ -145,8 +147,7 @@ describe("Tests setTimeout API", function () {
});
it("6. Access to args passed into success/error callback functions in API.run when using setTimeout", () => {
cy.fixture("datasources").then((datasourceFormData: any) => {
apiPage.CreateAndFillApi(datasourceFormData["mockApiUrl"]);
apiPage.CreateAndFillApi(tedTestConfig.mockApiUrl);
jsEditor.CreateJSObject(
`export default {
myVar1: [],
@ -200,10 +201,8 @@ describe("Tests setTimeout API", function () {
agHelper.AssertContains(userName);
});
});
});
it("7. Verifies whether setTimeout executes on page load", () => {
//apiPage.CreateAndFillApi(agHelper.mockApiUrl);
jsEditor.CreateJSObject(
`export default {
myVar1: [],

View File

@ -3,12 +3,12 @@ import {
entityExplorer,
entityItems,
dataSources,
hostPort,
tedTestConfig,
assertHelper,
} from "../../../support/Objects/ObjectsCore";
let dsName: any, jsonSpecies: any, offset: any, insertedRecordId: any;
describe("excludeForAirgap", "Validate Airtable Ds", () => {
describe.skip("excludeForAirgap", "Validate Airtable Ds", () => {
before("Create a new Airtable DS", () => {
dataSources.CreateDataSource("Airtable", true, false);
cy.get("@dsName").then(($dsName) => {
@ -27,12 +27,12 @@ describe("excludeForAirgap", "Validate Airtable Ds", () => {
"List records",
);
agHelper.EnterValue(hostPort.AirtableBase, {
agHelper.EnterValue(tedTestConfig.AirtableBase, {
propFieldName: "",
directInput: false,
inputFieldName: "Base ID ",
});
agHelper.EnterValue(hostPort.AirtableTable, {
agHelper.EnterValue(tedTestConfig.AirtableTable, {
propFieldName: "",
directInput: false,
inputFieldName: "Table name",
@ -236,7 +236,7 @@ describe("excludeForAirgap", "Validate Airtable Ds", () => {
});
dataSources.RunQuery({ toValidateResponse: false }); //For CI failure!
agHelper.Sleep();
agHelper.Sleep(3000);
dataSources.RunQuery();
cy.get("@postExecute").then((resObj: any) => {

View File

@ -64,7 +64,6 @@
"AirtableBase": "appubHrVbovcudwN6",
"AirtableTable": "tblsFCQSskVFf7xNd",
"mockApiUrl": "http://host.docker.internal:5001/v1/mock-api?records=10",
"echoApiUrl": "http://host.docker.internal:5001/v1/mock-api/echo",
"randomCatfactUrl": "http://host.docker.internal:5001/v1/catfact/random",
"multipartAPI": "http://host.docker.internal:5001/v1/mock-api/echo-multipart",

View File

@ -29,6 +29,6 @@ export const onboarding = ObjectsRegistry.Onboarding;
export const autoLayout = ObjectsRegistry.AutoLayout;
export const draggableWidgets = WIDGET;
export const fakerHelper = ObjectsRegistry.FakerHelper;
export const hostPort = ObjectsRegistry.DefaultHostPort;
export const tedTestConfig = ObjectsRegistry.TEDTestConfigs;
export const entityItems = EntityItems;
export const tabs = ObjectsRegistry.Tabs;

View File

@ -23,7 +23,7 @@ import { EmbedSettings } from "../Pages/AppSettings/EmbedSettings";
import { Templates } from "../Pages/Templates";
import { Onboarding } from "../Pages/Onboarding";
import { AutoLayout } from "../Pages/AutoLayout";
import { DefaultHostPort } from "./Hostport";
import { TEDTestConfigs } from "./TestConfigs";
import { AssertHelper } from "../Pages/AssertHelper";
import { ReusableHelper } from "./ReusableHelper";
import { Tabs } from "../Pages/Tabs";
@ -253,12 +253,12 @@ export class ObjectsRegistry {
return ObjectsRegistry.autoLayout__;
}
private static defaultHostPort__: DefaultHostPort;
static get DefaultHostPort(): DefaultHostPort {
if (ObjectsRegistry.defaultHostPort__ === undefined) {
ObjectsRegistry.defaultHostPort__ = new DefaultHostPort();
private static tedTestConfigs__: TEDTestConfigs;
static get TEDTestConfigs(): TEDTestConfigs {
if (ObjectsRegistry.tedTestConfigs__ === undefined) {
ObjectsRegistry.tedTestConfigs__ = new TEDTestConfigs();
}
return ObjectsRegistry.defaultHostPort__;
return ObjectsRegistry.tedTestConfigs__;
}
}

View File

@ -1,4 +1,4 @@
export class DefaultHostPort {
export class TEDTestConfigs {
mongo_authenticationAuthtype = "SCRAM-SHA-1";
mongo_host = "host.docker.internal";
mongo_port = 28017;

View File

@ -30,7 +30,7 @@ export class AssertHelper extends ReusableHelper {
expect(doc.readyState).to.equal("complete");
}),
);
cy.window().should("have.property", "onload");
cy.window({ timeout: 60000 }).should("have.property", "onload");
}
public AssertDelete(entityType: EntityItemsType) {
@ -74,8 +74,8 @@ export class AssertHelper extends ReusableHelper {
// "response.body.responseMeta.status",
// expectedStatus,
// );
this.Sleep(); //Wait a bit for call to finish!
return cy.wait(this.GetAliasName(aliasName));
this.Sleep(2000); //Wait a bit for call to finish!
return cy.wait(this.GetAliasName(aliasName), { responseTimeout: 60000 });
}
public AssertNetworkStatus(aliasName: string, expectedStatus = 200) {

View File

@ -35,14 +35,14 @@ export class DataSources {
private ee = ObjectsRegistry.EntityExplorer;
private locator = ObjectsRegistry.CommonLocators;
private apiPage = ObjectsRegistry.ApiPage;
private hp = ObjectsRegistry.DefaultHostPort;
private tedTestConfig = ObjectsRegistry.TEDTestConfigs;
private assertHelper = ObjectsRegistry.AssertHelper;
public ContainerKVP = (containerName: string) => {
return {
MsSql: this.hp.mssql_docker(containerName),
Arango: this.hp.arango_docker(containerName),
Elasticsearch: this.hp.elastic_docker(containerName),
MsSql: this.tedTestConfig.mssql_docker(containerName),
Arango: this.tedTestConfig.arango_docker(containerName),
Elasticsearch: this.tedTestConfig.elastic_docker(containerName),
};
}; //Container KeyValuePair
@ -402,22 +402,22 @@ export class DataSources {
password = "",
) {
const hostAddress = shouldAddTrailingSpaces
? this.hp.postgres_host + " "
: this.hp.postgres_host;
? this.tedTestConfig.postgres_host + " "
: this.tedTestConfig.postgres_host;
const databaseName = shouldAddTrailingSpaces
? this.hp.postgres_databaseName + " "
: this.hp.postgres_databaseName;
? this.tedTestConfig.postgres_databaseName + " "
: this.tedTestConfig.postgres_databaseName;
this.agHelper.UpdateInputValue(
this._port,
this.hp.postgres_port.toString(),
this.tedTestConfig.postgres_port.toString(),
);
this.agHelper.UpdateInputValue(this._host, hostAddress);
cy.get(this._databaseName).clear().type(databaseName);
cy.get(this._username).type(
username == "" ? this.hp.postgres_username : username,
username == "" ? this.tedTestConfig.postgres_username : username,
);
cy.get(this._password).type(
password == "" ? this.hp.postgres_username : password,
password == "" ? this.tedTestConfig.postgres_username : password,
);
this.ValidateNSelectDropdown("SSL mode", "Default");
}
@ -428,56 +428,79 @@ export class DataSources {
password = "",
) {
const hostAddress = shouldAddTrailingSpaces
? this.hp.oracle_host + " "
: this.hp.oracle_host;
? this.tedTestConfig.oracle_host + " "
: this.tedTestConfig.oracle_host;
const databaseName = shouldAddTrailingSpaces
? this.hp.oracle_name + " "
: this.hp.oracle_name;
? this.tedTestConfig.oracle_name + " "
: this.tedTestConfig.oracle_name;
this.agHelper.UpdateInputValue(this._host, hostAddress);
this.agHelper.UpdateInputValue(this._port, this.hp.oracle_port.toString());
this.agHelper.UpdateInputValue(
this._port,
this.tedTestConfig.oracle_port.toString(),
);
cy.get(this._databaseName).clear().type(databaseName);
cy.get(this._username).type(
username == "" ? this.hp.oracle_username : username,
username == "" ? this.tedTestConfig.oracle_username : username,
);
cy.get(this._password).type(
password == "" ? this.hp.oracle_password : password,
password == "" ? this.tedTestConfig.oracle_password : password,
);
}
public FillMongoDSForm(shouldAddTrailingSpaces = false) {
const hostAddress = shouldAddTrailingSpaces
? this.hp.mongo_host + " "
: this.hp.mongo_host;
? this.tedTestConfig.mongo_host + " "
: this.tedTestConfig.mongo_host;
this.agHelper.UpdateInputValue(this._host, hostAddress);
this.agHelper.UpdateInputValue(this._port, this.hp.mongo_port.toString());
cy.get(this._databaseName).clear().type(this.hp.mongo_databaseName);
this.agHelper.UpdateInputValue(
this._port,
this.tedTestConfig.mongo_port.toString(),
);
cy.get(this._databaseName)
.clear()
.type(this.tedTestConfig.mongo_databaseName);
}
public FillMySqlDSForm(shouldAddTrailingSpaces = false) {
const hostAddress = shouldAddTrailingSpaces
? this.hp.mysql_host + " "
: this.hp.mysql_host;
? this.tedTestConfig.mysql_host + " "
: this.tedTestConfig.mysql_host;
const databaseName = shouldAddTrailingSpaces
? this.hp.mysql_databaseName + " "
: this.hp.mysql_databaseName;
? this.tedTestConfig.mysql_databaseName + " "
: this.tedTestConfig.mysql_databaseName;
this.agHelper.UpdateInputValue(this._host, hostAddress);
this.agHelper.UpdateInputValue(this._port, this.hp.mysql_port.toString());
this.agHelper.UpdateInputValue(
this._port,
this.tedTestConfig.mysql_port.toString(),
);
cy.get(this._databaseName).clear().type(databaseName);
this.agHelper.UpdateInputValue(this._username, this.hp.mysql_username);
cy.get(this._password).type(this.hp.mysql_password);
this.agHelper.UpdateInputValue(
this._username,
this.tedTestConfig.mysql_username,
);
cy.get(this._password).type(this.tedTestConfig.mysql_password);
}
public FillMsSqlDSForm() {
this.agHelper.UpdateInputValue(this._host, this.hp.mssql_host);
this.agHelper.UpdateInputValue(this._port, this.hp.mssql_port.toString());
this.agHelper.UpdateInputValue(this._host, this.tedTestConfig.mssql_host);
this.agHelper.UpdateInputValue(
this._port,
this.tedTestConfig.mssql_port.toString(),
);
this.agHelper.ClearTextField(this._databaseName);
// this.agHelper.UpdateInputValue(
// this._databaseName,
// datasourceFormData["mssql-databaseName"],
// ); //Commenting until MsSQL is init loaded into container
this.agHelper.UpdateInputValue(this._username, this.hp.mssql_username);
this.agHelper.UpdateInputValue(this._password, this.hp.mssql_password);
this.agHelper.UpdateInputValue(
this._username,
this.tedTestConfig.mssql_username,
);
this.agHelper.UpdateInputValue(
this._password,
this.tedTestConfig.mssql_password,
);
}
public FillAirtableDSForm() {
@ -494,14 +517,23 @@ export class DataSources {
}
public FillArangoDSForm() {
this.agHelper.UpdateInputValue(this._host, this.hp.arango_host);
this.agHelper.UpdateInputValue(this._port, this.hp.arango_port.toString());
this.agHelper.UpdateInputValue(this._host, this.tedTestConfig.arango_host);
this.agHelper.UpdateInputValue(
this._port,
this.tedTestConfig.arango_port.toString(),
);
//Validating db name is _system, currently unable to create DB via curl in Arango
this.agHelper
.GetText(this._databaseName, "val")
.then(($dbName) => expect($dbName).to.eq("_system"));
this.agHelper.UpdateInputValue(this._username, this.hp.arango_username);
this.agHelper.UpdateInputValue(this._password, this.hp.arango_password);
this.agHelper.UpdateInputValue(
this._username,
this.tedTestConfig.arango_username,
);
this.agHelper.UpdateInputValue(
this._password,
this.tedTestConfig.arango_password,
);
}
public FillCurlNImport(value: string) {
@ -520,11 +552,11 @@ export class DataSources {
public FillFirestoreDSForm() {
this.agHelper.UpdateInput(
this.locator._inputFieldByName("Database URL"),
this.hp.firestore_database_url,
this.tedTestConfig.firestore_database_url,
);
this.agHelper.UpdateInput(
this.locator._inputFieldByName("Project Id"),
this.hp.firestore_projectID,
this.tedTestConfig.firestore_projectID,
);
// cy.fixture("firestore-ServiceAccCreds").then((json: any) => {
// let ServiceAccCreds = JSON.parse(
@ -544,15 +576,24 @@ export class DataSources {
}
public FillElasticSearchDSForm() {
this.agHelper.UpdateInputValue(this._host, this.hp.elastic_host);
this.agHelper.UpdateInputValue(this._port, this.hp.elastic_port.toString());
this.agHelper.UpdateInputValue(this._username, this.hp.elastic_username);
this.agHelper.UpdateInputValue(this._password, this.hp.elastic_password);
this.agHelper.UpdateInputValue(this._host, this.tedTestConfig.elastic_host);
this.agHelper.UpdateInputValue(
this._port,
this.tedTestConfig.elastic_port.toString(),
);
this.agHelper.UpdateInputValue(
this._username,
this.tedTestConfig.elastic_username,
);
this.agHelper.UpdateInputValue(
this._password,
this.tedTestConfig.elastic_password,
);
}
public FillUnAuthenticatedGraphQLDSForm() {
this.agHelper.GetNClick(this._createBlankGraphQL);
this.apiPage.EnterURL(this.hp.GraphqlApiUrl_TED);
this.apiPage.EnterURL(this.tedTestConfig.GraphqlApiUrl_TED);
this.assertHelper.AssertNetworkStatus("@createNewApi", 201);
}
@ -565,7 +606,7 @@ export class DataSources {
this.CreatePlugIn("Authenticated GraphQL API");
this.agHelper.UpdateInput(
this.locator._inputFieldByName("URL"),
this.hp.GraphqlApiUrl_TED,
this.tedTestConfig.GraphqlApiUrl_TED,
);
this.agHelper.UpdateInputValue(this._graphQLHeaderKey, hKey);
@ -579,8 +620,11 @@ export class DataSources {
}
public FillRedisDSForm() {
this.agHelper.UpdateInputValue(this._host, this.hp.redis_host);
this.agHelper.UpdateInputValue(this._port, this.hp.redis_port.toString());
this.agHelper.UpdateInputValue(this._host, this.tedTestConfig.redis_host);
this.agHelper.UpdateInputValue(
this._port,
this.tedTestConfig.redis_port.toString(),
);
}
public FillS3DSForm() {
@ -1177,7 +1221,7 @@ export class DataSources {
public FillAuthAPIUrl() {
this.agHelper.UpdateInput(
this.locator._inputFieldByName("URL"),
this.hp.authenticatedApiUrl,
this.tedTestConfig.authenticatedApiUrl,
);
}
@ -1215,7 +1259,7 @@ export class DataSources {
}
public FillMongoDatasourceFormWithURI() {
const uri = this.hp.mongo_uri;
const uri = this.tedTestConfig.mongo_uri;
this.ValidateNSelectDropdown(
"Use mongo connection string URI",
"No",
@ -1232,28 +1276,32 @@ export class DataSources {
// Login to TED OAuth
let formData = new FormData();
formData.append("username", this.hp.OAuth_Username);
cy.request("POST", this.hp.OAuth_Host, formData).then((response) => {
formData.append("username", this.tedTestConfig.OAuth_Username);
cy.request("POST", this.tedTestConfig.OAuth_Host, formData).then(
(response) => {
expect(response.status).to.equal(200);
});
},
);
// Create client
let clientData = new FormData();
clientData.append("client_name", "appsmith_cs_post");
clientData.append("client_uri", "http://localhost/");
clientData.append("scope", "profile");
clientData.append("redirect_uri", this.hp.OAuth_RedirectUrl);
clientData.append("redirect_uri", this.tedTestConfig.OAuth_RedirectUrl);
clientData.append("grant_type", grantType);
clientData.append("response_type", "code");
clientData.append("token_endpoint_auth_method", "client_secret_post");
cy.request("POST", this.hp.OAuth_Host + "/create_client", clientData).then(
(response) => {
cy.request(
"POST",
this.tedTestConfig.OAuth_Host + "/create_client",
clientData,
).then((response) => {
expect(response.status).to.equal(200);
},
);
});
// Get Client Credentials
cy.request("GET", this.hp.OAuth_Host).then((response) => {
cy.request("GET", this.tedTestConfig.OAuth_Host).then((response) => {
clientId = response.body.split("client_id: </strong>");
clientId = clientId[1].split("<strong>client_secret: </strong>");
clientSecret = clientId[1].split("<strong>");
@ -1297,7 +1345,7 @@ export class DataSources {
// Fill Auth Form
this.agHelper.UpdateInput(
this.locator._inputFieldByName("URL"),
this.hp.OAuth_ApiUrl,
this.tedTestConfig.OAuth_ApiUrl,
);
this.agHelper.GetNClick(this._authType);
this.agHelper.GetNClick(this._oauth2);
@ -1309,7 +1357,7 @@ export class DataSources {
this.agHelper.UpdateInput(
this.locator._inputFieldByName("Access token URL"),
this.hp.OAUth_AccessTokenUrl,
this.tedTestConfig.OAUth_AccessTokenUrl,
);
this.agHelper.UpdateInput(
@ -1326,7 +1374,7 @@ export class DataSources {
);
this.agHelper.UpdateInput(
this.locator._inputFieldByName("Authorization URL"),
this.hp.OAuth_AuthUrl,
this.tedTestConfig.OAuth_AuthUrl,
);
}

View File

@ -302,7 +302,7 @@ export class EntityExplorer {
this.agHelper.Sleep(500);
}
public DragDropWidgetNVerify(
private DragNDropWidget(
widgetType: string,
x = 300,
y = 100,
@ -342,6 +342,16 @@ export class EntityExplorer {
)
.first()
.trigger("mouseup", x, y, { eventConstructor: "MouseEvent" });
}
public DragDropWidgetNVerify(
widgetType: string,
x = 300,
y = 100,
parentWidgetType = "",
dropTargetId = "",
) {
this.DragNDropWidget(widgetType, x, y, parentWidgetType, dropTargetId);
this.agHelper.AssertAutoSave(); //settling time for widget on canvas!
if (widgetType === "modalwidget") {
cy.get(".t--modal-widget").should("exist");

View File

@ -5,7 +5,7 @@ const GITHUB_API_BASE = "https://api.github.com";
export class GitSync {
public agHelper = ObjectsRegistry.AggregateHelper;
public locator = ObjectsRegistry.CommonLocators;
private hostPort = ObjectsRegistry.DefaultHostPort;
private tedTestConfig = ObjectsRegistry.TEDTestConfigs;
private assertHelper = ObjectsRegistry.AssertHelper;
private _connectGitBottomBar = ".t--connect-git-bottom-bar";
@ -72,7 +72,7 @@ export class GitSync {
public CreateTestGiteaRepo(repo: string, privateFlag = false) {
cy.request({
method: "POST",
url: `${this.hostPort.GITEA_API_BASE_TED}:${this.hostPort.GITEA_API_PORT_TED}/api/v1/org/Cypress/repos`,
url: `${this.tedTestConfig.GITEA_API_BASE_TED}:${this.tedTestConfig.GITEA_API_PORT_TED}/api/v1/org/Cypress/repos`,
headers: {
Authorization: `token ${Cypress.env("GITEA_TOKEN")}`,
},
@ -97,7 +97,7 @@ export class GitSync {
);
this.agHelper.TypeText(
this._gitRepoInput,
`${this.hostPort.GITEA_API_URL_TED}/${repo}.git`,
`${this.tedTestConfig.GITEA_API_URL_TED}/${repo}.git`,
//`git@github.com:${owner}/${repo}.git`,
);
@ -109,7 +109,7 @@ export class GitSync {
// fetch the generated key and post to the github repo
cy.request({
method: "POST",
url: `${this.hostPort.GITEA_API_BASE_TED}:${this.hostPort.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repo}/keys`,
url: `${this.tedTestConfig.GITEA_API_BASE_TED}:${this.tedTestConfig.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repo}/keys`,
headers: {
Authorization: `token ${Cypress.env("GITEA_TOKEN")}`,
},
@ -139,7 +139,7 @@ export class GitSync {
DeleteTestGithubRepo(repo: any) {
cy.request({
method: "DELETE",
url: `${this.hostPort.GITEA_API_BASE_TED}:${this.hostPort.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repo}`,
url: `${this.tedTestConfig.GITEA_API_BASE_TED}:${this.tedTestConfig.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repo}`,
headers: {
Authorization: `token ${Cypress.env("GITEA_TOKEN")}`,
},
@ -269,7 +269,7 @@ export class GitSync {
// fetch the generated key and post to the github repo
cy.request({
method: "POST",
url: `http://${this.hostPort.GITEA_API_BASE_TED}:${this.hostPort.GITEA_API_PORT_TED}/v1/gitserver/addgitssh`,
url: `http://${this.tedTestConfig.GITEA_API_BASE_TED}:${this.tedTestConfig.GITEA_API_PORT_TED}/v1/gitserver/addgitssh`,
//body: formdata,
body: {
sshkey: generatedKey,
@ -330,7 +330,7 @@ export class GitSync {
cy.request({
method: "GET",
url:
`http://${this.hostPort.GITEA_API_BASE_TED}:${this.hostPort.GITEA_API_PORT_TED}/v1/gitserver/addrepo?reponame=` +
`http://${this.tedTestConfig.GITEA_API_BASE_TED}:${this.tedTestConfig.GITEA_API_PORT_TED}/v1/gitserver/addrepo?reponame=` +
repo,
}).then((response) => {
remoteUrl = JSON.stringify(response.body).replace(/['"]+/g, "");

View File

@ -24,6 +24,7 @@ export class Onboarding {
this._aggregateHelper.AssertElementVisible(
OnboardingLocator.datasourcePage,
);
this.closeIntroModal();
this._aggregateHelper.AssertElementAbsence(
OnboardingLocator.introModal,
10000,

View File

@ -291,12 +291,15 @@ export class PropertyPane {
propFieldName: string,
valueToEnter: string,
toVerifySave = true,
toValidateNetworkCall = true,
) {
this.agHelper.UpdateCodeInput(
this.locator._existingFieldTextByName(propFieldName),
valueToEnter,
);
toVerifySave && this.agHelper.AssertAutoSave(); //Allowing time for saving entered value
toValidateNetworkCall &&
this.assertHelper.AssertNetworkStatus("@updateLayout");
}
public ValidatePropertyFieldValue(

View File

@ -9,7 +9,7 @@ import { ObjectsRegistry } from "../support/Objects/Registry";
let gitSync = ObjectsRegistry.GitSync,
agHelper = ObjectsRegistry.AggregateHelper,
hostPort = ObjectsRegistry.DefaultHostPort;
tedTestConfig = ObjectsRegistry.TEDTestConfigs;
const commonLocators = require("../locators/commonlocators.json");
const GITHUB_API_BASE = "https://api.github.com";
@ -342,7 +342,7 @@ Cypress.Commands.add(
);
cy.get(gitSyncLocators.gitRepoInput).type(
//`git@github.com:${owner}/${repo}.git`,
`${hostPort.GITEA_API_URL_TED}/${repo}.git`,
`${tedTestConfig.GITEA_API_URL_TED}/${repo}.git`,
);
cy.get(gitSyncLocators.generateDeployKeyBtn).click();
cy.wait(`@generateKey-${repo}`).then((result) => {
@ -365,7 +365,7 @@ Cypress.Commands.add(
cy.request({
method: "POST",
url: `${hostPort.GITEA_API_BASE_TED}:${hostPort.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repo}/keys`,
url: `${tedTestConfig.GITEA_API_BASE_TED}:${tedTestConfig.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repo}/keys`,
headers: {
Authorization: `token ${Cypress.env("GITEA_TOKEN")}`,
},
@ -475,7 +475,7 @@ Cypress.Commands.add(
cy.request({
method: "POST",
url: `${hostPort.GITEA_API_BASE_TED}:${hostPort.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repo}/keys`,
url: `${tedTestConfig.GITEA_API_BASE_TED}:${tedTestConfig.GITEA_API_PORT_TED}/api/v1/repos/Cypress/${repo}/keys`,
headers: {
Authorization: `token ${Cypress.env("GITEA_TOKEN")}`,
},