mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-17 21:00:45 +00:00
CE-793 - Fixes for failed selnium tests
This commit is contained in:
@ -375,11 +375,13 @@ export default function QuickFilter({tableMetaData, fullFieldName, fieldMetaData
|
|||||||
|
|
||||||
let buttonAdditionalStyles: any = {};
|
let buttonAdditionalStyles: any = {};
|
||||||
let buttonContent = <span>{tableForField?.name != tableMetaData.name ? `${tableForField.label}: ` : ""}{fieldMetaData.label}</span>
|
let buttonContent = <span>{tableForField?.name != tableMetaData.name ? `${tableForField.label}: ` : ""}{fieldMetaData.label}</span>
|
||||||
|
let buttonClassName = "filterNotActive";
|
||||||
if (criteriaIsValid)
|
if (criteriaIsValid)
|
||||||
{
|
{
|
||||||
buttonAdditionalStyles.backgroundColor = accentColor + " !important";
|
buttonAdditionalStyles.backgroundColor = accentColor + " !important";
|
||||||
buttonAdditionalStyles.borderColor = accentColor + " !important";
|
buttonAdditionalStyles.borderColor = accentColor + " !important";
|
||||||
buttonAdditionalStyles.color = "white !important";
|
buttonAdditionalStyles.color = "white !important";
|
||||||
|
buttonClassName = "filterActive";
|
||||||
|
|
||||||
buttonContent = (
|
buttonContent = (
|
||||||
<Tooltip title={`${operatorSelectedValue.label} ${FilterUtils.getValuesString(fieldMetaData, criteria)}`} enterDelay={tooltipEnterDelay}>
|
<Tooltip title={`${operatorSelectedValue.label} ${FilterUtils.getValuesString(fieldMetaData, criteria)}`} enterDelay={tooltipEnterDelay}>
|
||||||
@ -390,6 +392,7 @@ export default function QuickFilter({tableMetaData, fullFieldName, fieldMetaData
|
|||||||
|
|
||||||
let button = fieldMetaData && <Button
|
let button = fieldMetaData && <Button
|
||||||
id={`quickFilter.${fullFieldName}`}
|
id={`quickFilter.${fullFieldName}`}
|
||||||
|
className={buttonClassName}
|
||||||
sx={{...quickFilterButtonStyles, ...buttonAdditionalStyles, mr: "0.5rem"}}
|
sx={{...quickFilterButtonStyles, ...buttonAdditionalStyles, mr: "0.5rem"}}
|
||||||
onClick={tooComplex ? noop : handleOpenMenu}
|
onClick={tooComplex ? noop : handleOpenMenu}
|
||||||
disabled={tooComplex}
|
disabled={tooComplex}
|
||||||
|
@ -33,7 +33,7 @@ import {QCriteriaOperator} from "@kingsrook/qqq-frontend-core/lib/model/query/QC
|
|||||||
import {QFilterCriteria} from "@kingsrook/qqq-frontend-core/lib/model/query/QFilterCriteria";
|
import {QFilterCriteria} from "@kingsrook/qqq-frontend-core/lib/model/query/QFilterCriteria";
|
||||||
import {QFilterOrderBy} from "@kingsrook/qqq-frontend-core/lib/model/query/QFilterOrderBy";
|
import {QFilterOrderBy} from "@kingsrook/qqq-frontend-core/lib/model/query/QFilterOrderBy";
|
||||||
import {QQueryFilter} from "@kingsrook/qqq-frontend-core/lib/model/query/QQueryFilter";
|
import {QQueryFilter} from "@kingsrook/qqq-frontend-core/lib/model/query/QQueryFilter";
|
||||||
import {Alert, Collapse, TablePagination, Typography} from "@mui/material";
|
import {Alert, Collapse, Typography} from "@mui/material";
|
||||||
import Box from "@mui/material/Box";
|
import Box from "@mui/material/Box";
|
||||||
import Button from "@mui/material/Button";
|
import Button from "@mui/material/Button";
|
||||||
import Card from "@mui/material/Card";
|
import Card from "@mui/material/Card";
|
||||||
@ -44,7 +44,7 @@ import LinearProgress from "@mui/material/LinearProgress";
|
|||||||
import MenuItem from "@mui/material/MenuItem";
|
import MenuItem from "@mui/material/MenuItem";
|
||||||
import Modal from "@mui/material/Modal";
|
import Modal from "@mui/material/Modal";
|
||||||
import Tooltip from "@mui/material/Tooltip";
|
import Tooltip from "@mui/material/Tooltip";
|
||||||
import {ColumnHeaderFilterIconButtonProps, DataGridPro, GridCallbackDetails, GridColDef, GridColumnMenuContainer, GridColumnMenuProps, GridColumnOrderChangeParams, GridColumnPinningMenuItems, GridColumnResizeParams, GridColumnsMenuItem, GridColumnVisibilityModel, GridDensity, GridEventListener, gridFilterableColumnDefinitionsSelector, GridFilterMenuItem, GridFilterModel, GridPinnedColumns, gridPreferencePanelStateSelector, GridPreferencePanelsValue, GridRowId, GridRowParams, GridRowsProp, GridSelectionModel, GridSortItem, GridSortModel, GridState, GridToolbarColumnsButton, GridToolbarContainer, GridToolbarDensitySelector, GridToolbarExportContainer, HideGridColMenuItem, MuiEvent, SortGridMenuItems, useGridApiContext, useGridApiEventHandler, useGridApiRef, useGridSelector} from "@mui/x-data-grid-pro";
|
import {ColumnHeaderFilterIconButtonProps, DataGridPro, GridCallbackDetails, GridColDef, GridColumnMenuContainer, GridColumnMenuProps, GridColumnOrderChangeParams, GridColumnPinningMenuItems, GridColumnResizeParams, GridColumnsMenuItem, GridColumnVisibilityModel, GridDensity, GridEventListener, GridFilterMenuItem, GridPinnedColumns, gridPreferencePanelStateSelector, GridPreferencePanelsValue, GridRowId, GridRowParams, GridRowsProp, GridSelectionModel, GridSortItem, GridSortModel, GridState, GridToolbarColumnsButton, GridToolbarContainer, GridToolbarDensitySelector, GridToolbarExportContainer, HideGridColMenuItem, MuiEvent, SortGridMenuItems, useGridApiContext, useGridApiEventHandler, useGridApiRef, useGridSelector} from "@mui/x-data-grid-pro";
|
||||||
import {GridRowModel} from "@mui/x-data-grid/models/gridRows";
|
import {GridRowModel} from "@mui/x-data-grid/models/gridRows";
|
||||||
import FormData from "form-data";
|
import FormData from "form-data";
|
||||||
import React, {forwardRef, useContext, useEffect, useReducer, useRef, useState} from "react";
|
import React, {forwardRef, useContext, useEffect, useReducer, useRef, useState} from "react";
|
||||||
@ -54,7 +54,7 @@ import {QCancelButton, QCreateNewButton} from "qqq/components/buttons/DefaultBut
|
|||||||
import MenuButton from "qqq/components/buttons/MenuButton";
|
import MenuButton from "qqq/components/buttons/MenuButton";
|
||||||
import {GotoRecordButton} from "qqq/components/misc/GotoRecordDialog";
|
import {GotoRecordButton} from "qqq/components/misc/GotoRecordDialog";
|
||||||
import SavedViews from "qqq/components/misc/SavedViews";
|
import SavedViews from "qqq/components/misc/SavedViews";
|
||||||
import BasicAndAdvancedQueryControls, {getDefaultQuickFilterFieldNames} from "qqq/components/query/BasicAndAdvancedQueryControls";
|
import BasicAndAdvancedQueryControls from "qqq/components/query/BasicAndAdvancedQueryControls";
|
||||||
import {CustomColumnsPanel} from "qqq/components/query/CustomColumnsPanel";
|
import {CustomColumnsPanel} from "qqq/components/query/CustomColumnsPanel";
|
||||||
import {CustomFilterPanel} from "qqq/components/query/CustomFilterPanel";
|
import {CustomFilterPanel} from "qqq/components/query/CustomFilterPanel";
|
||||||
import CustomPaginationComponent from "qqq/components/query/CustomPaginationComponent";
|
import CustomPaginationComponent from "qqq/components/query/CustomPaginationComponent";
|
||||||
@ -2062,6 +2062,18 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
|
|||||||
|
|
||||||
await FilterUtils.cleanupValuesInFilerFromQueryString(qController, tableMetaData, queryFilter);
|
await FilterUtils.cleanupValuesInFilerFromQueryString(qController, tableMetaData, queryFilter);
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// so, URLs with filters, they might say NOT_EQUALS - but - everything else we do in here, uses NOT_EQUALS_OR_IS_NULL... //
|
||||||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
for (let i = 0; i < queryFilter?.criteria?.length; i++)
|
||||||
|
{
|
||||||
|
const criteria = queryFilter.criteria[i];
|
||||||
|
if(criteria.operator == QCriteriaOperator.NOT_EQUALS)
|
||||||
|
{
|
||||||
|
criteria.operator = QCriteriaOperator.NOT_EQUALS_OR_IS_NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// set this new query filter in the view, and activate the full view //
|
// set this new query filter in the view, and activate the full view //
|
||||||
// stuff other than the query filter should "stick" from what user had active previously //
|
// stuff other than the query filter should "stick" from what user had active previously //
|
||||||
|
@ -66,15 +66,10 @@ class FilterUtils
|
|||||||
console.log(param[i]);
|
console.log(param[i]);
|
||||||
if (param[i] && param[i].id && param[i].label)
|
if (param[i] && param[i].id && param[i].label)
|
||||||
{
|
{
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////
|
||||||
// if the param looks like a possible value, return its id //
|
// if the param looks like a possible value, return its id //
|
||||||
// during build of new custom filter panel, this ended up causing us //
|
/////////////////////////////////////////////////////////////
|
||||||
// problems (because we wanted the full PV object in the filter model for the frontend) //
|
rs.push(param[i].id);
|
||||||
// so, we can keep the PV as-is here, and see calls to convertFilterPossibleValuesToIds //
|
|
||||||
// to do what this used to do. //
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////
|
|
||||||
// rs.push(param[i].id);
|
|
||||||
rs.push(param[i]);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -80,9 +80,9 @@ public class QueryScreenLib
|
|||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
**
|
**
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public WebElement assertQuickFilterButtonBadge(String fieldName)
|
public WebElement assertQuickFilterButtonIndicatesActiveFilter(String fieldName)
|
||||||
{
|
{
|
||||||
return qSeleniumLib.waitForSelector("#quickFilter\\." + fieldName + " .MuiBadge-root");
|
return qSeleniumLib.waitForSelector("#quickFilter\\." + fieldName + ".filterActive");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -92,7 +92,6 @@ public class QueryScreenLib
|
|||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
public void clickQuickFilterButton(String fieldName)
|
public void clickQuickFilterButton(String fieldName)
|
||||||
{
|
{
|
||||||
// qSeleniumLib.waitForSelectorContaining(".MuiDataGrid-toolbarContainer BUTTON", "Filter").click();
|
|
||||||
qSeleniumLib.waitForSelector("#quickFilter\\." + fieldName).click();
|
qSeleniumLib.waitForSelector("#quickFilter\\." + fieldName).click();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -98,18 +98,6 @@ public class QueryScreenFilterInUrlAdvancedModeTest extends QBaseSeleniumTest
|
|||||||
qSeleniumLib.waitForSelector("input[value=\"1701\"]");
|
qSeleniumLib.waitForSelector("input[value=\"1701\"]");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"74656\"]");
|
qSeleniumLib.waitForSelector("input[value=\"74656\"]");
|
||||||
|
|
||||||
//////////////////////////////////////////
|
|
||||||
// not-equals on a possible-value field //
|
|
||||||
//////////////////////////////////////////
|
|
||||||
filterJSON = JsonUtils.toJson(new QQueryFilter()
|
|
||||||
.withCriteria(new QFilterCriteria("homeCityId", QCriteriaOperator.NOT_EQUALS, 1)));
|
|
||||||
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
|
||||||
queryScreenLib.waitForQueryToHaveRan();
|
|
||||||
queryScreenLib.assertFilterButtonBadge(1);
|
|
||||||
queryScreenLib.clickFilterButton();
|
|
||||||
qSeleniumLib.waitForSelector("input[value=\"does not equal\"]");
|
|
||||||
qSeleniumLib.waitForSelector("input[value=\"St. Louis\"]");
|
|
||||||
|
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
// an IN for a possible-value field //
|
// an IN for a possible-value field //
|
||||||
//////////////////////////////////////
|
//////////////////////////////////////
|
||||||
@ -150,6 +138,27 @@ public class QueryScreenFilterInUrlAdvancedModeTest extends QBaseSeleniumTest
|
|||||||
qSeleniumLib.waitForSelector("input[value=\"starts with\"]");
|
qSeleniumLib.waitForSelector("input[value=\"starts with\"]");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"Dar\"]");
|
qSeleniumLib.waitForSelector("input[value=\"Dar\"]");
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////
|
||||||
|
// replace the homeCityId possible-value route //
|
||||||
|
/////////////////////////////////////////////////
|
||||||
|
qSeleniumJavalin.stop();
|
||||||
|
qSeleniumJavalin.clearRoutes();
|
||||||
|
addJavalinRoutes(qSeleniumJavalin);
|
||||||
|
qSeleniumJavalin.withRouteToFile("/data/person/possibleValues/homeCityId", "data/person/possibleValues/homeCityId=1.json");
|
||||||
|
qSeleniumJavalin.restart();
|
||||||
|
|
||||||
|
//////////////////////////////////////////
|
||||||
|
// not-equals on a possible-value field //
|
||||||
|
//////////////////////////////////////////
|
||||||
|
filterJSON = JsonUtils.toJson(new QQueryFilter()
|
||||||
|
.withCriteria(new QFilterCriteria("homeCityId", QCriteriaOperator.NOT_EQUALS, 1)));
|
||||||
|
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
||||||
|
queryScreenLib.waitForQueryToHaveRan();
|
||||||
|
queryScreenLib.assertFilterButtonBadge(1);
|
||||||
|
queryScreenLib.clickFilterButton();
|
||||||
|
qSeleniumLib.waitForSelector("input[value=\"does not equal\"]");
|
||||||
|
qSeleniumLib.waitForSelector("input[value=\"St. Louis\"]");
|
||||||
|
|
||||||
////////////////
|
////////////////
|
||||||
// remove one //
|
// remove one //
|
||||||
////////////////
|
////////////////
|
||||||
|
@ -75,7 +75,7 @@ public class QueryScreenFilterInUrlBasicModeTest extends QBaseSeleniumTest
|
|||||||
.withCriteria(new QFilterCriteria("annualSalary", QCriteriaOperator.IS_NOT_BLANK)));
|
.withCriteria(new QFilterCriteria("annualSalary", QCriteriaOperator.IS_NOT_BLANK)));
|
||||||
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
||||||
queryScreenLib.waitForQueryToHaveRan();
|
queryScreenLib.waitForQueryToHaveRan();
|
||||||
queryScreenLib.assertQuickFilterButtonBadge("annualSalary");
|
queryScreenLib.assertQuickFilterButtonIndicatesActiveFilter("annualSalary");
|
||||||
queryScreenLib.clickQuickFilterButton("annualSalary");
|
queryScreenLib.clickQuickFilterButton("annualSalary");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"is not empty\"]");
|
qSeleniumLib.waitForSelector("input[value=\"is not empty\"]");
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ public class QueryScreenFilterInUrlBasicModeTest extends QBaseSeleniumTest
|
|||||||
.withCriteria(new QFilterCriteria("annualSalary", QCriteriaOperator.BETWEEN, 1701, 74656)));
|
.withCriteria(new QFilterCriteria("annualSalary", QCriteriaOperator.BETWEEN, 1701, 74656)));
|
||||||
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
||||||
queryScreenLib.waitForQueryToHaveRan();
|
queryScreenLib.waitForQueryToHaveRan();
|
||||||
queryScreenLib.assertQuickFilterButtonBadge("annualSalary");
|
queryScreenLib.assertQuickFilterButtonIndicatesActiveFilter("annualSalary");
|
||||||
queryScreenLib.clickQuickFilterButton("annualSalary");
|
queryScreenLib.clickQuickFilterButton("annualSalary");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"is between\"]");
|
qSeleniumLib.waitForSelector("input[value=\"is between\"]");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"1701\"]");
|
qSeleniumLib.waitForSelector("input[value=\"1701\"]");
|
||||||
@ -99,7 +99,7 @@ public class QueryScreenFilterInUrlBasicModeTest extends QBaseSeleniumTest
|
|||||||
.withCriteria(new QFilterCriteria("homeCityId", QCriteriaOperator.NOT_EQUALS, 1)));
|
.withCriteria(new QFilterCriteria("homeCityId", QCriteriaOperator.NOT_EQUALS, 1)));
|
||||||
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
||||||
queryScreenLib.waitForQueryToHaveRan();
|
queryScreenLib.waitForQueryToHaveRan();
|
||||||
queryScreenLib.assertQuickFilterButtonBadge("homeCityId");
|
queryScreenLib.assertQuickFilterButtonIndicatesActiveFilter("homeCityId");
|
||||||
queryScreenLib.clickQuickFilterButton("homeCityId");
|
queryScreenLib.clickQuickFilterButton("homeCityId");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"does not equal\"]");
|
qSeleniumLib.waitForSelector("input[value=\"does not equal\"]");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"St. Louis\"]");
|
qSeleniumLib.waitForSelector("input[value=\"St. Louis\"]");
|
||||||
@ -111,7 +111,7 @@ public class QueryScreenFilterInUrlBasicModeTest extends QBaseSeleniumTest
|
|||||||
.withCriteria(new QFilterCriteria("homeCityId", QCriteriaOperator.IN, 1, 2)));
|
.withCriteria(new QFilterCriteria("homeCityId", QCriteriaOperator.IN, 1, 2)));
|
||||||
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
||||||
queryScreenLib.waitForQueryToHaveRan();
|
queryScreenLib.waitForQueryToHaveRan();
|
||||||
queryScreenLib.assertQuickFilterButtonBadge("homeCityId");
|
queryScreenLib.assertQuickFilterButtonIndicatesActiveFilter("homeCityId");
|
||||||
queryScreenLib.clickQuickFilterButton("homeCityId");
|
queryScreenLib.clickQuickFilterButton("homeCityId");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"is any of\"]");
|
qSeleniumLib.waitForSelector("input[value=\"is any of\"]");
|
||||||
qSeleniumLib.waitForSelectorContaining(".MuiChip-label", "St. Louis");
|
qSeleniumLib.waitForSelectorContaining(".MuiChip-label", "St. Louis");
|
||||||
@ -124,7 +124,7 @@ public class QueryScreenFilterInUrlBasicModeTest extends QBaseSeleniumTest
|
|||||||
.withCriteria(new QFilterCriteria("createDate", QCriteriaOperator.GREATER_THAN, NowWithOffset.minus(5, ChronoUnit.DAYS))));
|
.withCriteria(new QFilterCriteria("createDate", QCriteriaOperator.GREATER_THAN, NowWithOffset.minus(5, ChronoUnit.DAYS))));
|
||||||
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
||||||
queryScreenLib.waitForQueryToHaveRan();
|
queryScreenLib.waitForQueryToHaveRan();
|
||||||
queryScreenLib.assertQuickFilterButtonBadge("createDate");
|
queryScreenLib.assertQuickFilterButtonIndicatesActiveFilter("createDate");
|
||||||
queryScreenLib.clickQuickFilterButton("createDate");
|
queryScreenLib.clickQuickFilterButton("createDate");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"is after\"]");
|
qSeleniumLib.waitForSelector("input[value=\"is after\"]");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"5 days ago\"]");
|
qSeleniumLib.waitForSelector("input[value=\"5 days ago\"]");
|
||||||
@ -137,8 +137,8 @@ public class QueryScreenFilterInUrlBasicModeTest extends QBaseSeleniumTest
|
|||||||
.withCriteria(new QFilterCriteria("createDate", QCriteriaOperator.LESS_THAN_OR_EQUALS, ThisOrLastPeriod.this_(ChronoUnit.YEARS))));
|
.withCriteria(new QFilterCriteria("createDate", QCriteriaOperator.LESS_THAN_OR_EQUALS, ThisOrLastPeriod.this_(ChronoUnit.YEARS))));
|
||||||
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
qSeleniumLib.gotoAndWaitForBreadcrumbHeader("/peopleApp/greetingsApp/person?filter=" + URLEncoder.encode(filterJSON, StandardCharsets.UTF_8), "Person");
|
||||||
queryScreenLib.waitForQueryToHaveRan();
|
queryScreenLib.waitForQueryToHaveRan();
|
||||||
queryScreenLib.assertQuickFilterButtonBadge("firstName");
|
queryScreenLib.assertQuickFilterButtonIndicatesActiveFilter("firstName");
|
||||||
queryScreenLib.assertQuickFilterButtonBadge("createDate");
|
queryScreenLib.assertQuickFilterButtonIndicatesActiveFilter("createDate");
|
||||||
queryScreenLib.clickQuickFilterButton("createDate");
|
queryScreenLib.clickQuickFilterButton("createDate");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"is at or before\"]");
|
qSeleniumLib.waitForSelector("input[value=\"is at or before\"]");
|
||||||
qSeleniumLib.waitForSelector("input[value=\"start of this year\"]");
|
qSeleniumLib.waitForSelector("input[value=\"start of this year\"]");
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"label": "St. Louis"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
@ -223,21 +223,21 @@
|
|||||||
"label": "Sleep Interactive",
|
"label": "Sleep Interactive",
|
||||||
"isHidden": false
|
"isHidden": false
|
||||||
},
|
},
|
||||||
"querySavedFilter": {
|
"querySavedView": {
|
||||||
"name": "querySavedFilter",
|
"name": "querySavedView",
|
||||||
"label": "Query Saved Filter",
|
"label": "Query Saved View",
|
||||||
"isHidden": false,
|
"isHidden": false,
|
||||||
"hasPermission": true
|
"hasPermission": true
|
||||||
},
|
},
|
||||||
"storeSavedFilter": {
|
"storeSavedView": {
|
||||||
"name": "storeSavedFilter",
|
"name": "storeSavedView",
|
||||||
"label": "Store Saved Filter",
|
"label": "Store Saved View",
|
||||||
"isHidden": false,
|
"isHidden": false,
|
||||||
"hasPermission": true
|
"hasPermission": true
|
||||||
},
|
},
|
||||||
"deleteSavedFilter": {
|
"deleteSavedView": {
|
||||||
"name": "deleteSavedFilter",
|
"name": "deleteSavedView",
|
||||||
"label": "Delete Saved Filter",
|
"label": "Delete Saved View",
|
||||||
"isHidden": false,
|
"isHidden": false,
|
||||||
"hasPermission": true
|
"hasPermission": true
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user