Skip to content

Commit

Permalink
Merge pull request #29 from SoftwareAG/feature/automation_location-pr…
Browse files Browse the repository at this point in the history
…operties

E2E fixes added.
  • Loading branch information
AmarjyotiSAG committed Nov 28, 2023
2 parents 021c296 + 17fc96e commit db2d2d1
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 23 deletions.
36 changes: 18 additions & 18 deletions cypress-E2E-tests/cypress/integration/asset_properties_widget.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const title = 'Asset Properties Updated';
const titleTextElement = 'c8y-form-group > label';
const titleFieldId = '#widgetTitle';
const searchElement = "input[placeholder='Search for groups or assets…']";
const assetsTextElement = "p[title='Assets']";
const assetsTextElement = "p[title='Groups']";
const textElement = "c8y-asset-selector p[class*='text-12']";
const selectPropElement = "h3[id='modal-title']";
const backArrowElement = "i[c8yicon='angle-left']";
Expand All @@ -24,6 +24,7 @@ const assetNameElement = 'c8y-asset-properties-item > p';
const removePopupElement = 'h3 span';
const propFeildElement = "input[type='text']";
const saveElement = 'button[data-cy="asset-properties-save-button"]';
const assetTitleName = '[title="check 1"] ';
const groupObject = {
label: 'Group',
name: 'group',
Expand Down Expand Up @@ -168,23 +169,22 @@ describe('Asset Properties Widget: Configuration/View screen tests', function ()
cy.get(keyElement).eq(2).should('not.exist');
});

// Type in the title without selecting any asset, verify that clicking on save button should result in an alert message.
// Type in the title without selecting any asset, verify that clicking on save button should be disabled until asset is selected.
it('TC_Asset_Properties_Widget_config_006', () => {
const configElement = 'c8y-asset-properties-config';
const alertMessage = ' Select an asset from the list. ';
cy.get(titleFieldId).clear();
cy.get(titleFieldId).type(title);
cy.get(asset_properties_widget_elements.saveButton).click();
cy.get(configElement).should('contain.text', alertMessage);
cy.get(asset_properties_widget_elements.saveButton).should('be.disabled');
cy.selectAsset(assetName);
cy.get(configElement).should('not.contain.text', alertMessage);
cy.get(asset_properties_widget_elements.saveButton).should('be.enabled');
});

// Type in the title by selecting any asset, click on save and verify if the changes are getting reflected
it('TC_Asset_Properties_Widget_config_007', () => {
cy.get(titleFieldId).clear();
cy.get(titleFieldId).type(title);
cy.selectAsset(assetName);
// added wait to resolve flakyness after selecting asset its takes few ms to enabled save button
cy.wait(1000);
cy.get(asset_properties_widget_elements.saveButton).click();
cy.get(cardTitleElement).should('contain.text', title);
cy.deleteCard();
Expand Down Expand Up @@ -283,7 +283,7 @@ describe('Asset Properties Widget: Configuration/View screen tests', function ()
const selectionTextElement = 'c8y-asset-selector > div > p';
cy.get(selectionTextElement).should('have.text', ' Asset selection ');
cy.get(searchElement).should('be.visible');
cy.get(assetsTextElement).should('have.text', ' Assets ');
cy.get(assetsTextElement).should('have.text', ' Groups ');
});

// User should be able to select the asset.
Expand All @@ -299,7 +299,7 @@ describe('Asset Properties Widget: Configuration/View screen tests', function ()
const subassetName = 'check 2';
cy.get(asset_properties_widget_elements.loadMoreButton).click();
cy.get(`p[title='${assetName1}']`).click();
cy.get(textElement).should('contains.text', 'Assets > ' + assetName1);
cy.get(textElement).should('contains.text', ' Groups > ' + assetName1);

Check warning on line 302 in cypress-E2E-tests/cypress/integration/asset_properties_widget.cy.ts

View workflow job for this annotation

GitHub Actions / lint / lint

Unexpected string concatenation
cy.get(`p[title='${subassetName}']`).should('be.visible');
});

Expand All @@ -309,10 +309,10 @@ describe('Asset Properties Widget: Configuration/View screen tests', function ()
const subassetName = 'check 2';
cy.get(asset_properties_widget_elements.loadMoreButton).click();
cy.get(`p[title='${assetName1}']`).click();
cy.get(textElement).should('contains.text', 'Assets > ' + assetName1);
cy.get(textElement).should('contains.text', 'Groups > ' + assetName1);

Check warning on line 312 in cypress-E2E-tests/cypress/integration/asset_properties_widget.cy.ts

View workflow job for this annotation

GitHub Actions / lint / lint

Unexpected string concatenation
cy.get(`p[title='${subassetName}']`).should('be.visible');
cy.get(backArrowElement).click();
cy.get(assetsTextElement).should('contain.text', 'Assets');
cy.get(assetsTextElement).should('contain.text', 'Groups');
});

// User can select only one asset at a time.
Expand All @@ -322,7 +322,7 @@ describe('Asset Properties Widget: Configuration/View screen tests', function ()
cy.get(asset_properties_widget_elements.loadMoreButton).click();
cy.selectAsset(assetName);
cy.selectAsset(assetName1);
cy.get(`div[title='Assets > ${assetName}']`)
cy.get(`div[title='Groups > ${assetName}']`)
.children('div[class*="checkbox"]')
.children('label')
.children('input[type="radio"]')
Expand All @@ -334,11 +334,11 @@ describe('Asset Properties Widget: Configuration/View screen tests', function ()
const assetName = 'check 1';
cy.get(searchElement).type(assetName);
cy.get(searchResultsElement).should('have.text', 'Search results');
cy.get('c8y-li > div').eq(1).should('contains.text', assetName).click();
cy.get(assetTitleName).should('contains.text', assetName).click();
cy.get(asset_properties_widget_elements.radioButton).should('be.checked');
cy.get(`p[title='${assetName}']`).should('contains.text', assetName);
cy.get("button[title='Search']").click();
cy.get(assetsTextElement).should('contain.text', 'Assets');
cy.get(assetsTextElement).should('contain.text', 'Groups');
});

// On selecting the asset,user should be able to view all asset properties associated with that asset.Verify if checkboxes for properties are selected by default
Expand All @@ -347,7 +347,7 @@ describe('Asset Properties Widget: Configuration/View screen tests', function ()
const assetName = 'check 1';
const subassetName = 'check 1 > check 2 > check 4';
cy.get(searchElement).type(assetName);
cy.get('c8y-li > div').eq(1).should('contains.text', assetName).click();
cy.get(assetTitleName).should('contains.text', assetName).click();
cy.get('i[c8yicon="angle-right"]').click();
cy.selectSubasset(subassetName);
cy.get(asset_properties_widget_elements.addPropertyButton).click();
Expand Down Expand Up @@ -381,17 +381,17 @@ describe('Asset Properties Widget: Configuration/View screen tests', function ()
cy.get(searchElement).type(assetName);
cy.get(searchResultsElement).should('have.text', 'Search results');
cy.get(strongTextElement).should('have.text', 'No match found.');
cy.get(smallTextElement).should('have.text', 'Try to rephrase your search word.');
cy.get(smallTextElement).should('have.text', ' Try to rephrase your search word. ');
});

// Verify that on click of an asset in Asset selection section it should navigate to the next screen displaying empty state message
it('TC_Asset_Properties_Widget_config_030', () => {
const assetName = 'check 3';
const filterElement = "button[title='Apply filter']";
cy.get(assetsTextElement).should('contain.text', 'Assets');
cy.get(assetsTextElement).should('contain.text', 'Groups');
cy.get(asset_properties_widget_elements.loadMoreButton).click();
cy.get(`p[title='${assetName}']`).click();
cy.get(textElement).should('contains.text', 'Assets > ' + assetName);
cy.get(textElement).should('contains.text', 'Groups > ' + assetName);

Check warning on line 394 in cypress-E2E-tests/cypress/integration/asset_properties_widget.cy.ts

View workflow job for this annotation

GitHub Actions / lint / lint

Unexpected string concatenation
cy.get(backArrowElement).should('be.visible');
cy.get('input[placeholder="Filter this column…"]').click();
cy.get(filterElement).should('be.visible');
Expand Down
4 changes: 2 additions & 2 deletions cypress-E2E-tests/cypress/integration/integration.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@ describe('Asset Properties Widget: Integration tests', function () {
it('TC_Asset_Properties_Widget_Integration_003', () => {
const assetName = 'Test Asset3';
cy.selectAssetPropertyAndSave(assetName, propKey);
cy.get(propValueElement).should('contain.text', 'Not Defined');
cy.get(propValueElement).should('contain.text', ' Undefined ');

// delete asset in digital twin manager
cy.visitAndWaitUntilPageLoad(dtmURL);
Expand All @@ -178,7 +178,7 @@ describe('Asset Properties Widget: Integration tests', function () {
const assetName = 'Test Asset2';
const confirmButton = "button[title='Confirm']";
cy.selectAssetPropertyAndSave(assetName, propKey);
cy.get(propValueElement).should('contain.text', 'Not Defined');
cy.get(propValueElement).should('contain.text', ' Undefined ');
cy.deleteCard();

// remove property in digital twin manager
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ declare global {
}

Cypress.Commands.add('selectAsset', assetName => {
cy.get(`div[title='Assets > ${assetName}']`)
cy.get(`div[title='Groups > ${assetName}']`)
.children('div[class*="checkbox"]')
.children('label')
.children('input[type="radio"]')
Expand Down Expand Up @@ -168,7 +168,10 @@ Cypress.Commands.add('deleteWidgetInstances', title => {
});

Cypress.Commands.add('selectAssetAndSave', assetName => {

Check failure on line 171 in cypress-E2E-tests/cypress/support/asset_properties_widget.commands.ts

View workflow job for this annotation

GitHub Actions / lint / lint

Trailing spaces not allowed
cy.selectAsset(assetName);
// added wait to resolve flakyness after selecting asset its takes few ms to enabled save button
cy.wait(1000);
cy.get(asset_properties_widget_elements.saveButton).click();
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export default {
editWidgetButton: "button[title='Edit widget']",
removeWidgetButton: "button[title='Remove widget']",
removeButton: "button[title='Remove']",
loadMoreButton: "button[title='Assets > Load more']",
loadMoreButton: "button[title='Groups > Load more']",
changeButton: "button[title='Change']",
widgetDashboardAddWidgetButton: "[data-cy='widget-dashboard--Add-widget']",
saveAssetTypeButton: '.card-footer.separator.sticky-bottom>.btn.btn-primary',
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "cumulocity-asset-properties-widget-plugin",
"version": "1.0.0",
"version": "1.0.1",
"description": "Asset properties",
"author": "Amarjyoti Raj - Software AG, IOT-Apps R&D",
"license": "Apache 2.0",
Expand Down

0 comments on commit db2d2d1

Please sign in to comment.