Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
a88888a
new test cases fof action
sagar-qa007 Nov 19, 2024
4790898
Update for flaky
sagar-qa007 Nov 20, 2024
cc8200d
Alert messsage code done
sagar-qa007 Nov 21, 2024
ba6a61d
update for test
sagar-qa007 Nov 21, 2024
59e9362
Modal related cases done
sagar-qa007 Nov 21, 2024
6b0d5dc
local storage related test cases
sagar-qa007 Nov 25, 2024
9906ca7
Run setup
sagar-qa007 Nov 25, 2024
1203bf5
update only
sagar-qa007 Nov 26, 2024
25a3d63
Merge remote-tracking branch 'origin/release' into test/frameworkfunc…
sagar-qa007 Nov 26, 2024
9ce0a1b
Saved changes for download
sagar-qa007 Nov 26, 2024
41ffc6f
Merge remote-tracking branch 'origin/release' into test/frameworkfunc…
sagar-qa007 Nov 26, 2024
0b7f0de
Merge remote-tracking branch 'origin/release' into test/frameworkfunc…
sagar-qa007 Nov 26, 2024
056527a
Merge remote-tracking branch 'origin/release' into test/frameworkfunc…
sagar-qa007 Nov 26, 2024
405a351
Merge remote-tracking branch 'origin/release' into test/frameworkfunc…
sagar-qa007 Nov 26, 2024
ba3a393
Merge remote-tracking branch 'origin/release' into test/frameworkfunc…
sagar-qa007 Nov 26, 2024
af97ce4
Minor update
sagar-qa007 Nov 27, 2024
68f0553
Merge remote-tracking branch 'origin/release' into test/frameworkfunc…
sagar-qa007 Nov 27, 2024
390638a
Merge remote-tracking branch 'origin/release' into test/frameworkfunc…
sagar-qa007 Nov 27, 2024
9038912
reverted only
sagar-qa007 Nov 28, 2024
359b47b
Download fun test cases
sagar-qa007 Nov 28, 2024
62fa7f0
Reverted only
sagar-qa007 Nov 28, 2024
4e0c35b
Completed download file
sagar-qa007 Nov 28, 2024
ceef715
Minor optimisations
sagar-qa007 Nov 29, 2024
683cf24
Optimisation for jsobject
sagar-qa007 Nov 29, 2024
dc24c4b
Copy to clipboard cases done
sagar-qa007 Nov 29, 2024
93575cc
Reset widget test cases
sagar-qa007 Nov 30, 2024
ae8b90a
Completed basic code for setInterval
sagar-qa007 Dec 1, 2024
ab2cf12
Data added
sagar-qa007 Dec 1, 2024
92fc503
Merge branch 'release' into test/frameworkfunctions
sagar-qa007 Dec 3, 2024
f6251eb
Small update for code
sagar-qa007 Dec 3, 2024
704c5c0
Merge remote-tracking branch 'origin' into test/frameworkfunctions
sagar-qa007 Dec 3, 2024
42f5163
Merge remote-tracking branch 'origin' into test/frameworkfunctions
sagar-qa007 Dec 3, 2024
cbf2217
Updated interval tc
sagar-qa007 Dec 3, 2024
bff309f
Watch geo location cases
sagar-qa007 Dec 3, 2024
d0fc084
some work progress
sagar-qa007 Dec 4, 2024
339795e
Merge branch 'release' into test/frameworkfunctions
yatinappsmith Dec 4, 2024
7359fe9
Update with postmessage
sagar-qa007 Dec 5, 2024
de199ee
Update for postwindow
sagar-qa007 Dec 6, 2024
b2c711b
Merge branch 'release' into test/frameworkfunctions
sagar-qa007 Dec 9, 2024
f65f265
Basic setup
sagar-qa007 Dec 9, 2024
5878c38
Some steps written
sagar-qa007 Dec 9, 2024
dba856b
Progress saved
sagar-qa007 Dec 10, 2024
eb7bf2a
remove only
sagar-qa007 Dec 10, 2024
6dc9327
Fix local store and actionselector done
sagar-qa007 Dec 10, 2024
9756ce8
Fix for download file
sagar-qa007 Dec 10, 2024
4ea1a3b
Merge branch 'release' into test/frameworkfunctions
sagar-qa007 Dec 10, 2024
98300a1
Modal and stop location fixes
sagar-qa007 Dec 10, 2024
b8e53e2
Postwindownew cases
sagar-qa007 Dec 10, 2024
46ff2ce
Updated name
sagar-qa007 Dec 10, 2024
6dae3c9
Deleted unused file
sagar-qa007 Dec 10, 2024
c14d734
Minor update
sagar-qa007 Dec 10, 2024
9cda459
Prettier error resolve
sagar-qa007 Dec 10, 2024
09176be
Homepage revert
sagar-qa007 Dec 10, 2024
6560706
HomepageTs revert
sagar-qa007 Dec 10, 2024
e6768cb
Update for test fix
sagar-qa007 Dec 11, 2024
c6250d0
Update
sagar-qa007 Dec 11, 2024
fd8d5e2
Merge branch 'release' into test/frameworkfunctions
sagar-qa007 Dec 11, 2024
d89d870
Fix cases
sagar-qa007 Dec 12, 2024
56f7a2e
Merge remote-tracking branch 'origin' into test/frameworkfunctions
sagar-qa007 Dec 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,306 @@
import {
agHelper,
appSettings,
deployMode,
draggableWidgets,
entityExplorer,
jsEditor,
locators,
propPane,
} from "../../../../support/Objects/ObjectsCore";
import EditorNavigation, {
EntityType,
} from "../../../../support/Pages/EditorNavigation";

describe(
"To verify action selector - Local store value function",
{ tags: ["@tag.JS"] },
() => {
before(() => {
entityExplorer.DragDropWidgetNVerify(draggableWidgets.BUTTON, 100, 100);
entityExplorer.DragDropWidgetNVerify(draggableWidgets.TEXT, 200, 200);
});

it("1. To verify if storeValue() can store a boolean value in local storage.", () => {
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.SelectPlatformFunction("onClick", "Store value");
agHelper.TypeText(
propPane._actionSelectorFieldByLabel("Key"),
"booleanKey",
);
agHelper.TypeText(propPane._actionSelectorFieldByLabel("Value"), "true");
agHelper.GetNClick(propPane._actionSelectorPopupClose);
agHelper.ClickButton("Submit");
EditorNavigation.SelectEntityByName("Text1", EntityType.Widget);
propPane.TypeTextIntoField(
"Text",
`{{localStorage.getItem("booleanKey")}}`,
);
agHelper.AssertText(locators._textInside, "text", "true");
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);

//deploy verification
deployMode.DeployApp();
agHelper.AssertElementVisibility(appSettings.locators._header);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "true");
deployMode.NavigateBacktoEditor();
EditorNavigation.SelectEntityByName("Page1", EntityType.Page);

// JSobject verification
const jsObjectBody = `export default {
myFun1 () {
{{storeValue('booleanKey', 'true');}}
},
}`;

jsEditor.CreateJSObject(jsObjectBody, {
paste: true,
completeReplace: true,
toRun: false,
prettify: false,
shouldCreateNewJSObj: true,
});

EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.ToggleJSMode("onClick", true);
propPane.EnterJSContext("onClick", "{{JSObject1.myFun1()}}", true, false);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "true");
EditorNavigation.SelectEntityByName("Page1", EntityType.Page);
deployMode.DeployApp();
agHelper.AssertElementVisibility(appSettings.locators._header);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "true");
deployMode.NavigateBacktoEditor();
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.ToggleJSMode("onClick", false);
agHelper.GetNClick(propPane._actionCardByTitle("Execute a JS function"));
agHelper.GetNClick(propPane._actionSelectorDelete);
});

it("2. To verify that when the persist parameter is set to false, the value is not saved after refreshing the page.", () => {
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.ToggleJSMode("onClick", false);
propPane.SelectPlatformFunction("onClick", "Store value");
agHelper.TypeText(
propPane._actionSelectorFieldByLabel("Key"),
"booleanKey",
);
agHelper.TypeText(propPane._actionSelectorFieldByLabel("Value"), "false");
agHelper.RefreshPage();
agHelper.AssertText(locators._textInside, "text", "true");
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.ToggleJSMode("onClick", false);
agHelper.GetNClick(propPane._actionCardByTitle("Store value"));
agHelper.GetNClick(propPane._actionSelectorDelete);
});

it("3. To verify value stored under a key can be successfully overwritten.", () => {
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.SelectPlatformFunction("onClick", "Store value");
agHelper.TypeText(
propPane._actionSelectorFieldByLabel("Key"),
"booleanKey",
);
agHelper.TypeText(
propPane._actionSelectorFieldByLabel("Value"),
"oldValue",
);
agHelper.GetNClick(propPane._actionSelectorPopupClose);
agHelper.ClickButton("Submit");
EditorNavigation.SelectEntityByName("Text1", EntityType.Widget);
propPane.TypeTextIntoField(
"Text",
`{{localStorage.getItem("booleanKey")}}`,
);

EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.SelectPlatformFunctionExisting("Store value", 0);
agHelper.RemoveChars(
propPane._actionSelectorFieldByLabel("Value"),
20,
0,
);

agHelper.TypeText(
propPane._actionSelectorFieldByLabel("Value"),
"newValue",
);
agHelper.GetNClick(propPane._actionSelectorPopupClose);
agHelper.ClickButton("Submit");

EditorNavigation.SelectEntityByName("Text1", EntityType.Widget);
agHelper.WaitUntilEleAppear(locators._textInside);
propPane.TypeTextIntoField(
"Text",
`{{localStorage.getItem("booleanKey")}}`,
);

agHelper.AssertText(locators._textInside, "text", "newValue");
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
agHelper.GetNClick(propPane._actionCardByTitle("Store value"));
agHelper.GetNClick(propPane._actionSelectorDelete);
});

// Open bug present : https://github.com/appsmithorg/appsmith/issues/37671
it.skip("4. To verify that calling storeValue() without a key parameter does not store any value.", () => {
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.SelectPlatformFunction("onClick", "Store value");
agHelper.TypeText(propPane._actionSelectorFieldByLabel("Value"), "true");
agHelper.GetNClick(propPane._actionSelectorPopupClose);
agHelper.ClickButton("Submit");
EditorNavigation.SelectEntityByName("Text1", EntityType.Widget);
propPane.TypeTextIntoField("Text", `{{localStorage.getItem("")}}`, true);
agHelper.AssertText(locators._textInside, "text", "true");
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
agHelper.GetNClick(propPane._actionCardByTitle("Store value"));
agHelper.GetNClick(propPane._actionSelectorDelete);
});

// Open bug present : https://github.com/appsmithorg/appsmith/issues/37671
it.skip("5. To verify that calling storeValue() with a non-string key fails. The value should not be stored, and an error should be thrown due to an invalid key type.", () => {
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.SelectPlatformFunction("onClick", "Store value");
agHelper.TypeText(propPane._actionSelectorFieldByLabel("Value"), "true");
agHelper.GetNClick(propPane._actionSelectorPopupClose);
agHelper.ClickButton("Submit");
EditorNavigation.SelectEntityByName("Text1", EntityType.Widget);
propPane.TypeTextIntoField("Text", `{{localStorage.getItem("")}}`, true);
agHelper.ClickOutside();
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "true");
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
agHelper.GetNClick(propPane._actionCardByTitle("Store value"));
agHelper.GetNClick(propPane._actionSelectorDelete);
});

it("6. To verify if the value stored using storeValue() can be accessed through appsmith.store", () => {
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.SelectPlatformFunction("onClick", "Store value");
agHelper.TypeText(
propPane._actionSelectorFieldByLabel("Key"),
"booleanKey",
);
agHelper.TypeText(propPane._actionSelectorFieldByLabel("Value"), "true");
agHelper.GetNClick(propPane._actionSelectorPopupClose);
agHelper.ClickButton("Submit");
EditorNavigation.SelectEntityByName("Text1", EntityType.Widget);
propPane.TypeTextIntoField("Text", `{{appsmith.store.booleanKey}}`);
agHelper.AssertText(locators._textInside, "text", "true");

// Deploy verification for both key-value pairs
deployMode.DeployApp();
agHelper.AssertElementVisibility(appSettings.locators._header);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "true");
deployMode.NavigateBacktoEditor();
EditorNavigation.SelectEntityByName("Page1", EntityType.Page);

// JSObject verification for both key-value pairs
const jsObjectBody = `export default {
myFun1 () {
{{appsmith.store.booleanKey}}
},
}`;

jsEditor.CreateJSObject(jsObjectBody, {
paste: true,
completeReplace: true,
toRun: false,
prettify: false,
shouldCreateNewJSObj: true,
});

EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.ToggleJSMode("onClick", true);
propPane.EnterJSContext("onClick", "{{JSObject1.myFun1()}}", true, false);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "true");
EditorNavigation.SelectEntityByName("Page1", EntityType.Page);
deployMode.DeployApp();
agHelper.AssertElementVisibility(appSettings.locators._header);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "true");
deployMode.NavigateBacktoEditor();

EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.ToggleJSMode("onClick", false);
agHelper.GetNClick(propPane._actionCardByTitle("Execute a JS function"));
agHelper.GetNClick(propPane._actionSelectorDelete);
});

it("7. To verify if multiple values can be stored at once using an object.", () => {
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.SelectPlatformFunction("onClick", "Store value");
agHelper.TypeText(
propPane._actionSelectorFieldByLabel("Key"),
"objectKey",
);
agHelper.TypeText(
propPane._actionSelectorFieldByLabel("Value"),
JSON.stringify({ key1: "value1", key2: "value2" }),
);
agHelper.GetNClick(propPane._actionSelectorPopupClose);
agHelper.ClickButton("Submit");

entityExplorer.DragDropWidgetNVerify(draggableWidgets.TEXT, 200, 700);
EditorNavigation.SelectEntityByName("Text1", EntityType.Widget);
propPane.TypeTextIntoField(
"Text",
`{{JSON.parse(localStorage.getItem("objectKey")).key1}}`,
);
agHelper.AssertText(locators._textInside, "text", "value1");

EditorNavigation.SelectEntityByName("Text2", EntityType.Widget);
propPane.TypeTextIntoField(
"Text",
`{{JSON.parse(localStorage.getItem("objectKey")).key2}}`,
);
agHelper.AssertText(locators._textInside, "text", "value2", 1);

// Deploy verification for both key-value pairs
deployMode.DeployApp();
agHelper.AssertElementVisibility(appSettings.locators._header);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "value1");
agHelper.AssertText(locators._textInside, "text", "value2", 1);
deployMode.NavigateBacktoEditor();
EditorNavigation.SelectEntityByName("Page1", EntityType.Page);

// JSObject verification for both key-value pairs
const jsObjectBody = `export default {
myFun1 () {
{{storeValue('objectKey', JSON.stringify({ key1: 'value1', key2: 'value2' }));}}
},
}`;

jsEditor.CreateJSObject(jsObjectBody, {
paste: true,
completeReplace: true,
toRun: false,
prettify: false,
shouldCreateNewJSObj: true,
});

EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.ToggleJSMode("onClick", true);
propPane.EnterJSContext("onClick", "{{JSObject1.myFun1()}}", true, false);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "value1");
agHelper.AssertText(locators._textInside, "text", "value2", 1);
EditorNavigation.SelectEntityByName("Page1", EntityType.Page);
deployMode.DeployApp();
agHelper.AssertElementVisibility(appSettings.locators._header);
agHelper.ClickButton("Submit");
agHelper.AssertText(locators._textInside, "text", "value1");
agHelper.AssertText(locators._textInside, "text", "value2", 1);
deployMode.NavigateBacktoEditor();

EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
propPane.ToggleJSMode("onClick", false);
agHelper.GetNClick(propPane._actionCardByTitle("Execute a JS function"));
agHelper.GetNClick(propPane._actionSelectorDelete);
});
},
);
Loading