|
|
|
@ -177,23 +177,7 @@ const data = [
|
|
|
|
|
}, |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
const verificationData = { |
|
|
|
|
Title: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
LongText: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
const verificationNumericalData = { |
|
|
|
|
Number: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
@ -224,13 +208,14 @@ const verificationData = {
|
|
|
|
|
std_dev: '0.2', |
|
|
|
|
range: '0.4', |
|
|
|
|
}, |
|
|
|
|
Checkbox: { |
|
|
|
|
checked: '1', |
|
|
|
|
unchecked: '1', |
|
|
|
|
percent_checked: '50', |
|
|
|
|
percent_unchecked: '50', |
|
|
|
|
}, |
|
|
|
|
MultiSelect: { |
|
|
|
|
Currency: { |
|
|
|
|
sum: '300.5', |
|
|
|
|
min: '100', |
|
|
|
|
max: '200.5', |
|
|
|
|
avg: '150.25', |
|
|
|
|
median: '150.25', |
|
|
|
|
std_dev: '0.2', |
|
|
|
|
range: '100.5', |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
@ -238,7 +223,14 @@ const verificationData = {
|
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
SingleSelect: { |
|
|
|
|
Percent: { |
|
|
|
|
sum: '125', |
|
|
|
|
min: '50', |
|
|
|
|
max: '75', |
|
|
|
|
avg: '62.5%', |
|
|
|
|
median: '62.5%', |
|
|
|
|
std_dev: '12.5%', |
|
|
|
|
range: '25%', |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
@ -246,31 +238,41 @@ const verificationData = {
|
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
Date: { |
|
|
|
|
Duration: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
earliest_date: '2024-01-01', |
|
|
|
|
latest_date: '2024-02-02', |
|
|
|
|
date_range: '32 days', |
|
|
|
|
month_range: '1 month', |
|
|
|
|
sum: '00:55', |
|
|
|
|
min: '00:22', |
|
|
|
|
max: '00:33', |
|
|
|
|
avg: '00:28', |
|
|
|
|
median: '00:28', |
|
|
|
|
std_dev: '00:06', |
|
|
|
|
range: '00:12', |
|
|
|
|
}, |
|
|
|
|
DateTime: { |
|
|
|
|
|
|
|
|
|
Rating: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
earliest_date: '2024-01-01 10:00', |
|
|
|
|
latest_date: '2024-02-02 12:00', |
|
|
|
|
date_range: '32 days', |
|
|
|
|
month_range: '1 month', |
|
|
|
|
sum: '9', |
|
|
|
|
min: '4', |
|
|
|
|
max: '5', |
|
|
|
|
avg: '4.5', |
|
|
|
|
median: '4.5', |
|
|
|
|
std_dev: '0.5', |
|
|
|
|
range: '1', |
|
|
|
|
}, |
|
|
|
|
Year: { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const verificationStringData = { |
|
|
|
|
Title: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
@ -278,7 +280,7 @@ const verificationData = {
|
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
Time: { |
|
|
|
|
LongText: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
@ -286,7 +288,7 @@ const verificationData = {
|
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
PhoneNumber: { |
|
|
|
|
MultiSelect: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
@ -294,7 +296,7 @@ const verificationData = {
|
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
Email: { |
|
|
|
|
SingleSelect: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
@ -310,14 +312,7 @@ const verificationData = {
|
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
Currency: { |
|
|
|
|
sum: '300.5', |
|
|
|
|
min: '100', |
|
|
|
|
max: '200.5', |
|
|
|
|
avg: '150.25', |
|
|
|
|
median: '150.25', |
|
|
|
|
std_dev: '0.2', |
|
|
|
|
range: '100.5', |
|
|
|
|
JSON: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
@ -325,97 +320,52 @@ const verificationData = {
|
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
Percent: { |
|
|
|
|
sum: '125', |
|
|
|
|
min: '50', |
|
|
|
|
max: '75', |
|
|
|
|
avg: '62.5%', |
|
|
|
|
median: '62.5%', |
|
|
|
|
std_dev: '12.5%', |
|
|
|
|
range: '25%', |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
User: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50%', |
|
|
|
|
percent_filled: '50%', |
|
|
|
|
percent_empty: '50%', |
|
|
|
|
}, |
|
|
|
|
Duration: { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const verificationDateTime = { |
|
|
|
|
DateTime: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
sum: '00:55', |
|
|
|
|
min: '00:22', |
|
|
|
|
max: '00:33', |
|
|
|
|
avg: '00:28', |
|
|
|
|
median: '00:28', |
|
|
|
|
std_dev: '00:06', |
|
|
|
|
range: '00:12', |
|
|
|
|
earliest_date: '2024-01-01 10:00', |
|
|
|
|
latest_date: '2024-02-02 12:00', |
|
|
|
|
date_range: '32 days', |
|
|
|
|
month_range: '1 month', |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
Rating: { |
|
|
|
|
Time: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
sum: '9', |
|
|
|
|
min: '4', |
|
|
|
|
max: '5', |
|
|
|
|
avg: '4.5', |
|
|
|
|
median: '4.5', |
|
|
|
|
std_dev: '0.5', |
|
|
|
|
range: '1', |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
JSON: { |
|
|
|
|
Date: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
Attachment: { |
|
|
|
|
attachment_size: '1.81 MiB', |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50%', |
|
|
|
|
percent_filled: '50%', |
|
|
|
|
percent_empty: '50%', |
|
|
|
|
}, |
|
|
|
|
User: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50%', |
|
|
|
|
percent_filled: '50%', |
|
|
|
|
percent_empty: '50%', |
|
|
|
|
earliest_date: '2024-01-01', |
|
|
|
|
latest_date: '2024-02-02', |
|
|
|
|
date_range: '32 days', |
|
|
|
|
month_range: '1 month', |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const verificationDataAfterFilter = { |
|
|
|
|
Title: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
LongText: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50', |
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
const verificationNUmericalDataAfterFilter = { |
|
|
|
|
Number: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
@ -446,13 +396,14 @@ const verificationDataAfterFilter = {
|
|
|
|
|
std_dev: '0', |
|
|
|
|
range: '0', |
|
|
|
|
}, |
|
|
|
|
Checkbox: { |
|
|
|
|
checked: '1', |
|
|
|
|
unchecked: '1', |
|
|
|
|
percent_checked: '50', |
|
|
|
|
percent_unchecked: '50', |
|
|
|
|
}, |
|
|
|
|
MultiSelect: { |
|
|
|
|
Currency: { |
|
|
|
|
sum: '100', |
|
|
|
|
min: '100', |
|
|
|
|
max: '100', |
|
|
|
|
avg: '100', |
|
|
|
|
median: '100', |
|
|
|
|
std_dev: '0', |
|
|
|
|
range: '0', |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
@ -460,7 +411,14 @@ const verificationDataAfterFilter = {
|
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
SingleSelect: { |
|
|
|
|
Percent: { |
|
|
|
|
sum: '50', |
|
|
|
|
min: '50', |
|
|
|
|
max: '50', |
|
|
|
|
avg: '50%', |
|
|
|
|
median: '50%', |
|
|
|
|
std_dev: '0%', |
|
|
|
|
range: '0%', |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
@ -468,39 +426,49 @@ const verificationDataAfterFilter = {
|
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
Date: { |
|
|
|
|
Duration: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50', |
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
earliest_date: '2024-01-01', |
|
|
|
|
latest_date: '2024-01-01', |
|
|
|
|
date_range: '0 days', |
|
|
|
|
month_range: '0 month', |
|
|
|
|
sum: '00:22', |
|
|
|
|
min: '00:22', |
|
|
|
|
max: '00:22', |
|
|
|
|
avg: '00:22', |
|
|
|
|
median: '00:22', |
|
|
|
|
std_dev: '00:00', |
|
|
|
|
range: '00:00', |
|
|
|
|
}, |
|
|
|
|
DateTime: { |
|
|
|
|
|
|
|
|
|
Rating: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50', |
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
earliest_date: '2024-01-01 10:00', |
|
|
|
|
latest_date: '2024-01-01 10:00', |
|
|
|
|
date_range: '0 days', |
|
|
|
|
month_range: '0 month', |
|
|
|
|
sum: '4', |
|
|
|
|
min: '4', |
|
|
|
|
max: '4', |
|
|
|
|
avg: '4', |
|
|
|
|
median: '2', |
|
|
|
|
std_dev: '0', |
|
|
|
|
range: '4', |
|
|
|
|
}, |
|
|
|
|
Year: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50', |
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const verificationStringDataAfterFilter = { |
|
|
|
|
Title: { |
|
|
|
|
count_unique: '2', |
|
|
|
|
count_empty: '0', |
|
|
|
|
count_filled: '2', |
|
|
|
|
percent_unique: '100', |
|
|
|
|
percent_filled: '100', |
|
|
|
|
percent_empty: '0', |
|
|
|
|
}, |
|
|
|
|
Time: { |
|
|
|
|
LongText: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
@ -508,7 +476,7 @@ const verificationDataAfterFilter = {
|
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
PhoneNumber: { |
|
|
|
|
MultiSelect: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
@ -516,7 +484,7 @@ const verificationDataAfterFilter = {
|
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
Email: { |
|
|
|
|
SingleSelect: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
@ -524,6 +492,7 @@ const verificationDataAfterFilter = {
|
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
Url: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
@ -532,14 +501,7 @@ const verificationDataAfterFilter = {
|
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
Currency: { |
|
|
|
|
sum: '100', |
|
|
|
|
min: '100', |
|
|
|
|
max: '100', |
|
|
|
|
avg: '100', |
|
|
|
|
median: '100', |
|
|
|
|
std_dev: '0', |
|
|
|
|
range: '0', |
|
|
|
|
JSON: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
@ -547,53 +509,42 @@ const verificationDataAfterFilter = {
|
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
Percent: { |
|
|
|
|
sum: '50', |
|
|
|
|
min: '50', |
|
|
|
|
max: '50', |
|
|
|
|
avg: '50%', |
|
|
|
|
median: '50%', |
|
|
|
|
std_dev: '0%', |
|
|
|
|
range: '0%', |
|
|
|
|
User: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50', |
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
percent_unique: '50%', |
|
|
|
|
percent_filled: '50%', |
|
|
|
|
percent_empty: '50%', |
|
|
|
|
}, |
|
|
|
|
Duration: { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const verificationDateTimeDataAfterFilter = { |
|
|
|
|
Date: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50', |
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
sum: '00:22', |
|
|
|
|
min: '00:22', |
|
|
|
|
max: '00:22', |
|
|
|
|
avg: '00:22', |
|
|
|
|
median: '00:22', |
|
|
|
|
std_dev: '00:00', |
|
|
|
|
range: '00:00', |
|
|
|
|
earliest_date: '2024-01-01', |
|
|
|
|
latest_date: '2024-01-01', |
|
|
|
|
date_range: '0 days', |
|
|
|
|
month_range: '0 month', |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
Rating: { |
|
|
|
|
DateTime: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50', |
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
sum: '4', |
|
|
|
|
min: '4', |
|
|
|
|
max: '4', |
|
|
|
|
avg: '4', |
|
|
|
|
median: '2', |
|
|
|
|
std_dev: '0', |
|
|
|
|
range: '4', |
|
|
|
|
earliest_date: '2024-01-01 10:00', |
|
|
|
|
latest_date: '2024-01-01 10:00', |
|
|
|
|
date_range: '0 days', |
|
|
|
|
month_range: '0 month', |
|
|
|
|
}, |
|
|
|
|
JSON: { |
|
|
|
|
Time: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
@ -601,14 +552,6 @@ const verificationDataAfterFilter = {
|
|
|
|
|
percent_filled: '50', |
|
|
|
|
percent_empty: '50', |
|
|
|
|
}, |
|
|
|
|
User: { |
|
|
|
|
count_unique: '1', |
|
|
|
|
count_empty: '1', |
|
|
|
|
count_filled: '1', |
|
|
|
|
percent_unique: '50%', |
|
|
|
|
percent_filled: '50%', |
|
|
|
|
percent_empty: '50%', |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
const users: string[] = isEE() |
|
|
|
@ -694,8 +637,126 @@ test.describe('Field Aggregation', () => {
|
|
|
|
|
await unsetup(context); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
test('Aggregation Grid Test', async ({ page }) => { |
|
|
|
|
for (const x of Object.entries(verificationData)) { |
|
|
|
|
test('Aggregation Grid Test - String Columns', async ({ page }) => { |
|
|
|
|
for (const x of Object.entries(verificationStringData)) { |
|
|
|
|
const colName = x[0]; |
|
|
|
|
|
|
|
|
|
for (const y of Object.entries(x[1])) { |
|
|
|
|
await aggregationBar.updateAggregation({ |
|
|
|
|
column_name: colName, |
|
|
|
|
aggregation: y[0], |
|
|
|
|
skipNetworkValidation: true, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
await aggregationBar.verifyAggregation({ |
|
|
|
|
column_name: colName, |
|
|
|
|
aggregation: y[1], |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const { api, table, base } = testContext; |
|
|
|
|
|
|
|
|
|
await api.dbTableRow.bulkCreate('noco', base.id, table.id, [ |
|
|
|
|
{ |
|
|
|
|
Id: 3, |
|
|
|
|
Title: 'Sample2', |
|
|
|
|
}, |
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
await page.reload(); |
|
|
|
|
|
|
|
|
|
await dashboard.grid.toolbar.clickFilter(); |
|
|
|
|
|
|
|
|
|
await dashboard.grid.toolbar.filter.add({ |
|
|
|
|
title: 'Title', |
|
|
|
|
operation: 'is like', |
|
|
|
|
value: 'Sample', |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
await page.waitForTimeout(4000); |
|
|
|
|
|
|
|
|
|
await dashboard.grid.toolbar.clickFilter(); |
|
|
|
|
|
|
|
|
|
for (const x of Object.entries(verificationStringDataAfterFilter)) { |
|
|
|
|
const colName = x[0]; |
|
|
|
|
|
|
|
|
|
for (const y of Object.entries(x[1])) { |
|
|
|
|
await aggregationBar.updateAggregation({ |
|
|
|
|
column_name: colName, |
|
|
|
|
aggregation: y[0], |
|
|
|
|
skipNetworkValidation: true, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
await aggregationBar.verifyAggregation({ |
|
|
|
|
column_name: colName, |
|
|
|
|
aggregation: y[1], |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
test('Aggregation Grid Test - Numerical Columns', async ({ page }) => { |
|
|
|
|
for (const x of Object.entries(verificationNumericalData)) { |
|
|
|
|
const colName = x[0]; |
|
|
|
|
|
|
|
|
|
for (const y of Object.entries(x[1])) { |
|
|
|
|
await aggregationBar.updateAggregation({ |
|
|
|
|
column_name: colName, |
|
|
|
|
aggregation: y[0], |
|
|
|
|
skipNetworkValidation: true, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
await aggregationBar.verifyAggregation({ |
|
|
|
|
column_name: colName, |
|
|
|
|
aggregation: y[1], |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const { api, table, base } = testContext; |
|
|
|
|
|
|
|
|
|
await api.dbTableRow.bulkCreate('noco', base.id, table.id, [ |
|
|
|
|
{ |
|
|
|
|
Id: 3, |
|
|
|
|
Title: 'Sample2', |
|
|
|
|
}, |
|
|
|
|
]); |
|
|
|
|
|
|
|
|
|
await page.reload(); |
|
|
|
|
|
|
|
|
|
await dashboard.grid.toolbar.clickFilter(); |
|
|
|
|
|
|
|
|
|
await dashboard.grid.toolbar.filter.add({ |
|
|
|
|
title: 'Title', |
|
|
|
|
operation: 'is like', |
|
|
|
|
value: 'Sample', |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
await page.waitForTimeout(4000); |
|
|
|
|
|
|
|
|
|
await dashboard.grid.toolbar.clickFilter(); |
|
|
|
|
|
|
|
|
|
for (const x of Object.entries(verificationNUmericalDataAfterFilter)) { |
|
|
|
|
const colName = x[0]; |
|
|
|
|
|
|
|
|
|
for (const y of Object.entries(x[1])) { |
|
|
|
|
await aggregationBar.updateAggregation({ |
|
|
|
|
column_name: colName, |
|
|
|
|
aggregation: y[0], |
|
|
|
|
skipNetworkValidation: true, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
await aggregationBar.verifyAggregation({ |
|
|
|
|
column_name: colName, |
|
|
|
|
aggregation: y[1], |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
test('Aggregation Grid Test - DateTime Columns', async ({ page }) => { |
|
|
|
|
for (const x of Object.entries(verificationDateTime)) { |
|
|
|
|
const colName = x[0]; |
|
|
|
|
|
|
|
|
|
for (const y of Object.entries(x[1])) { |
|
|
|
@ -735,7 +796,7 @@ test.describe('Field Aggregation', () => {
|
|
|
|
|
|
|
|
|
|
await dashboard.grid.toolbar.clickFilter(); |
|
|
|
|
|
|
|
|
|
for (const x of Object.entries(verificationDataAfterFilter)) { |
|
|
|
|
for (const x of Object.entries(verificationDateTimeDataAfterFilter)) { |
|
|
|
|
const colName = x[0]; |
|
|
|
|
|
|
|
|
|
for (const y of Object.entries(x[1])) { |
|
|
|
@ -762,7 +823,7 @@ test.describe('Field Aggregation', () => {
|
|
|
|
|
await page.reload(); |
|
|
|
|
const sharedPage = new DashboardPage(page, context.base); |
|
|
|
|
|
|
|
|
|
for (const x of Object.entries(verificationData)) { |
|
|
|
|
for (const x of Object.entries(verificationStringData)) { |
|
|
|
|
const colName = x[0]; |
|
|
|
|
|
|
|
|
|
for (const y of Object.entries(x[1])) { |
|
|
|
|