- {{scope.row.lastDate.date}}
- {{scope.row.lastDate.time}}
+ {{scope.row.lastDate.date}}
+ {{scope.row.lastDate.time}}
-
@@ -133,17 +133,17 @@
-
- {{i18n('push-notification.start')}}
- {{i18n('push-notification.stop')}}
- {{i18n('push-notification.edit')}}
- {{i18n('push-notification.edit-draft')}}
- {{i18n('push-notification.edit')}}
- {{i18n('push-notification.duplicate')}}
- {{i18n('push-notification.delete')}}
- {{i18n('push-notification.resend')}}
- {{i18n('push-notification.approve')}}
- {{i18n('push-notification.reject')}}
+
+ {{i18n('push-notification.start')}}
+ {{i18n('push-notification.stop')}}
+ {{i18n('push-notification.edit')}}
+ {{i18n('push-notification.edit-draft')}}
+ {{i18n('push-notification.edit')}}
+ {{i18n('push-notification.duplicate')}}
+ {{i18n('push-notification.delete')}}
+ {{i18n('push-notification.resend')}}
+ {{i18n('push-notification.approve')}}
+ {{i18n('push-notification.reject')}}
diff --git a/plugins/star-rating/frontend/public/templates/comments-table.html b/plugins/star-rating/frontend/public/templates/comments-table.html
index c1d4c3fd46f..7d705742b31 100644
--- a/plugins/star-rating/frontend/public/templates/comments-table.html
+++ b/plugins/star-rating/frontend/public/templates/comments-table.html
@@ -23,7 +23,7 @@
-
+
{{ rowScope.row.email }}
diff --git a/ui-tests/cypress/e2e/onboarding/onboarding.cy.js b/ui-tests/cypress/e2e/onboarding/onboarding.cy.js
index 63f36509e99..d7f665328dc 100644
--- a/ui-tests/cypress/e2e/onboarding/onboarding.cy.js
+++ b/ui-tests/cypress/e2e/onboarding/onboarding.cy.js
@@ -365,15 +365,15 @@ describe('Complete Onboarding', () => {
//analyticsEventsOverviewPageHelpers.verifyFullDataPageElements(); //TODO: Data is not being generated with the populator. Need to generate the data
navigationHelpers.goToAnalyticsAllEvents();
analyticsEventsPageHelpers.verifyFullDataPageElements();
+ navigationHelpers.goToPushNotifications();
+ messagingPageHelpers.verifyFullDataPageElements();
+ navigationHelpers.goToFeedbackRatingsPage();
+ feedbackRatingsPageHelpers.verifyFullDataPageElements();
+ feedbackRatingsPageHelpers.clickRatingWidgetsTab();
+ feedbackRatingWidgetsPageHelpers.verifyFullDataPageElements();
+ navigationHelpers.goToCrashesOverviewPage();
+ crashesPageHelpers.verifyFullDataPageElements();
//TODO: Add the cases of the following pages
- //navigationHelpers.goToPushNotifications();
- //messagingPageHelpers.verifyFullDataPageElements();
- //navigationHelpers.goToFeedbackRatingsPage();
- //feedbackRatingsPageHelpers.verifyFullDataPageElements();
- //feedbackRatingsPageHelpers.clickRatingWidgetsTab();
- //feedbackRatingWidgetsPageHelpers.verifyFullDataPageElements();
- //navigationHelpers.goToCrashesOverviewPage();
- //crashesPageHelpers.verifyFullDataPageElements();
//navigationHelpers.goToRemoteConfigPage();
//remoteConfigPageHelpers.verifyFullDataPageElements();
//navigationHelpers.goToReportManagerPage();
diff --git a/ui-tests/cypress/lib/dashboard/analytics/sessions/overview.js b/ui-tests/cypress/lib/dashboard/analytics/sessions/overview.js
index a0562322192..43f87832d9b 100644
--- a/ui-tests/cypress/lib/dashboard/analytics/sessions/overview.js
+++ b/ui-tests/cypress/lib/dashboard/analytics/sessions/overview.js
@@ -3,7 +3,6 @@ import {
analyticsSessionOverviewEChartElements,
analyticsSessionOverviewDataTableElements
} from "../../../../support/elements/dashboard/analytics/sessions/overview";
-const helper = require('../../../../support/helper');
const verifyStaticElementsOfPage = () => {
cy.verifyElement({
@@ -225,7 +224,7 @@ const verifySessionsOverviewChart = ({
const verifySessionsOverviewDataFromTable = ({
index = 0,
isEmpty = false,
- date = helper.getCurrentMonth(),
+ //date = helper.getCurrentMonth(),
totalUsers = null,
newUsers = null,
returningUsers = null
@@ -234,8 +233,10 @@ const verifySessionsOverviewDataFromTable = ({
cy.clickElement(analyticsSessionOverviewDataTableElements().COLUMN_NAME_DATE_SORTABLE_ICON);
cy.verifyElement({
+ shouldNot: true,
element: analyticsSessionOverviewDataTableElements(index).DATE,
- elementText: date
+ //elementText: date TODO QT-207: if the date is the first day of the month, it is shown as the previous month. exp: for 1 oct it is shown sept 30
+ elementText: null
});
if (isEmpty) {
diff --git a/ui-tests/cypress/lib/dashboard/crashes/crashes.js b/ui-tests/cypress/lib/dashboard/crashes/crashes.js
index ffbadc6ea0a..9d6ee65b2f6 100644
--- a/ui-tests/cypress/lib/dashboard/crashes/crashes.js
+++ b/ui-tests/cypress/lib/dashboard/crashes/crashes.js
@@ -1,331 +1,689 @@
-import crashesPageElements from "../../../support/elements/dashboard/crashes/crashes";
+import {
+ crashPageElements,
+ crashGroupsPageElements,
+ crashGroupsDataTableElements,
+ crashStatisticsMetricCardElements,
+ crashStatisticsEChartElements
+} from "../../../support/elements/dashboard/crashes/crashes";
const verifyStaticElementsOfCrashGroupsPage = () => {
cy.verifyElement({
- labelElement: crashesPageElements.PAGE_TITLE,
+ element: crashPageElements.TAB_CRASH_GROUPS,
+ elementText: "Crash Groups",
+ });
+
+ cy.verifyElement({
+ element: crashPageElements.TAB_CRASH_STATISTICS,
+ elementText: "Crash Statistics",
+ });
+
+ cy.verifyElement({
+ labelElement: crashPageElements.PAGE_TITLE,
labelText: "Crash Groups",
- tooltipElement: crashesPageElements.PAGE_TITLE_TOOLTIP,
+ tooltipElement: crashPageElements.PAGE_TITLE_TOOLTIP,
tooltipText: "An overview of all Crash Groups. Filter, edit, and review the Crash Groups to see crash details."
});
cy.verifyElement({
- labelElement: crashesPageElements.AUTO_REFRESH_IS_LABEL,
+ labelElement: crashGroupsPageElements.AUTO_REFRESH_IS_LABEL,
labelText: "Auto-refresh is"
});
cy.verifyElement({
- labelElement: crashesPageElements.ENABLED_LABEL,
+ labelElement: crashGroupsPageElements.ENABLED_LABEL,
labelText: "Enabled",
- tooltipElement: crashesPageElements.AUTO_REFRESH_IS_ENABLED_TOOLTIP,
+ tooltipElement: crashGroupsPageElements.AUTO_REFRESH_IS_ENABLED_TOOLTIP,
tooltipText: "Automatically refresh can be adjusted through this switch"
});
cy.verifyElement({
- element: crashesPageElements.STOP_AUTO_REFRESH_BUTTON,
+ element: crashGroupsPageElements.STOP_AUTO_REFRESH_BUTTON,
});
cy.verifyElement({
- element: crashesPageElements.EDIT_COLUMNS_BUTTON,
+ element: crashGroupsDataTableElements().EDIT_COLUMNS_BUTTON,
});
cy.verifyElement({
- element: crashesPageElements.EXPORT_AS_BUTTON,
+ element: crashGroupsDataTableElements().EXPORT_AS_BUTTON,
});
cy.verifyElement({
- element: crashesPageElements.DATATABLE_SEARCH_INPUT,
+ element: crashGroupsDataTableElements().DATATABLE_SEARCH_INPUT,
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_CRASH_GROUP_LABEL,
+ isElementVisible: false,
+ elementText: "Crash Group",
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_PLATFORM_LABEL,
+ elementText: "Platform",
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_PLATFORM_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_OCCURRENCES_LABEL,
+ elementText: "Occurrences",
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_OCCURRENCES_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_LAST_OCCURRENCES_LABEL,
+ elementText: "Last occurrence",
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_LAST_OCCURRENCES_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_AFFECTED_USERS_LABEL,
+ elementText: "Affected Users",
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_AFFECTED_USERS_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_LATEST_APP_VERSION_LABEL,
+ elementText: "Latest app version",
+ });
+
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().COLUMN_NAME_LATEST_APP_VERSION_SORTABLE_ICON,
});
cy.scrollPageToTop();
cy.verifyElement({
- element: crashesPageElements.TAB_CRASH_GROUPS,
+ element: crashPageElements.TAB_CRASH_GROUPS,
elementText: "Crash Groups",
});
cy.verifyElement({
- element: crashesPageElements.TAB_CRASH_STATISTICS,
+ element: crashPageElements.TAB_CRASH_STATISTICS,
elementText: "Crash Statistics",
});
};
const verifyStaticElementsOfCrashStatisticsPage = () => {
- cy.verifyElement({
- labelElement: crashesPageElements.PAGE_TITLE,
- labelText: "Crash Statistics",
- //tooltipElement: crashesPageElements.PAGE_TITLE_TOOLTIP, TO DO
- //tooltipText: "An overview of the statistics of all crashes, as well as a graphic representation of selected crash metrics, in a selected time period."
- });
-
- cy.scrollPageToTop();
cy.verifyElement({
- element: crashesPageElements.TAB_CRASH_GROUPS,
+ element: crashPageElements.TAB_CRASH_GROUPS,
elementText: "Crash Groups",
});
cy.verifyElement({
- element: crashesPageElements.TAB_CRASH_STATISTICS,
+ element: crashPageElements.TAB_CRASH_STATISTICS,
elementText: "Crash Statistics",
});
cy.verifyElement({
- labelElement: crashesPageElements.AFFECTED_USERS_LABEL,
+ labelElement: crashPageElements.PAGE_TITLE,
+ labelText: "Crash Statistics",
+ //tooltipElement: crashesPageElements.PAGE_TITLE_TOOLTIP, TODO: Can not find the tooltip element
+ //tooltipText: "An overview of the statistics of all crashes, as well as a graphic representation of selected crash metrics, in a selected time period."
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().AFFECTED_USERS_LABEL,
labelText: "Affected Users",
- tooltipElement: crashesPageElements.AFFECTED_USERS_TOOLTIP,
+ tooltipElement: crashStatisticsMetricCardElements().AFFECTED_USERS_TOOLTIP,
tooltipText: "Amount of all your app users that had this crash. Amount gets reduced when users upgrade to version higher than for which crash was resolved"
});
cy.verifyElement({
- element: crashesPageElements.AFFECTED_USERS_DESCRIPTION_PROGRESS_CIRCLE,
+ element: crashStatisticsMetricCardElements().AFFECTED_USERS_DESCRIPTION_PROGRESS_CIRCLE,
});
cy.verifyElement({
- labelElement: crashesPageElements.RESOLUTION_STATUS_LABEL,
+ labelElement: crashStatisticsMetricCardElements().RESOLUTION_STATUS_LABEL,
labelText: "Resolution Status",
- tooltipElement: crashesPageElements.RESOLUTION_STATUS_TOOLTIP,
+ tooltipElement: crashStatisticsMetricCardElements().RESOLUTION_STATUS_TOOLTIP,
tooltipText: "Percentage of the crashes that have been resolved over the total number of crashes that have occurred."
});
cy.verifyElement({
- element: crashesPageElements.RESOLUTION_STATUS_DESCRIPTION_PROGRESS_CIRCLE,
+ element: crashStatisticsMetricCardElements().RESOLUTION_STATUS_DESCRIPTION_PROGRESS_CIRCLE,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FATALITY_LABEL,
+ labelElement: crashStatisticsMetricCardElements().CRASH_FATALITY_LABEL,
labelText: "Crash Fatality",
- tooltipElement: crashesPageElements.CRASH_FATALITY_TOOLTIP,
+ tooltipElement: crashStatisticsMetricCardElements().CRASH_FATALITY_TOOLTIP,
tooltipText: "Number of fatal crashes, expressed as a percentage of the total number of crashes that have occurred."
});
cy.verifyElement({
- element: crashesPageElements.CRASH_FATALITY_DESCRIPTION_PROGRESS_CIRCLE,
+ element: crashStatisticsMetricCardElements().CRASH_FATALITY_DESCRIPTION_PROGRESS_CIRCLE,
});
cy.verifyElement({
- labelElement: crashesPageElements.TOP_PLATFORMS_LABEL,
+ labelElement: crashStatisticsMetricCardElements().TOP_PLATFORMS_LABEL,
labelText: "Top Platforms",
- tooltipElement: crashesPageElements.TOP_PLATFORMS_TOOLTIP,
+ tooltipElement: crashStatisticsMetricCardElements().TOP_PLATFORMS_TOOLTIP,
tooltipText: "Details of the platforms on which crashes have occurred. Top 4 platforms are listed here."
});
cy.verifyElement({
- labelElement: crashesPageElements.NEW_CRASHES_LABEL,
+ labelElement: crashStatisticsMetricCardElements().NEW_CRASHES_LABEL,
labelText: "New Crashes",
- tooltipElement: crashesPageElements.NEW_CRASHES_TOOLTIP,
+ tooltipElement: crashStatisticsMetricCardElements().NEW_CRASHES_TOOLTIP,
tooltipText: "Number of crashes that have not yet been viewed."
});
cy.verifyElement({
- labelElement: crashesPageElements.REOCCURRED_CRASHES_LABEL,
+ labelElement: crashStatisticsMetricCardElements().REOCCURRED_CRASHES_LABEL,
labelText: "Reoccurred Crashes",
- tooltipElement: crashesPageElements.REOCCURRED_CRASHES_TOOLTIP,
+ tooltipElement: crashStatisticsMetricCardElements().REOCCURRED_CRASHES_TOOLTIP,
tooltipText: "Number of crashes that have occurred multiple times."
});
cy.verifyElement({
- labelElement: crashesPageElements.REVENUE_LOSS_LABEL,
+ labelElement: crashStatisticsMetricCardElements().REVENUE_LOSS_LABEL,
labelText: "Revenue Loss",
- tooltipElement: crashesPageElements.REVENUE_LOSS_TOOLTIP,
+ tooltipElement: crashStatisticsMetricCardElements().REVENUE_LOSS_TOOLTIP,
tooltipText: "Value of revenue potentially lost as a result of crashes occurred on Revenue Events."
});
cy.verifyElement({
- element: crashesPageElements.FILTER_DATE_PICKER,
+ element: crashStatisticsEChartElements.FILTER_DATE_PICKER,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FILTERS_LABEL,
+ labelElement: crashStatisticsEChartElements.CRASH_FILTERS_LABEL,
labelText: "Crash Filters",
- element: crashesPageElements.FILTER_PARAMETERS_SELECT
+ element: crashStatisticsEChartElements.FILTER_PARAMETERS_SELECT
+ });
+
+ cy.verifyElement({
+ element: crashStatisticsEChartElements.CHART_TYPE_SELECT_COMBOBOX
});
cy.verifyElement({
- labelElement: crashesPageElements.TOTAL_OCCURENCES_LABEL,
+ element: crashStatisticsEChartElements.CHART_ANNOTATION_BUTTON
+ });
+
+ cy.verifyElement({
+ element: crashStatisticsEChartElements.CHART_MORE_BUTTON
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.TOTAL_OCCURENCES_LABEL,
labelText: "Total Occurences",
- tooltipElement: crashesPageElements.TOTAL_OCCURENCES_TOOLTIP,
+ tooltipElement: crashStatisticsEChartElements.TOTAL_OCCURENCES_TOOLTIP,
tooltipText: "Timeline of all occurrences of all crashes. Same crash may occurred multiple times for same or different users."
});
cy.verifyElement({
- element: crashesPageElements.TOTAL_OCCURENCES_ARROW,
+ element: crashStatisticsEChartElements.TOTAL_OCCURENCES_TREND_ICON,
});
cy.verifyElement({
- labelElement: crashesPageElements.UNIQUE_CRASHES_LABEL,
+ labelElement: crashStatisticsEChartElements.UNIQUE_CRASHES_LABEL,
labelText: "Unique Crashes",
- tooltipElement: crashesPageElements.UNIQUE_CRASHES_TOOLTIP,
+ tooltipElement: crashStatisticsEChartElements.UNIQUE_CRASHES_TOOLTIP,
tooltipText: "Timeline of crash types. Only the first ocurrence of each crash time recorded here."
});
cy.verifyElement({
- element: crashesPageElements.UNIQUE_CRASHES_ARROW,
+ element: crashStatisticsEChartElements.UNIQUE_CRASHES_TREND_ICON,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASHES_OR_SESSIONS_LABEL,
+ labelElement: crashStatisticsEChartElements.CRASHES_OR_SESSIONS_LABEL,
labelText: "Crashes / Sessions",
- tooltipElement: crashesPageElements.CRASHES_OR_SESSIONS_TOOLTIP,
+ tooltipElement: crashStatisticsEChartElements.CRASHES_OR_SESSIONS_TOOLTIP,
tooltipText: "How often in amount of sessions the app crashes for each user"
});
cy.verifyElement({
- element: crashesPageElements.CRASHES_OR_SESSIONS_ARROW,
+ element: crashStatisticsEChartElements.CRASHES_OR_SESSIONS_TREND_ICON,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FREE_USERS_LABEL,
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_USERS_LABEL,
labelText: "Crash-free Users",
- tooltipElement: crashesPageElements.CRASH_FREE_USERS_TOOLTIP,
+ tooltipElement: crashStatisticsEChartElements.CRASH_FREE_USERS_TOOLTIP,
tooltipText: "Number of users who have not experienced a crash for the applied filter in the selected time period, expressed as a percentage of the total number of users within that time period."
});
cy.verifyElement({
- element: crashesPageElements.CRASH_FREE_USERS_ARROW,
+ element: crashStatisticsEChartElements.CRASH_FREE_USERS_TREND_ICON,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FREE_SESSIONS_LABEL,
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_SESSIONS_LABEL,
labelText: "Crash-free Sessions",
- tooltipElement: crashesPageElements.CRASH_FREE_SESSIONS_TOOLTIP,
+ tooltipElement: crashStatisticsEChartElements.CRASH_FREE_SESSIONS_TOOLTIP,
tooltipText: "Number of sessions during which the selected crash did not occur in the selected time period, expressed as a percentage of the total number of sessions within that time period."
});
cy.verifyElement({
- element: crashesPageElements.CRASH_FREE_SESSIONS_ARROW,
+ element: crashStatisticsEChartElements.CRASH_FREE_SESSIONS_TREND_ICON,
});
cy.verifyElement({
- element: crashesPageElements.TOTAL_OCCURENCES_GRAPH,
+ element: crashStatisticsEChartElements.CHART_PREVIOUS_TOTAL_OCCURENCES_ICON,
+ labelElement: crashStatisticsEChartElements.CHART_PREVIOUS_TOTAL_OCCURENCES_LABEL,
+ labelText: "previous Total Occurences"
});
-};
+ cy.verifyElement({
+ element: crashStatisticsEChartElements.CHART_TOTAL_OCCURENCES_ICON,
+ labelElement: crashStatisticsEChartElements.CHART_TOTAL_OCCURENCES_LABEL,
+ labelText: "Total Occurences"
+ });
+};
const verifyEmptyPageElements = () => {
verifyStaticElementsOfCrashGroupsPage();
+ verifyCrashGroupsDataFromTable({
+ isEmpty: true,
+ });
+
+ clickCrashStatisticsTab();
+
+ verifyStaticElementsOfCrashStatisticsPage();
+
+ verifyCrashStatisticsMetricCard({
+ isEmpty: true,
+ });
+
+ verifyCrashStatisticsEChartElements({
+ isEmpty: true,
+ });
+};
+
+const verifyFullDataPageElements = () => {
+
+ verifyStaticElementsOfCrashGroupsPage();
+
+ verifyCrashGroupsDataFromTable({
+ isEmpty: false,
+ });
+
+ clickCrashStatisticsTab();
+
+ verifyStaticElementsOfCrashStatisticsPage();
+
+ verifyCrashStatisticsMetricCard({
+ isEmpty: false,
+ });
+
+ verifyCrashStatisticsEChartElements({
+ isEmpty: false,
+ });
+};
+
+const verifyCrashGroupsDataFromTable = ({
+ index = 0,
+ isEmpty = false,
+ crashGroup = null,
+ badgetType = null,
+ platform = null,
+ occurrences = null,
+ lastOccurrences = null,
+ affectedUsers = null,
+ latestAppVersion = null
+}) => {
+
+ if (isEmpty) {
+ cy.verifyElement({
+ element: crashGroupsDataTableElements().EMPTY_TABLE_ICON,
+ });
+
+ cy.verifyElement({
+ labelElement: crashGroupsDataTableElements().EMPTY_TABLE_TITLE,
+ labelText: "...hmm, seems empty here",
+ });
+
+ cy.verifyElement({
+ labelElement: crashGroupsDataTableElements().EMPTY_TABLE_SUBTITLE,
+ labelText: "No data found",
+ });
+ return;
+ }
+
cy.verifyElement({
- element: crashesPageElements.EMPTY_TABLE_ICON,
+ shouldNot: !isEmpty,
+ labelElement: crashGroupsDataTableElements(index).CRASH_GROUP,
+ elementText: crashGroup,
});
cy.verifyElement({
- labelElement: crashesPageElements.EMPTY_TABLE_TITLE,
- labelText: "...hmm, seems empty here",
+ shouldNot: !isEmpty,
+ labelElement: crashGroupsDataTableElements(index).CRASH_GROUP_BADGE_TYPE_1,
+ elementText: badgetType,
});
cy.verifyElement({
- labelElement: crashesPageElements.EMPTY_TABLE_SUBTITLE,
- labelText: "No data found",
+ shouldNot: !isEmpty,
+ labelElement: crashGroupsDataTableElements(index).PLATFORM,
+ elementText: platform,
});
- clickCrashStatisticsTab();
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashGroupsDataTableElements(index).OCCURRENCES,
+ elementText: occurrences,
+ });
- verifyStaticElementsOfCrashStatisticsPage();
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashGroupsDataTableElements(index).LAST_OCCURANCES,
+ elementText: lastOccurrences,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashGroupsDataTableElements(index).AFFECTED_USERS,
+ elementText: affectedUsers,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashGroupsDataTableElements(index).LATEST_APP_VERSION,
+ elementText: latestAppVersion,
+ });
+};
+
+const verifyCrashStatisticsMetricCard = ({
+ isEmpty = false,
+ affectedUsersPercentage = null,
+ affectedUsersTotal = null,
+ resolutionStatusPercentage = null,
+ resolutionStatusTotal = null,
+ crashFatalityPercentage = null,
+ crashFatalityTotal = null,
+ platformName = null,
+ platformUsersPercentage = null,
+ newCrashes = null,
+ reoccurredCrashes = null,
+ revenueLoss = null
+}) => {
+
+ if (isEmpty) {
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().AFFECTED_USERS_NUMBER_LABEL,
+ labelText: "0%",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().AFFECTED_USERS_DESCRIPTION_LABEL,
+ labelText: "0 of 0 Total Users",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().RESOLUTION_STATUS_NUMBER_LABEL,
+ labelText: "0%",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().RESOLUTION_STATUS_DESCRIPTION_LABEL,
+ labelText: "0 Resolved of 0 Total Crashes",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().CRASH_FATALITY_NUMBER_LABEL,
+ labelText: "0%",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().CRASH_FATALITY_DESCRIPTION_LABEL,
+ labelText: "0 Fatal of 0 Total Crashes",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().NEW_CRASHES_NUMBER_LABEL,
+ labelText: "0",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().REOCCURRED_CRASHES_NUMBER_LABEL,
+ labelText: "0",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsMetricCardElements().REVENUE_LOSS_NUMBER_LABEL,
+ labelText: "0",
+ });
+
+ cy.shouldNotExist(crashStatisticsMetricCardElements().TOP_PLATFORM_NAME);
+ cy.shouldNotExist(crashStatisticsMetricCardElements().TOP_PLATFORM_USER_PERCENTAGE);
+ cy.shouldNotExist(crashStatisticsMetricCardElements().TOP_PLATFORM_PROGRESS_BAR);
+
+ return;
+ }
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().AFFECTED_USERS_NUMBER_LABEL,
+ elementText: affectedUsersPercentage,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().AFFECTED_USERS_DESCRIPTION_LABEL,
+ elementText: affectedUsersTotal,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().RESOLUTION_STATUS_NUMBER_LABEL,
+ elementText: affectedUsersPercentage,
+ });
cy.verifyElement({
- labelElement: crashesPageElements.AFFECTED_USERS_NUMBER_LABEL,
- labelText: "0%",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().AFFECTED_USERS_DESCRIPTION_LABEL,
+ elementText: resolutionStatusPercentage,
});
cy.verifyElement({
- labelElement: crashesPageElements.AFFECTED_USERS_DESCRIPTION_LABEL,
- labelText: "0 of 0 Total Users",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().RESOLUTION_STATUS_DESCRIPTION_LABEL,
+ elementText: resolutionStatusTotal,
});
cy.verifyElement({
- labelElement: crashesPageElements.RESOLUTION_STATUS_NUMBER_LABEL,
- labelText: "0%",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().CRASH_FATALITY_NUMBER_LABEL,
+ elementText: crashFatalityPercentage,
});
cy.verifyElement({
- labelElement: crashesPageElements.RESOLUTION_STATUS_DESCRIPTION_LABEL,
- labelText: "0 Resolved of 0 Total Crashes",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().CRASH_FATALITY_DESCRIPTION_LABEL,
+ elementText: crashFatalityTotal,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FATALITY_NUMBER_LABEL,
- labelText: "0%",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().TOP_PLATFORM_NAME,
+ elementText: platformName,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FATALITY_DESCRIPTION_LABEL,
- labelText: "0 Fatal of 0 Total Crashes",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().TOP_PLATFORM_USER_PERCENTAGE,
+ elementText: platformUsersPercentage,
});
cy.verifyElement({
- labelElement: crashesPageElements.NEW_CRASHES_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().NEW_CRASHES_NUMBER_LABEL,
+ elementText: newCrashes,
});
cy.verifyElement({
- labelElement: crashesPageElements.REOCCURRED_CRASHES_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().REOCCURRED_CRASHES_NUMBER_LABEL,
+ elementText: reoccurredCrashes,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsMetricCardElements().REVENUE_LOSS_NUMBER_LABEL,
+ elementText: revenueLoss,
+ });
+};
+
+const verifyCrashStatisticsEChartElements = ({
+ isEmpty = false,
+ totalOccurences = null,
+ totalOccurencePercentage = null,
+ uniqueCrashes = null,
+ uniqueCrashesPercentage = null,
+ crashesSessions = null,
+ crashesSessionsPercentage = null,
+ crashFreeUsers = null,
+ crashFreeUsersPercentage = null,
+ crashFreeSessions = null,
+ crashFreeSessionsPercentage = null
+}) => {
+
+ if (isEmpty) {
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.TOTAL_OCCURENCES_NUMBER_LABEL,
+ labelText: "0",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.TOTAL_OCCURENCES_CHANGE_VALUE_LABEL,
+ labelText: "NA",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.UNIQUE_CRASHES_NUMBER_LABEL,
+ labelText: "~0",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.TOTAL_OCCURENCES_CHANGE_VALUE_LABEL,
+ labelText: "NA",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.CRASHES_OR_SESSIONS_NUMBER_LABEL,
+ labelText: "0",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_USERS_NUMBER_LABEL,
+ labelText: "100.00%",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_USERS_CHANGE_VALUE_LABEL,
+ labelText: "0.0%",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_SESSIONS_NUMBER_LABEL,
+ labelText: "100.00%",
+ });
+
+ cy.verifyElement({
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_SESSIONS_CHANGE_VALUE_LABEL,
+ labelText: "0.0%",
+ });
+ return;
+ }
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.TOTAL_OCCURENCES_NUMBER_LABEL,
+ elementText: totalOccurences,
});
cy.verifyElement({
- labelElement: crashesPageElements.REVENUE_LOSS_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.TOTAL_OCCURENCES_CHANGE_VALUE_LABEL,
+ elementText: totalOccurencePercentage,
});
cy.verifyElement({
- labelElement: crashesPageElements.TOTAL_OCCURENCES_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.UNIQUE_CRASHES_NUMBER_LABEL,
+ elementText: uniqueCrashes,
});
cy.verifyElement({
- labelElement: crashesPageElements.TOTAL_OCCURENCES_CHANGE_VALUE_LABEL,
- labelText: "NA",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.UNIQUE_CRASHES_CHANGE_VALUE_LABEL,
+ elementText: uniqueCrashesPercentage,
});
cy.verifyElement({
- labelElement: crashesPageElements.UNIQUE_CRASHES_NUMBER_LABEL,
- labelText: "~0",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.CRASHES_OR_SESSIONS_NUMBER_LABEL,
+ elementText: crashesSessions,
});
cy.verifyElement({
- labelElement: crashesPageElements.TOTAL_OCCURENCES_CHANGE_VALUE_LABEL,
- labelText: "NA",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.CRASHES_OR_SESSIONS_CHANGE_VALUE_LABEL,
+ elementText: crashesSessionsPercentage,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASHES_OR_SESSIONS_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_USERS_NUMBER_LABEL,
+ elementText: crashFreeUsers,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FREE_USERS_NUMBER_LABEL,
- labelText: "100.00%",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_USERS_CHANGE_VALUE_LABEL,
+ elementText: crashFreeUsersPercentage,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FREE_USERS_CHANGE_VALUE_LABEL,
- labelText: "0.0%",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_SESSIONS_NUMBER_LABEL,
+ elementText: crashFreeSessions,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FREE_SESSIONS_NUMBER_LABEL,
- labelText: "100.00%",
+ shouldNot: !isEmpty,
+ labelElement: crashStatisticsEChartElements.CRASH_FREE_SESSIONS_CHANGE_VALUE_LABEL,
+ elementText: crashFreeSessionsPercentage,
});
cy.verifyElement({
- labelElement: crashesPageElements.CRASH_FREE_SESSIONS_CHANGE_VALUE_LABEL,
- labelText: "0.0%",
+ element: crashStatisticsEChartElements.TOTAL_OCCURENCES_GRAPH,
});
};
const clickCrashGroupsTab = () => {
cy.scrollPageToTop();
- cy.clickElement(crashesPageElements.TAB_CRASH_GROUPS);
+ cy.clickElement(crashPageElements.TAB_CRASH_GROUPS);
};
const clickCrashStatisticsTab = () => {
cy.scrollPageToTop();
- cy.clickElement(crashesPageElements.TAB_CRASH_STATISTICS);
+ cy.clickElement(crashPageElements.TAB_CRASH_STATISTICS);
};
module.exports = {
verifyEmptyPageElements,
+ verifyFullDataPageElements,
clickCrashGroupsTab,
- clickCrashStatisticsTab
+ clickCrashStatisticsTab,
+ verifyCrashGroupsDataFromTable,
+ verifyCrashStatisticsMetricCard,
+ verifyCrashStatisticsEChartElements
};
\ No newline at end of file
diff --git a/ui-tests/cypress/lib/dashboard/feedback/ratings/ratings.js b/ui-tests/cypress/lib/dashboard/feedback/ratings/ratings.js
index e4294b30907..63024718368 100644
--- a/ui-tests/cypress/lib/dashboard/feedback/ratings/ratings.js
+++ b/ui-tests/cypress/lib/dashboard/feedback/ratings/ratings.js
@@ -1,91 +1,423 @@
-import feedbackRatingsPageElements from "../../../../support/elements/dashboard/feedback/ratings/ratings";
+import {
+ ratingsPageElements,
+ ratingsMetricCardElements,
+ ratingsEChartElements,
+ ratingsDataTableElements,
+ commentsDataTableElements
+} from "../../../../support/elements/dashboard/feedback/ratings/ratings";
const verifyStaticElementsOfPage = () => {
cy.verifyElement({
- element: feedbackRatingsPageElements.TAB_RATINGS,
+ element: ratingsPageElements.TAB_RATINGS,
elementText: "Ratings",
});
cy.verifyElement({
- element: feedbackRatingsPageElements.TAB_RATING_WIDGETS,
+ element: ratingsPageElements.TAB_RATING_WIDGETS,
elementText: "Rating Widgets",
});
+
cy.verifyElement({
- labelElement: feedbackRatingsPageElements.PAGE_TITLE,
+ labelElement: ratingsPageElements.PAGE_TITLE,
labelText: "Ratings",
- tooltipElement: feedbackRatingsPageElements.PAGE_TITLE_TOOLTIP,
+ tooltipElement: ratingsPageElements.PAGE_TITLE_TOOLTIP,
tooltipText: "An overview of all ratings widgets set up in your application, including active and stopped ratings."
});
cy.verifyElement({
- element: feedbackRatingsPageElements.RESULTS_FOR_LABEL,
+ element: ratingsPageElements.RESULTS_FOR_LABEL,
+ });
+
+ cy.verifyElement({
+ element: ratingsPageElements.FILTER_PARAMETERS_COMBOBOX,
+ });
+
+ cy.verifyElement({
+ element: ratingsPageElements.FILTER_DATE_PICKER,
});
cy.verifyElement({
- element: feedbackRatingsPageElements.FILTER_PARAMETERS_COMBOBOX,
+ element: ratingsPageElements.DATATABLE_TAB_RATINGS,
+ elementText: "Ratings",
});
cy.verifyElement({
- element: feedbackRatingsPageElements.FILTER_DATE_PICKER,
+ element: ratingsPageElements.DATATABLE_TAB_COMMENTS,
+ elementText: "Comments",
});
cy.verifyElement({
- labelElement: feedbackRatingsPageElements.TOTAL_RATINGS_LABEL,
+ labelElement: ratingsMetricCardElements.TOTAL_RATINGS_LABEL,
labelText: "Total Ratings",
- tooltipElement: feedbackRatingsPageElements.TOTAL_RATINGS_TOOLTIP,
+ tooltipElement: ratingsMetricCardElements.TOTAL_RATINGS_TOOLTIP,
tooltipText: "Total number of Ratings received from users."
});
cy.verifyElement({
- labelElement: feedbackRatingsPageElements.AVERAGE_RATINGS_SCORE_LABEL,
+ labelElement: ratingsMetricCardElements.AVERAGE_RATINGS_SCORE_LABEL,
labelText: "Average Ratings Score",
- tooltipElement: feedbackRatingsPageElements.AVERAGE_RATINGS_SCORE_TOOLTIP,
+ tooltipElement: ratingsMetricCardElements.AVERAGE_RATINGS_SCORE_TOOLTIP,
tooltipText: "Average Ratings received calculated by Sum of Ratings / Ratings Count"
});
+
+ cy.scrollPageToBottom();
+
+ cy.verifyElement({
+ labelElement: ratingsPageElements.DATATABLE_TAB_RATINGS,
+ labelText: "Ratings",
+ });
+
+ cy.verifyElement({
+ labelElement: ratingsPageElements.DATATABLE_TAB_COMMENTS,
+ labelText: "Comments",
+ });
+
+ cy.verifyElement({
+ element: ratingsDataTableElements().EXPORT_AS_BUTTON,
+ });
+
+ cy.verifyElement({
+ element: ratingsDataTableElements().TABLE_SEARCH_INPUT,
+ });
+
+ cy.verifyElement({
+ element: ratingsDataTableElements().COLUMN_NAME_RATING_NAME_LABEL,
+ elementText: "Rating",
+ });
+
+ cy.verifyElement({
+ element: ratingsDataTableElements().COLUMN_NAME_RATING_NAME_SORTABLE_ICON,
+ });
+
+
+ cy.verifyElement({
+ element: ratingsDataTableElements().COLUMN_NAME_NUMBER_OF_RATINGS_LABEL,
+ elementText: "Number of Ratings",
+ });
+
+ cy.verifyElement({
+ element: ratingsDataTableElements().COLUMN_NAME_NUMBER_OF_RATINGS_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: ratingsDataTableElements().COLUMN_NAME_PERCENTAGE_LABEL,
+ elementText: "Percentage",
+ });
+
+ cy.verifyElement({
+ element: ratingsDataTableElements().COLUMN_NAME_PERCENTAGE_SORTABLE_ICON,
+ });
+
+ clickDatatableCommentsTab();
+
+ cy.scrollPageToBottom();
+
+ cy.verifyElement({
+ element: commentsDataTableElements().EXPORT_AS_BUTTON,
+ });
+
+ cy.verifyElement({
+ element: commentsDataTableElements().TABLE_SEARCH_INPUT,
+ });
+
+ cy.verifyElement({
+ element: commentsDataTableElements().COLUMN_NAME_COMMENT_NAME_LABEL,
+ elementText: "Comment",
+ });
+
+ cy.verifyElement({
+ element: commentsDataTableElements().COLUMN_NAME_RATING_LABEL,
+ elementText: "Rating",
+ });
+
+ cy.verifyElement({
+ element: commentsDataTableElements().COLUMN_NAME_RATING_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: commentsDataTableElements().COLUMN_NAME_TIME_LABEL,
+ elementText: "Time",
+ });
+
+ cy.verifyElement({
+ element: commentsDataTableElements().COLUMN_NAME_TIME_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: commentsDataTableElements().COLUMN_NAME_E_MAIL_LABEL,
+ elementText: "E-mail",
+ });
};
const verifyEmptyPageElements = () => {
verifyStaticElementsOfPage();
+ verifyRatingsMetricCard({
+ isEmpty: true,
+ });
+
+ verifyRatingsEChartElements({
+ isEmpty: true,
+ });
+
+ verifyRatingsDataFromTable({
+ isEmpty: true,
+ });
+
+ verifyCommentsDataFromTable({
+ isEmpty: true,
+ });
+};
+
+const verifyFullDataPageElements = () => {
+
+ verifyStaticElementsOfPage();
+
+ verifyRatingsMetricCard({
+ isEmpty: false,
+ });
+
+ verifyRatingsEChartElements({
+ isEmpty: false,
+ });
+
+ verifyRatingsDataFromTable({
+ isEmpty: false,
+ });
+
+ verifyCommentsDataFromTable({
+ isEmpty: false,
+ });
+};
+
+const verifyRatingsMetricCard = ({
+ isEmpty = false,
+ totalRatings = null,
+ averageRatingsScore = null,
+}) => {
+
+ if (isEmpty) {
+
+ cy.scrollPageToTop();
+
+ cy.verifyElement({
+ labelElement: ratingsMetricCardElements.TOTAL_RATINGS_NUMBER_LABEL,
+ labelText: "0",
+ });
+
+ cy.verifyElement({
+ labelElement: ratingsMetricCardElements.AVERAGE_RATINGS_SCORE_NUMBER_LABEL,
+ labelText: "0",
+ });
+ return;
+ }
+
+ cy.scrollPageToTop();
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: ratingsMetricCardElements.TOTAL_RATINGS_NUMBER_LABEL,
+ elementText: totalRatings,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: ratingsMetricCardElements.AVERAGE_RATINGS_SCORE_NUMBER_LABEL,
+ elementText: averageRatingsScore,
+ });
+};
+
+const verifyRatingsEChartElements = ({
+ isEmpty = false
+}) => {
+
+ if (isEmpty) {
+
+ cy.scrollPageToTop();
+
+ cy.verifyElement({
+ element: ratingsEChartElements.EMPTY_CHART_ICON,
+ });
+
+ cy.verifyElement({
+ labelElement: ratingsEChartElements.EMPTY_CHART_TITLE,
+ labelText: "...hmm, seems empty here",
+ });
+
+ cy.verifyElement({
+ labelElement: ratingsEChartElements.EMPTY_CHART_SUBTITLE,
+ labelText: "No data found",
+ });
+ return;
+ }
+
+ cy.scrollPageToTop();
+
+ cy.verifyElement({
+ element: ratingsEChartElements.ECHARTS,
+ });
+
+ cy.verifyElement({
+ element: ratingsEChartElements.MORE_BUTTON,
+ });
+
+ cy.verifyElement({
+ element: ratingsEChartElements.RATING_ICON,
+ });
+
+ cy.pause();
+ cy.verifyElement({
+ element: ratingsEChartElements.RATING,
+ elementText: "Ratings",
+ });
+ cy.pause();
+};
+
+const verifyRatingsDataFromTable = ({
+ index = 0,
+ isEmpty = false,
+ rating = null,
+ numberOfRatings = null,
+ percentage = null,
+}) => {
+
+ clickDatatableRatingsTab();
+
+ if (isEmpty) {
+
+ cy.scrollPageToBottom();
+
+ for (var i = 0; i < 5; i++) {
+ cy.verifyElement({
+ element: ratingsDataTableElements(i).RATING_ICON,
+ });
+
+ cy.verifyElement({
+ element: ratingsDataTableElements(i).RATING,
+ elementText: i + 1,
+ });
+
+ cy.verifyElement({
+ labelElement: ratingsDataTableElements(i).NUMBER_OF_RATINGS,
+ labelText: "0",
+ });
+
+ cy.verifyElement({
+ labelElement: ratingsDataTableElements(i).PERCENTAGE,
+ labelText: "0%",
+ });
+ }
+ return;
+ }
+
+ cy.scrollPageToBottom();
+
cy.verifyElement({
- labelElement: feedbackRatingsPageElements.TOTAL_RATINGS_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ labelElement: ratingsDataTableElements(index).RATING,
+ elementText: rating,
});
cy.verifyElement({
- labelElement: feedbackRatingsPageElements.AVERAGE_RATINGS_SCORE_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ labelElement: ratingsDataTableElements(index).NUMBER_OF_RATINGS,
+ elementText: numberOfRatings,
});
cy.verifyElement({
- element: feedbackRatingsPageElements.EMPTY_CHART_ICON,
+ shouldNot: !isEmpty,
+ labelElement: ratingsDataTableElements(index).PERCENTAGE,
+ elementText: percentage,
});
+};
+
+const verifyCommentsDataFromTable = ({
+ index = 0,
+ isEmpty = false,
+ comment = null,
+ rating = null,
+ time = null,
+ email = null,
+}) => {
+
+ clickDatatableCommentsTab();
+
+ if (isEmpty) {
+
+ cy.scrollPageToBottom();
+
+ cy.verifyElement({
+ element: commentsDataTableElements().EMPTY_TABLE_ICON,
+ });
+
+ cy.verifyElement({
+ labelElement: commentsDataTableElements().EMPTY_TABLE_TITLE,
+ labelText: "...hmm, seems empty here",
+ });
+
+ cy.verifyElement({
+ labelElement: commentsDataTableElements().EMPTY_TABLE_SUBTITLE,
+ labelText: "No data found",
+ });
+ return;
+ }
+
+ cy.scrollPageToBottom();
cy.verifyElement({
- labelElement: feedbackRatingsPageElements.EMPTY_CHART_TITLE,
- labelText: "...hmm, seems empty here",
+ shouldNot: !isEmpty,
+ labelElement: commentsDataTableElements(index).COMMENT,
+ elementText: comment,
});
cy.verifyElement({
- labelElement: feedbackRatingsPageElements.EMPTY_CHART_SUBTITLE,
- labelText: "No data found",
+ shouldNot: !isEmpty,
+ labelElement: commentsDataTableElements(index).RATING,
+ elementText: rating,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: commentsDataTableElements(index).TIME,
+ elementText: time,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ labelElement: commentsDataTableElements(index).E_MAIL,
+ elementText: email,
});
};
const clickRatingsTab = () => {
cy.scrollPageToTop();
- cy.clickElement(feedbackRatingsPageElements.TAB_RATINGS);
+ cy.clickElement(ratingsPageElements.TAB_RATINGS);
};
const clickRatingWidgetsTab = () => {
cy.scrollPageToTop();
- cy.clickElement(feedbackRatingsPageElements.TAB_RATING_WIDGETS);
+ cy.clickElement(ratingsPageElements.TAB_RATING_WIDGETS);
+};
+
+const clickDatatableRatingsTab = () => {
+ cy.clickElement(ratingsPageElements.DATATABLE_TAB_RATINGS);
+};
+
+const clickDatatableCommentsTab = () => {
+ cy.clickElement(ratingsPageElements.DATATABLE_TAB_COMMENTS);
};
module.exports = {
verifyEmptyPageElements,
+ verifyFullDataPageElements,
clickRatingsTab,
- clickRatingWidgetsTab
+ clickRatingWidgetsTab,
+ clickDatatableRatingsTab,
+ clickDatatableCommentsTab,
+ verifyRatingsMetricCard,
+ verifyRatingsEChartElements,
+ verifyRatingsDataFromTable,
+ verifyCommentsDataFromTable
};
\ No newline at end of file
diff --git a/ui-tests/cypress/lib/dashboard/feedback/ratings/widgets.js b/ui-tests/cypress/lib/dashboard/feedback/ratings/widgets.js
index 5bdc3e6f343..b9634be0088 100644
--- a/ui-tests/cypress/lib/dashboard/feedback/ratings/widgets.js
+++ b/ui-tests/cypress/lib/dashboard/feedback/ratings/widgets.js
@@ -16,6 +16,13 @@ const createRating = require('../../../../api/feedbackWidgetsCreate');
const verifyEmptyPageElements = () => {
+ cy.verifyElement({
+ labelElement: feedbackRatingWidgetsPageElements.RATING_WIDGETS_HEADER_TITLE_LABEL,
+ labelText: "Rating Widgets",
+ element: feedbackRatingWidgetsPageElements.ADD_NEW_WIDGET_BUTTON,
+ elementText: 'Add New Widget'
+ });
+
cy.verifyElement({
element: feedbackRatingWidgetsPageElements.RATINGS_WIDGETS_EMPTY_PAGE_ICON,
labelElement: feedbackRatingWidgetsPageElements.RATINGS_WIDGETS_EMPTY_PAGE_TITLE,
@@ -30,6 +37,22 @@ const verifyEmptyPageElements = () => {
});
};
+const verifyFullDataPageElements = () => {
+
+ cy.verifyElement({
+ labelElement: feedbackRatingWidgetsPageElements.RATING_WIDGETS_HEADER_TITLE_LABEL,
+ labelText: "Rating Widgets",
+ element: feedbackRatingWidgetsPageElements.ADD_NEW_WIDGET_BUTTON,
+ elementText: 'Add New Widget'
+ });
+
+ verifyWidgetDataFromTable({
+ index: 0,
+ shouldNot: true,
+ isActive: false,
+ });
+};
+
const verifySettingsPageElements = ({
widgetName,
question,
@@ -523,30 +546,128 @@ const clickSetActiveCheckbox = (page) => {
const verifyWidgetDataFromTable = ({
index,
- question,
- internalName,
- pages,
- isActive
+ shouldNot = false,
+ widgetName = null,
+ internalName = null,
+ ratingScore = null,
+ responses = null,
+ pages = null,
+ isActive = true
}) => {
+
cy.verifyElement({
- element: widgetsDataTableElements(index).WIDGET_QUESTION,
- elementText: question
+ element: widgetsDataTableElements().EDIT_COLUMNS_BUTTON,
});
cy.verifyElement({
- element: widgetsDataTableElements(index).INTERNAL_NAME,
- elementText: internalName
+ element: widgetsDataTableElements().EXPORT_AS_BUTTON,
});
cy.verifyElement({
- element: widgetsDataTableElements(index).PAGES,
- elementText: pages
+ element: widgetsDataTableElements().TABLE_SEARCH_INPUT,
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements().COLUMN_NAME_STATUS_LABEL,
+ elementText: "Status",
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements().COLUMN_NAME_STATUS_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements().COLUMN_NAME_RATINGS_WIDGET_NAME_LABEL,
+ elementText: "Ratings Widget Name",
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements().COLUMN_NAME_INTERNAL_NAME_LABEL,
+ elementText: "Internal Name",
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements().COLUMN_NAME_RATING_SCORE_LABEL,
+ elementText: "Rating Score"
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements().COLUMN_NAME_RATING_SCORE_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements().COLUMN_NAME_RESPONSES_LABEL,
+ elementText: "Responses"
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements().COLUMN_NAME_RESPONSES_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements(index).COLUMN_NAME_PAGES_LABEL,
+ elementText: "Pages"
+ });
+
+ cy.verifyElement({
+ isElementVisible: false,
+ element: widgetsDataTableElements(index).COLUMN_NAME_PAGES_SORTABLE_ICON,
});
cy.verifyElement({
element: widgetsDataTableElements(index).STATUS_SWITCH_WRAPPER,
isChecked: isActive
});
+
+ cy.verifyElement({
+ shouldNot: shouldNot,
+ element: widgetsDataTableElements(index).WIDGET_NAME,
+ elementText: widgetName
+ });
+
+ cy.verifyElement({
+ element: widgetsDataTableElements(index).WIDGET_ID_LABEL,
+ elementText: "Widget ID"
+ });
+
+ cy.verifyElement({
+ element: widgetsDataTableElements(index).WIDGET_ID,
+ });
+
+ if (internalName != null) {
+ cy.verifyElement({
+ shouldNot: shouldNot,
+ element: widgetsDataTableElements(index).INTERNAL_NAME,
+ elementText: internalName
+ });
+ }
+
+ cy.verifyElement({
+ shouldNot: shouldNot,
+ element: widgetsDataTableElements(index).RATING_SCORE,
+ elementText: ratingScore
+ });
+
+ cy.verifyElement({
+ shouldNot: shouldNot,
+ element: widgetsDataTableElements(index).RESPONSES,
+ elementText: responses
+ });
+
+ cy.verifyElement({
+ shouldNot: shouldNot,
+ element: widgetsDataTableElements(index).PAGES,
+ elementText: pages
+ });
};
const verifyPreviewRatingsPopUpElements = ({
@@ -704,9 +825,9 @@ const getWidgetIdFromDataTable = (index) => {
return cy.getElement(widgetsDataTableElements(index).WIDGET_ID).eq(0).getText();
};
-const navigateToWidgetsDetailPage = (question) => {
- searchWidgetOnDataTable(question);
- cy.clickElement(widgetsDataTableElements().WIDGET_QUESTION, true);
+const navigateToWidgetsDetailPage = (widgetName) => {
+ searchWidgetOnDataTable(widgetName);
+ cy.clickElement(widgetsDataTableElements().WIDGET_NAME, true);
};
const verifyWidgetDetailsPageElements = ({
@@ -929,7 +1050,7 @@ const shouldBeWidgetDeleted = (question) => {
if (!isExists) {
cy.getElement(widgetsDataTableElements().TABLE_ROWS).its('length').then((count) => {
for (var index = 0; index < (count / 2) - 1; index++) {
- cy.shouldNotContainText(widgetsDataTableElements(index).WIDGET_QUESTION, question);
+ cy.shouldNotContainText(widgetsDataTableElements(index).WIDGET_NAME, question);
}
});
}
@@ -979,6 +1100,7 @@ const createRatingWithApi = (username, password, appName, widgetName) => {
module.exports = {
verifyEmptyPageElements,
+ verifyFullDataPageElements,
verifySettingsPageElements,
verifyAppearancePageElements,
verifyDevicesAndTargetingPageElements,
diff --git a/ui-tests/cypress/lib/dashboard/messaging/messaging.js b/ui-tests/cypress/lib/dashboard/messaging/messaging.js
index d07bdb0db89..9cfcb2b7c8f 100644
--- a/ui-tests/cypress/lib/dashboard/messaging/messaging.js
+++ b/ui-tests/cypress/lib/dashboard/messaging/messaging.js
@@ -1,4 +1,8 @@
-import messagingPageElements from "../../../support/elements/dashboard/messaging/messaging";
+import {
+ messagingPageElements,
+ messagingMetricCardElements,
+ messagingDataTableElements
+} from "../../../support/elements/dashboard/messaging/messaging";
const verifyStaticElementsOfPage = () => {
cy.verifyElement({
@@ -16,49 +20,96 @@ const verifyStaticElementsOfPage = () => {
});
cy.verifyElement({
- labelElement: messagingPageElements.TOTAL_APP_USERS_LABEL,
+ labelElement: messagingMetricCardElements.TOTAL_APP_USERS_LABEL,
labelText: "Total App Users"
});
cy.verifyElement({
- labelElement: messagingPageElements.NOTIFICATION_ENABLED_USERS_LABEL,
+ labelElement: messagingMetricCardElements.NOTIFICATION_ENABLED_USERS_LABEL,
labelText: "Notification-enabled Users"
});
cy.verifyElement({
- labelElement: messagingPageElements.ENABLED_USERS_PERCENTAGE_LABEL,
+ labelElement: messagingMetricCardElements.ENABLED_USERS_PERCENTAGE_LABEL,
labelText: "Enabled Users Percentage",
- tooltipElement: messagingPageElements.ENABLED_USERS_PERCENTAGE_PROGRESS_TOOLTIP,
+ tooltipElement: messagingMetricCardElements.ENABLED_USERS_PERCENTAGE_PROGRESS_TOOLTIP,
tooltipText: "Number of users who have agreed to receive notifications, expressed as a percentage over the total number of app users."
});
cy.verifyElement({
- element: messagingPageElements.ENABLED_USERS_PERCENTAGE_PROGRESS_CIRCLE,
+ element: messagingMetricCardElements.ENABLED_USERS_PERCENTAGE_PROGRESS_CIRCLE,
});
cy.verifyElement({
- labelElement: messagingPageElements.RESULTS_FOR_LABEL,
+ labelElement: messagingDataTableElements().RESULTS_FOR_LABEL,
labelText: "Results for"
});
cy.verifyElement({
- element: messagingPageElements.RESULTS_FOR_COMBOBOX,
+ element: messagingDataTableElements().RESULTS_FOR_COMBOBOX,
});
cy.verifyElement({
- element: messagingPageElements.FILTER_PARAMETERS_SELECT,
+ element: messagingDataTableElements().FILTER_PARAMETERS_SELECT,
});
cy.verifyElement({
- element: messagingPageElements.EDIT_COLUMNS_BUTTON,
+ element: messagingDataTableElements().EDIT_COLUMNS_BUTTON,
});
cy.verifyElement({
- element: messagingPageElements.EXPORT_AS_BUTTON,
+ element: messagingDataTableElements().EXPORT_AS_BUTTON,
});
cy.verifyElement({
- element: messagingPageElements.DATATABLE_SEARCH_INPUT,
+ element: messagingDataTableElements().DATATABLE_SEARCH_INPUT,
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_CAMPAIGN_NAME_LABEL,
+ isElementVisible: false,
+ elementText: "Campaign Name",
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_CAMPAIGN_NAME_SORTABLE_ICON,
+ isElementVisible: false
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_STATUS_LABEL,
+ elementText: "Status",
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_STATUS_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_SENT_LABEL,
+ elementText: "Sent",
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_SENT_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_ACTIONED_LABEL,
+ elementText: "Actioned",
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_ACTIONED_SORTABLE_ICON,
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_DATE_SENT_SCHEDULED_LABEL,
+ elementText: "Date Sent/Scheduled",
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements().COLUMN_NAME_DATE_SENT_SCHEDULED_SORTABLE_ICON,
});
};
@@ -66,36 +117,170 @@ const verifyEmptyPageElements = () => {
verifyStaticElementsOfPage();
+ verifyMessagingMetricCard({
+ isEmpty: true,
+ });
+
+ verifyMessagingDataFromTable({
+ isEmpty: true,
+ });
+};
+
+const verifyFullDataPageElements = () => {
+
+ verifyStaticElementsOfPage();
+
+ verifyMessagingMetricCard({
+ isEmpty: false,
+ });
+
+ verifyMessagingDataFromTable({
+ isEmpty: false,
+ });
+};
+
+const verifyMessagingMetricCard = ({
+ isEmpty = false,
+ totalAppUsersNumber = null,
+ enabledUsersNumber = null,
+ enabledUsersPercentage = null,
+}) => {
+
+ if (isEmpty) {
+ cy.verifyElement({
+ labelElement: messagingMetricCardElements.TOTAL_APP_USERS_NUMBER_LABEL,
+ labelText: "0",
+ });
+
+ cy.verifyElement({
+ labelElement: messagingMetricCardElements.NOTIFICATION_ENABLED_USERS_NUMBER_LABEL,
+ labelText: "0",
+ });
+
+ cy.verifyElement({
+ labelElement: messagingMetricCardElements.ENABLED_USERS_PERCENTAGE_NUMBER_LABEL,
+ labelText: "0%",
+ });
+ return;
+ }
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ element: messagingMetricCardElements.TOTAL_APP_USERS_NUMBER_LABEL,
+ elementText: totalAppUsersNumber,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ element: messagingMetricCardElements.NOTIFICATION_ENABLED_USERS_NUMBER_LABEL,
+ elementText: enabledUsersNumber,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ element: messagingMetricCardElements.ENABLED_USERS_PERCENTAGE_NUMBER_LABEL,
+ elementText: enabledUsersPercentage,
+ });
+};
+
+const verifyMessagingDataFromTable = ({
+ index = 0,
+ isEmpty = false,
+ campaignName = null,
+ platform = null,
+ createdBy = null,
+ status = null,
+ sent = null,
+ actionedNumber = null,
+ actionedPercentage = null,
+ dateSent = null,
+ dateScheduled = null,
+}) => {
+
+ if (isEmpty) {
+
+ cy.verifyElement({
+ element: messagingDataTableElements().EMPTY_TABLE_ICON,
+ });
+
+ cy.verifyElement({
+ labelElement: messagingDataTableElements().EMPTY_TABLE_TITLE,
+ labelText: "...hmm, seems empty here",
+ });
+
+ cy.verifyElement({
+ labelElement: messagingDataTableElements().EMPTY_TABLE_SUBTITLE,
+ labelText: "No data found",
+ });
+ return;
+ }
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).CAMPAIGN_NAME,
+ elementText: campaignName
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).PLATFORM,
+ elementText: platform
+ });
+
+ cy.verifyElement({
+ element: messagingDataTableElements(index).CAMPAIGN_NAME_BLINKER,
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).CREATED_BY,
+ elementText: createdBy
+ });
+
+ cy.verifyElement({
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).STATUS,
+ elementText: status
+ });
+
cy.verifyElement({
- labelElement: messagingPageElements.TOTAL_APP_USERS_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).SENT,
+ elementText: sent
});
cy.verifyElement({
- labelElement: messagingPageElements.NOTIFICATION_ENABLED_USERS_NUMBER_LABEL,
- labelText: "0",
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).ACTIONED,
+ elementText: actionedNumber
});
cy.verifyElement({
- labelElement: messagingPageElements.ENABLED_USERS_PERCENTAGE_NUMBER_LABEL,
- labelText: "0%",
+ element: messagingDataTableElements(index).ACTIONED_DIVIDER,
});
cy.verifyElement({
- element: messagingPageElements.EMPTY_TABLE_ICON,
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).ACTIONED_PERCENTAGE,
+ elementText: actionedPercentage
});
cy.verifyElement({
- labelElement: messagingPageElements.EMPTY_TABLE_TITLE,
- labelText: "...hmm, seems empty here",
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).DATE_SENT,
+ elementText: dateSent
});
cy.verifyElement({
- labelElement: messagingPageElements.EMPTY_TABLE_SUBTITLE,
- labelText: "No data found",
+ shouldNot: !isEmpty,
+ element: messagingDataTableElements(index).SCHEDULED,
+ elementText: dateScheduled
});
};
module.exports = {
verifyEmptyPageElements,
+ verifyFullDataPageElements,
+ verifyMessagingMetricCard,
+ verifyMessagingDataFromTable
};
\ No newline at end of file
diff --git a/ui-tests/cypress/support/elements/dashboard/crashes/crashes.js b/ui-tests/cypress/support/elements/dashboard/crashes/crashes.js
index f03c30d20b2..a228c6a0608 100644
--- a/ui-tests/cypress/support/elements/dashboard/crashes/crashes.js
+++ b/ui-tests/cypress/support/elements/dashboard/crashes/crashes.js
@@ -1,20 +1,66 @@
-export default {
+export const crashPageElements = {
PAGE_TITLE: 'header-title',
PAGE_TITLE_TOOLTIP: 'header-title-tooltip',
TAB_CRASH_GROUPS: 'tab-crash-groups-label',
TAB_CRASH_STATISTICS: 'tab-crash-statistics-label',
+};
+
+export const crashGroupsPageElements = {
AUTO_REFRESH_IS_LABEL: 'crash-groups-auto-refresh-toggle-is-label',
ENABLED_LABEL: 'crash-groups-auto-refresh-toggle-enabled-label',
AUTO_REFRESH_IS_ENABLED_TOOLTIP: 'crash-groups-auto-refresh-toggle-tooltip',
STOP_AUTO_REFRESH_BUTTON: 'crash-groups-auto-refresh-toggle-button',
ENABLE_AUTO_REFRESH_TOGGLE: 'crash-groups-auto-refresh-toggle-el-switch-core',
+};
+
+const crashGroupsDataTableElements = (index = 0) => ({
EDIT_COLUMNS_BUTTON: 'crash-groups-edit-columns-button',
EXPORT_AS_BUTTON: 'crash-groups-export-as-button',
DATATABLE_SEARCH_INPUT: 'crash-groups-datatable-search-input',
+ TABLE_ROWS: '.el-table__row',
+
EMPTY_TABLE_ICON: 'crash-groups-empty-logo',
EMPTY_TABLE_TITLE: 'crash-groups-empty-title',
EMPTY_TABLE_SUBTITLE: 'crash-groups-empty-subtitle',
- //Crash Statistics
+
+ COLUMN_NAME_CRASH_GROUP_LABEL: 'crash-groups-label-crash-group',
+ COLUMN_NAME_PLATFORM_LABEL: 'crash-groups-label-platform',
+ COLUMN_NAME_PLATFORM_SORTABLE_ICON: 'crash-groups-sortable-icon-platform',
+ COLUMN_NAME_OCCURRENCES_LABEL: 'crash-groups-label-occurrences',
+ COLUMN_NAME_OCCURRENCES_SORTABLE_ICON: 'crash-groups-sortable-icon-occurrences',
+ COLUMN_NAME_LAST_OCCURRENCES_LABEL: 'crash-groups-label-last-occurrence',
+ COLUMN_NAME_LAST_OCCURRENCES_SORTABLE_ICON: 'crash-groups-sortable-icon-last-occurrence',
+ COLUMN_NAME_AFFECTED_USERS_LABEL: 'crash-groups-label-affected-users',
+ COLUMN_NAME_AFFECTED_USERS_SORTABLE_ICON: 'crash-groups-sortable-icon-affected-users',
+ COLUMN_NAME_LATEST_APP_VERSION_LABEL: 'crash-groups-label-latest-app-version',
+ COLUMN_NAME_LATEST_APP_VERSION_SORTABLE_ICON: 'crash-groups-sortable-icon-latest-app-version',
+
+ //Columns' Rows' Datas Elements
+ CRASH_GROUP: 'datatable-crash-groups-group-title-' + index,
+ CRASH_GROUP_BADGE_TYPE_1: 'datatable-crash-groups-badge-type-0-col-' + index,
+ CRASH_GROUP_BADGE_TYPE_2: 'datatable-crash-groups-badge-type-1-col-' + index,
+ CRASH_GROUP_BADGE_TYPE_3: 'datatable-crash-groups-badge-type-2-col-' + index,
+ CRASH_GROUP_BADGE_TYPE_4: 'datatable-crash-groups-badge-type-3-col-' + index,
+ PLATFORM: 'datatable-crash-groups-platform-' + index,
+ OCCURRENCES: 'datatable-crash-groups-occurences-' + index,
+ LAST_OCCURANCES: 'datatable-crash-groups-last-occurrence-' + index,
+ AFFECTED_USERS: 'datatable-crash-groups-affected-users-' + index,
+ LATEST_APP_VERSION: 'datatable-crash-groups-latest-app-version-' + index,
+
+ //PAGINATION ELEMENTS
+ ITEMS_PER_PAGE_LABEL: 'crash-groups-items-per-page-label',
+ PER_PAGE_COUNT_SELECT: 'crash-groups-items-per-page-count-select-input-pseudo-input-label',
+ PER_PAGE_COUNT_SELECT_ICON: 'crash-groups-items-per-page-count-select-icon',
+ PER_PAGE_COUNT_LABEL: 'crash-groups-items-per-page-count-select',
+ PAGE_NUMBER_SELECT: 'crash-groups-page-number-select-input-pseudo-input-label',
+ PAGE_NUMBER_SELECT_ICON: 'crash-groups-page-number-select-icon',
+ FIRST_PAGE_ARROW_BUTTON: 'crash-groups-first-page-arrow-button',
+ PREVIOUS_PAGE_ARROW_BUTTON: 'crash-groups-groups-previous-page-arrow-button',
+ NEXT_PAGE_ARROW_BUTTON: 'crash-groups-next-page-arrow-button',
+ LAST_PAGE_ARROW_BUTTON: 'crash-groups-views-last-page-arrow-button'
+});
+
+const crashStatisticsMetricCardElements = (index = 0) => ({
AFFECTED_USERS_LABEL: 'metric-card-affected-user-column-label',
AFFECTED_USERS_TOOLTIP: 'metric-card-affected-user-column-tooltip',
AFFECTED_USERS_NUMBER_LABEL: 'metric-card-affected-user-column-number',
@@ -36,6 +82,10 @@ export default {
TOP_PLATFORMS_LABEL: 'crash-statistics-top-platforms-label',
TOP_PLATFORMS_TOOLTIP: 'crash-statistics-top-platforms-tooltip',
+ TOP_PLATFORM_NAME: 'crash-statistics-top-platforms-platform-' + index,
+ TOP_PLATFORM_USER_PERCENTAGE: 'crash-statistics-top-platforms-platform-users-percentage-' + index,
+ TOP_PLATFORM_PROGRESS_BAR: 'crash-statistics-top-platforms-platform-' + index + '-progress-bar',
+
NEW_CRASHES_LABEL: 'crash-statistics-new-crashes-title',
NEW_CRASHES_TOOLTIP: 'crash-statistics-new-crashes-tooltip',
NEW_CRASHES_NUMBER_LABEL: 'crash-statistics-new-crashes-value',
@@ -46,46 +96,67 @@ export default {
REVENUE_LOSS_LABEL: 'crash-statistics-revenue-loss-title',
REVENUE_LOSS_TOOLTIP: 'crash-statistics-revenue-loss-tooltip',
- REVENUE_LOSS_NUMBER_LABEL: 'crash-statistics-revenue-loss-value',
+ REVENUE_LOSS_NUMBER_LABEL: 'crash-statistics-revenue-loss-value'
+});
+const crashStatisticsEChartElements = {
FILTER_DATE_PICKER: 'cly-datepicker-test-id-pseudo-input-label',
CRASH_FILTERS_LABEL: 'crashes-crash-filters-label',
FILTER_PARAMETERS_SELECT: 'cly-multi-select-test-id-pseudo-input-label',
+ CHART_TYPE_SELECT_COMBOBOX: 'cly-chart-line-default-test-id-header-select-icon',
+ CHART_ANNOTATION_BUTTON: 'chart-type-annotation-icon',
+ CHART_MORE_BUTTON: 'cly-chart-line-default-test-id-header-cly-chart-more-dropdown-more-option-button',
+
TOTAL_OCCURENCES_LABEL: 'cly-section-total-occurences-title',
TOTAL_OCCURENCES_TOOLTIP: 'cly-section-total-occurences-tooltip',
TOTAL_OCCURENCES_NUMBER_LABEL: 'cly-section-total-occurences-value',
- TOTAL_OCCURENCES_ARROW: 'cly-section-total-occurences-arrow',
+ TOTAL_OCCURENCES_TREND_ICON: 'cly-section-total-occurences-arrow',
TOTAL_OCCURENCES_CHANGE_VALUE_LABEL: 'cly-section-total-occurences-change-value',
TOTAL_OCCURENCES_GRAPH: 'total-occurrences-graph',
UNIQUE_CRASHES_LABEL: 'cly-section-unique-crashes-title',
UNIQUE_CRASHES_TOOLTIP: 'cly-section-unique-crashes-tooltip',
UNIQUE_CRASHES_NUMBER_LABEL: 'cly-section-unique-crashes-value',
- UNIQUE_CRASHES_ARROW: 'cly-section-unique-crashes-arrow',
+ UNIQUE_CRASHES_TREND_ICON: 'cly-section-unique-crashes-arrow',
UNIQUE_CRASHES_CHANGE_VALUE_LABEL: 'cly-section-unique-crashes-change-value',
UNIQUE_CRASHES_GRAPH: 'unique-crashes-graph',
CRASHES_OR_SESSIONS_LABEL: 'cly-section-crashes-or-sessions-title',
CRASHES_OR_SESSIONS_TOOLTIP: 'cly-section-crashes-or-sessions-tooltip',
CRASHES_OR_SESSIONS_NUMBER_LABEL: 'cly-section-crashes-or-sessions-value',
- CRASHES_OR_SESSIONS_ARROW: 'cly-section-crashes-or-sessions-arrow',
+ CRASHES_OR_SESSIONS_TREND_ICON: 'cly-section-crashes-or-sessions-arrow',
+ CRASHES_OR_SESSIONS_CHANGE_VALUE_LABEL: 'cly-section-crashes-or-sessions-change-value',
CRASHES_OR_SESSIONS_GRAPH: 'crashes-per-session-graph',
CRASH_FREE_USERS_LABEL: 'cly-section-crash-free-users-title',
CRASH_FREE_USERS_TOOLTIP: 'cly-section-crash-free-users-tooltip',
CRASH_FREE_USERS_NUMBER_LABEL: 'cly-section-crash-free-users-value',
- CRASH_FREE_USERS_ARROW: 'cly-section-crash-free-users-arrow',
+ CRASH_FREE_USERS_TREND_ICON: 'cly-section-crash-free-users-arrow',
CRASH_FREE_USERS_CHANGE_VALUE_LABEL: 'cly-section-crash-free-users-change-value',
CRASH_FREE_USERS_GRAPH: 'crashfree-users-graph',
CRASH_FREE_SESSIONS_LABEL: 'cly-section-crash-free-sessions-title',
CRASH_FREE_SESSIONS_TOOLTIP: 'cly-section-crash-free-sessions-tooltip',
CRASH_FREE_SESSIONS_NUMBER_LABEL: 'cly-section-crash-free-sessions-value',
- CRASH_FREE_SESSIONS_ARROW: 'cly-section-crash-free-sessions-arrow',
+ CRASH_FREE_SESSIONS_TREND_ICON: 'cly-section-crash-free-sessions-arrow',
CRASH_FREE_SESSIONS_CHANGE_VALUE_LABEL: 'cly-section-crash-free-sessions-change-value',
CRASH_FREE_SESSIONS_GRAPH: 'crashfree-sessions-graph',
- CHART_TYPE_COMBOBOX: 'cly-chart-header-test-id-select-input',
- MORE_OPTION_BUTTON: 'cly-chart-header-test-id-cly-chart-more-dropdown-more-option-button',
+ CHART_TYPE_COMBOBOX: 'cly-chart-line-default-test-id-header-select-input',
+ ANNOTATION_BUTTON: 'chart-type-annotation-button',
+ MORE_OPTION_BUTTON: 'cly-chart-line-default-test-id-header-cly-chart-more-dropdown-more-option-button',
+
+ CHART_PREVIOUS_TOTAL_OCCURENCES_ICON: 'cly-chart-line-default-test-id-legend-previous-total-occurences-legend-icon',
+ CHART_PREVIOUS_TOTAL_OCCURENCES_LABEL: 'cly-chart-line-default-test-id-legend-previous-total-occurences-legend-label',
+ CHART_TOTAL_OCCURENCES_ICON: 'cly-chart-line-default-test-id-legend-total-occurences-legend-icon',
+ CHART_TOTAL_OCCURENCES_LABEL: 'cly-chart-line-default-test-id-legend-total-occurences-legend-label'
};
+
+module.exports = {
+ crashPageElements,
+ crashGroupsPageElements,
+ crashGroupsDataTableElements,
+ crashStatisticsMetricCardElements,
+ crashStatisticsEChartElements
+};
\ No newline at end of file
diff --git a/ui-tests/cypress/support/elements/dashboard/feedback/ratings/ratings.js b/ui-tests/cypress/support/elements/dashboard/feedback/ratings/ratings.js
index 7c56f1e7a5a..db0d1a5e26d 100644
--- a/ui-tests/cypress/support/elements/dashboard/feedback/ratings/ratings.js
+++ b/ui-tests/cypress/support/elements/dashboard/feedback/ratings/ratings.js
@@ -1,18 +1,108 @@
-export default {
+export const ratingsPageElements = {
PAGE_TITLE: 'ratings-header-title',
PAGE_TITLE_TOOLTIP: 'ratings-header-tooltip',
TAB_RATINGS: 'tab-ratings-tab-ratings-title',
TAB_RATING_WIDGETS: 'tab-ratings-tab-rating-widgets-title',
+
RESULTS_FOR_LABEL: 'ratings-result-for-label',
FILTER_PARAMETERS_COMBOBOX: 'ratings-filter-parameters-dropdown-pseudo-input-label',
FILTER_DATE_PICKER: 'ratings-date-range-select-dropdown-pseudo-input-label',
+
+ DATATABLE_TAB_RATINGS: 'tab-ratings-data-table-tab-ratings-title',
+ DATATABLE_TAB_COMMENTS: 'tab-ratings-data-table-tab-comments-title',
+};
+
+const ratingsMetricCardElements = {
TOTAL_RATINGS_LABEL: 'metric-card-ratings-total-ratings-column-label',
TOTAL_RATINGS_TOOLTIP: 'metric-card-ratings-total-ratings-column-tooltip',
TOTAL_RATINGS_NUMBER_LABEL: 'metric-card-ratings-total-ratings-column-number',
AVERAGE_RATINGS_SCORE_LABEL: 'metric-card-ratings-average-ratings-score-column-label',
AVERAGE_RATINGS_SCORE_TOOLTIP: 'metric-card-ratings-average-ratings-score-column-tooltip',
AVERAGE_RATINGS_SCORE_NUMBER_LABEL: 'metric-card-ratings-average-ratings-score-column-number',
+};
+
+const ratingsEChartElements = {
+ ECHARTS: '.echarts',
EMPTY_CHART_ICON: 'ratings-chart-empty-logo',
EMPTY_CHART_TITLE: 'ratings-chart-empty-title',
EMPTY_CHART_SUBTITLE: 'ratings-chart-empty-subtitle',
+
+ MORE_BUTTON: 'ratings-chart-cly-chart-more-dropdown-more-option-button',
+ RATING_ICON: 'ratings-chart-ratings-legend-icon',
+ RATING: 'ratings-chart-ratings-legend-label',
};
+
+const ratingsDataTableElements = (index = 0) => ({
+ EXPORT_AS_BUTTON: 'ratings-data-table-export-as-button',
+ TABLE_SEARCH_INPUT: 'ratings-data-table-datatable-search-input',
+ TABLE_ROWS: '.el-table__row',
+
+ COLUMN_NAME_RATING_NAME_LABEL: 'ratings-data-table-label-rating',
+ COLUMN_NAME_RATING_NAME_SORTABLE_ICON: 'ratings-data-table-sortable-icon-rating',
+ COLUMN_NAME_NUMBER_OF_RATINGS_LABEL: 'ratings-data-table-label-number-of-ratings',
+ COLUMN_NAME_NUMBER_OF_RATINGS_SORTABLE_ICON: 'ratings-data-table-sortable-icon-number-of-ratings',
+ COLUMN_NAME_PERCENTAGE_LABEL: 'ratings-data-table-label-percentage',
+ COLUMN_NAME_PERCENTAGE_SORTABLE_ICON: 'ratings-data-table-sortable-icon-percentage',
+
+ //Columns' Rows' Datas Elements
+ RATING_ICON: 'ratings-data-table-rating-' + index,
+ RATING: 'ratings-data-table-rating-' + index,
+ NUMBER_OF_RATINGS: 'ratings-data-table-number-of-rating-' + index,
+ PERCENTAGE: 'ratings-data-table-percentage-' + index,
+
+ //PAGINATION ELEMENTS
+ ITEMS_PER_PAGE_LABEL: 'ratings-items-per-page-label',
+ PER_PAGE_COUNT_SELECT: 'ratings-items-per-page-count-select-input-pseudo-input-label',
+ PER_PAGE_COUNT_SELECT_ICON: 'ratings-items-per-page-count-select-icon',
+ PER_PAGE_COUNT_LABEL: 'ratings-items-per-page-count-select',
+ PAGE_NUMBER_SELECT: 'ratings-page-number-select-input-pseudo-input-label',
+ PAGE_NUMBER_SELECT_ICON: 'ratings-page-number-select-icon',
+ FIRST_PAGE_ARROW_BUTTON: 'ratings-first-page-arrow-button',
+ PREVIOUS_PAGE_ARROW_BUTTON: 'ratings-previous-page-arrow-button',
+ NEXT_PAGE_ARROW_BUTTON: 'ratings-next-page-arrow-button',
+ LAST_PAGE_ARROW_BUTTON: 'ratings-views-last-page-arrow-button'
+});
+
+const commentsDataTableElements = (index = 0) => ({
+ EMPTY_TABLE_ICON: 'ratings-comments-table-empty-logo',
+ EMPTY_TABLE_TITLE: 'ratings-comments-table-empty-title',
+ EMPTY_TABLE_SUBTITLE: 'ratings-comments-table-empty-subtitle',
+
+ EXPORT_AS_BUTTON: 'ratings-comments-table-export-as-button',
+ TABLE_SEARCH_INPUT: 'ratings-comments-table-datatable-search-input',
+ TABLE_ROWS: '.el-table__row',
+
+ COLUMN_NAME_COMMENT_NAME_LABEL: 'ratings-comments-table-label-comment',
+ COLUMN_NAME_RATING_LABEL: 'ratings-comments-table-label-rating',
+ COLUMN_NAME_RATING_SORTABLE_ICON: 'ratings-comments-table-sortable-icon-rating',
+ COLUMN_NAME_TIME_LABEL: 'ratings-comments-table-label-time',
+ COLUMN_NAME_TIME_SORTABLE_ICON: 'ratings-comments-table-sortable-icon-time',
+ COLUMN_NAME_E_MAIL_LABEL: 'ratings-comments-table-label-e-mail',
+
+ //Columns' Rows' Datas Elements
+ COMMENT: 'ratings-comment-table-comment-row-' + index,
+ RATING_ICON: 'rating-color rating-comments-color-' + index,
+ RATING: 'ratings-comment-table-rating-row-' + index,
+ TIME: 'ratings-comment-table-time-row-' + index,
+ E_MAIL: 'ratings-comment-table-email-row-' + index,
+
+ //PAGINATION ELEMENTS
+ ITEMS_PER_PAGE_LABEL: 'ratings-comments-items-per-page-label',
+ PER_PAGE_COUNT_SELECT: 'ratings-comments-items-per-page-count-select-input-pseudo-input-label',
+ PER_PAGE_COUNT_SELECT_ICON: 'ratings-comments-items-per-page-count-select-icon',
+ PER_PAGE_COUNT_LABEL: 'ratings-comments-items-per-page-count-select',
+ PAGE_NUMBER_SELECT: 'ratings-comments-page-number-select-input-pseudo-input-label',
+ PAGE_NUMBER_SELECT_ICON: 'ratings-comments-page-number-select-icon',
+ FIRST_PAGE_ARROW_BUTTON: 'ratings-comments-first-page-arrow-button',
+ PREVIOUS_PAGE_ARROW_BUTTON: 'ratings-comments-previous-page-arrow-button',
+ NEXT_PAGE_ARROW_BUTTON: 'ratings-comments-next-page-arrow-button',
+ LAST_PAGE_ARROW_BUTTON: 'ratings-comments-views-last-page-arrow-button'
+});
+
+module.exports = {
+ ratingsPageElements,
+ ratingsMetricCardElements,
+ ratingsEChartElements,
+ ratingsDataTableElements,
+ commentsDataTableElements
+};
\ No newline at end of file
diff --git a/ui-tests/cypress/support/elements/dashboard/feedback/ratings/widgets.js b/ui-tests/cypress/support/elements/dashboard/feedback/ratings/widgets.js
index 0f8dd450e37..4069449bea5 100644
--- a/ui-tests/cypress/support/elements/dashboard/feedback/ratings/widgets.js
+++ b/ui-tests/cypress/support/elements/dashboard/feedback/ratings/widgets.js
@@ -129,7 +129,6 @@ export const feedbackRatingWidgetsPageElements = {
};
const widgetsDataTableElements = (index = 0) => ({
-
TABLE_ROWS: '.el-table__row',
EDIT_COLUMNS_BUTTON: 'ratings-widgets-data-table-edit-columns-button',
EXPORT_AS_BUTTON: 'ratings-widgets-data-table-export-as-button',
@@ -137,7 +136,7 @@ const widgetsDataTableElements = (index = 0) => ({
COLUMN_NAME_STATUS_LABEL: 'ratings-widgets-data-table-label-status',
COLUMN_NAME_STATUS_SORTABLE_ICON: 'ratings-widgets-data-table-sortable-icon-status',
COLUMN_NAME_RATINGS_WIDGET_NAME_LABEL: 'ratings-widgets-data-table-label-ratings-widget-name',
- COLUMN_NAME_TARGETING_LABEL: 'ratings-widgets-data-table-label-targeting',
+ COLUMN_NAME_INTERNAL_NAME_LABEL: 'ratings-widgets-data-table-label-internal-name',
COLUMN_NAME_RATING_SCORE_LABEL: 'ratings-widgets-data-table-label-rating-score',
COLUMN_NAME_RATING_SCORE_SORTABLE_ICON: 'ratings-widgets-data-table-sortable-icon-rating-score',
COLUMN_NAME_RESPONSES_LABEL: 'ratings-widgets-data-table-label-responses',
@@ -147,15 +146,10 @@ const widgetsDataTableElements = (index = 0) => ({
//Columns' Rows' Datas Elements
STATUS_SWITCH_WRAPPER: 'ratings-widgets-data-table-status-' + index + '-el-switch-wrapper',
STATUS_SWITCH_INPUT: 'ratings-widgets-data-table-status-' + index + '-el-switch-input',
- WIDGET_QUESTION: 'ratings-widgets-data-table-widget-name-' + index,
+ WIDGET_NAME: 'ratings-widgets-data-table-widget-name-' + index,
INTERNAL_NAME: 'ratings-widgets-data-table-internal-widget-name-' + index,
WIDGET_ID_LABEL: 'ratings-widgets-data-table-widget-id-label-' + index,
WIDGET_ID: 'ratings-widgets-data-table-widget-id-value-' + index,
- TARGETING_ALL_USERS: 'ratings-widgets-data-table-targeting-' + index + '-all-users',
- TARGETING_PROPERTY_LABEL: 'ratings-widgets-data-table-targeting-' + index + '-seg-type-label',
- TARGETING_PROPERTY_SEGMENT: 'ratings-widgets-data-table-targeting-' + index + '-seg-type-value',
- TARGETING_BEHAVIOR_LABEL: 'ratings-widgets-data-table-targeting-' + index + '-cohorts-behavior-label',
- TARGETING_BEHAVIOR_SEGMENT: 'ratings-widgets-data-table-targeting-' + index + '-cohorts-behavior-value',
RATING_SCORE: 'ratings-widgets-data-table-rating-score-' + index,
RESPONSES: 'ratings-widgets-data-table-responses-' + index,
PAGES: 'ratings-widgets-data-table-pages-' + index,
@@ -217,7 +211,6 @@ export const feedbackRatingWidgetDetailsPageElements = {
};
const feedbackRatingWidgetDetailsCommentsDataTableElements = (index = 0) => ({
-
TABLE_ROWS: '.el-table__row',
EXPORT_AS_BUTTON: 'ratings-comments-table-export-as-button',
TABLE_SEARCH_INPUT: 'ratings-comments-table-datatable-search-input',
@@ -231,7 +224,7 @@ const feedbackRatingWidgetDetailsCommentsDataTableElements = (index = 0) => ({
ROW_RATING: 'ratings-comment-table-rating-row-' + index,
ROW_TIME: 'ratings-comment-table-time-row-' + index,
ROW_COMMENT: 'ratings-comment-table-comment-row-' + index,
- ROW_EMAIL: 'ratings-comment-table-time-email-row' + index,
+ ROW_EMAIL: 'ratings-comment-table-email-row-' + index,
//PAGINATION ELEMENTS
ITEMS_PER_PAGE_LABEL: 'ratings-comments-table-items-per-page-label',
@@ -247,7 +240,6 @@ const feedbackRatingWidgetDetailsCommentsDataTableElements = (index = 0) => ({
});
const feedbackRatingWidgetDetailsRatingsDataTableElements = (index = 0) => ({
-
TABLE_ROWS: '.el-table__row',
EXPORT_AS_BUTTON: 'ratings-data-table-export-as-button',
TABLE_SEARCH_INPUT: 'ratings-data-table-datatable-search-input',
diff --git a/ui-tests/cypress/support/elements/dashboard/messaging/messaging.js b/ui-tests/cypress/support/elements/dashboard/messaging/messaging.js
index 57003e4a2b8..a88c9b3c88d 100644
--- a/ui-tests/cypress/support/elements/dashboard/messaging/messaging.js
+++ b/ui-tests/cypress/support/elements/dashboard/messaging/messaging.js
@@ -1,7 +1,10 @@
-export default {
+export const messagingPageElements = {
PAGE_TITLE: 'header-title',
PAGE_TITLE_GUIDE_BUTTON: 'view-guide-button',
- CREATE_NEW_MESSAGE_BUTTON: 'create-new-messsage-button',
+ CREATE_NEW_MESSAGE_BUTTON: 'create-new-messsage-button'
+};
+
+const messagingMetricCardElements = {
TOTAL_APP_USERS_LABEL: 'metric-card-total-app-users-column-label',
TOTAL_APP_USERS_NUMBER_LABEL: 'metric-card-total-app-users-column-number',
NOTIFICATION_ENABLED_USERS_LABEL: 'metric-card-notification-enabled-users-column-label',
@@ -10,13 +13,61 @@ export default {
ENABLED_USERS_PERCENTAGE_NUMBER_LABEL: 'metric-card-enabled-users-percentage-column-number',
ENABLED_USERS_PERCENTAGE_PROGRESS_CIRCLE: 'el-progress-metric-card-enabled-users-percentage-column',
ENABLED_USERS_PERCENTAGE_PROGRESS_TOOLTIP: 'metric-card-enabled-users-percentage-column-tooltip',
+};
+
+const messagingDataTableElements = (index = 0) => ({
+ EMPTY_TABLE_ICON: 'messaging-empty-logo',
+ EMPTY_TABLE_TITLE: 'messaging-empty-title',
+ EMPTY_TABLE_SUBTITLE: 'messaging-empty-subtitle',
+
RESULTS_FOR_LABEL: 'push-notifications-result-for-label',
RESULTS_FOR_COMBOBOX: 'push-notifications-result-for-combobox',
FILTER_PARAMETERS_SELECT: 'cly-multi-select-test-id-pseudo-input-label',
- EDIT_COLUMNS_BUTTON: 'cly-datatable-n-test-id-edit-columns-button',
- EXPORT_AS_BUTTON: 'cly-datatable-n-test-id-export-as-button',
- DATATABLE_SEARCH_INPUT: 'cly-datatable-n-test-id-datatable-search-input',
- EMPTY_TABLE_ICON: 'cly-datatable-n-test-id-empty-logo',
- EMPTY_TABLE_TITLE: 'cly-datatable-n-test-id-empty-title',
- EMPTY_TABLE_SUBTITLE: 'cly-datatable-n-test-id-empty-subtitle'
+ EDIT_COLUMNS_BUTTON: 'messaging-edit-columns-button',
+
+ EXPORT_AS_BUTTON: 'messaging-export-as-button',
+ TABLE_SEARCH_INPUT: 'messaging-datatable-search-input',
+ TABLE_ROWS: '.el-table__row',
+
+ COLUMN_NAME_CAMPAIGN_NAME_LABEL: 'messaging-label-campaign-name',
+ COLUMN_NAME_CAMPAIGN_NAME_SORTABLE_ICON: 'messaging-sortable-icon-campaign-name',
+ COLUMN_NAME_STATUS_LABEL: 'messaging-label-status',
+ COLUMN_NAME_STATUS_SORTABLE_ICON: 'messaging-sortable-icon-status',
+ COLUMN_NAME_SENT_LABEL: 'messaging-label-sent',
+ COLUMN_NAME_SENT_SORTABLE_ICON: 'messaging-sortable-icon-sent',
+ COLUMN_NAME_ACTIONED_LABEL: 'messaging-label-actioned',
+ COLUMN_NAME_ACTIONED_SORTABLE_ICON: 'messaging-sortable-icon-actioned',
+ COLUMN_NAME_DATE_SENT_SCHEDULED_LABEL: 'messaging-label-date-sent/scheduled',
+ COLUMN_NAME_DATE_SENT_SCHEDULED_SORTABLE_ICON: 'messaging-sortable-icon-date-sent/scheduled',
+
+ //Columns' Rows' Datas Elements
+ CAMPAIGN_NAME: 'datatable-messaging-campaign-name-' + index,
+ PLATFORM: 'datatable-messaging-platform-name-' + index,
+ CAMPAIGN_NAME_BLINKER: 'datatable-messaging-blinker-' + index,
+ CREATED_BY: 'datatable-messaging-created-by-' + index,
+ STATUS: 'datatable-messaging-status-' + index,
+ SENT: 'datatable-messaging-sent-' + index,
+ ACTIONED: 'datatable-messaging-actioned-value-' + index,
+ ACTIONED_DIVIDER: 'datatable-messaging-actioned-divider-' + index,
+ ACTIONED_PERCENTAGE: 'datatable-messaging-actioned-percentage-' + index,
+ DATE_SENT: 'datatable-messaging-date-sent-' + index,
+ SCHEDULED: 'datatable-messaging-scheduled-' + index,
+
+ //PAGINATION ELEMENTS
+ ITEMS_PER_PAGE_LABEL: 'messaging-items-per-page-label',
+ PER_PAGE_COUNT_SELECT: 'messaging-items-per-page-count-select-input-pseudo-input-label',
+ PER_PAGE_COUNT_SELECT_ICON: 'messaging-items-per-page-count-select-icon',
+ PER_PAGE_COUNT_LABEL: 'messaging-items-per-page-count-select',
+ PAGE_NUMBER_SELECT: 'messaging-page-number-select-input-pseudo-input-label',
+ PAGE_NUMBER_SELECT_ICON: 'messaging-page-number-select-icon',
+ FIRST_PAGE_ARROW_BUTTON: 'messaging-first-page-arrow-button',
+ PREVIOUS_PAGE_ARROW_BUTTON: 'messaging-previous-page-arrow-button',
+ NEXT_PAGE_ARROW_BUTTON: 'messaging-next-page-arrow-button',
+ LAST_PAGE_ARROW_BUTTON: 'messaging-views-last-page-arrow-button'
+});
+
+module.exports = {
+ messagingPageElements,
+ messagingMetricCardElements,
+ messagingDataTableElements
};
\ No newline at end of file